summaryrefslogtreecommitdiff
path: root/eeschema/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'eeschema/CMakeLists.txt')
-rw-r--r--eeschema/CMakeLists.txt383
1 files changed, 383 insertions, 0 deletions
diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt
new file mode 100644
index 0000000..eb06147
--- /dev/null
+++ b/eeschema/CMakeLists.txt
@@ -0,0 +1,383 @@
+# the map generation creates on Windows/gcc a lot of useless warnings
+# so disable it on windows
+if( WIN32 AND NOT CMAKE_CROSSCOMPILING )
+ set( MAKE_LINK_MAPS false )
+else()
+ set( MAKE_LINK_MAPS true )
+endif()
+
+add_definitions( -DEESCHEMA )
+
+
+include_directories( BEFORE ${INC_BEFORE} )
+include_directories(
+ ./dialogs
+ ./netlist_exporters
+ ../common
+ ../common/dialogs
+ ${INC_AFTER}
+ )
+
+
+set( EESCHEMA_DLGS
+ dialogs/dialog_annotate.cpp
+ dialogs/dialog_annotate_base.cpp
+ dialogs/dialog_bom.cpp
+ dialogs/dialog_bom_base.cpp
+ dialogs/dialog_bom_cfg_keywords.cpp
+ dialogs/dialog_color_config.cpp
+ dialogs/dialog_color_config_base.cpp
+ dialogs/dialog_choose_component.cpp
+ dialogs/dialog_choose_component_base.cpp
+ dialogs/dialog_lib_edit_text.cpp
+ dialogs/dialog_lib_edit_text_base.cpp
+ dialogs/dialog_edit_component_in_lib.cpp
+ dialogs/dialog_edit_component_in_lib_base.cpp
+ dialogs/dialog_edit_component_in_schematic_fbp.cpp
+ dialogs/dialog_edit_component_in_schematic.cpp
+ dialogs/dialog_edit_label.cpp
+ dialogs/dialog_edit_label_base.cpp
+ dialogs/dialog_edit_libentry_fields_in_lib.cpp
+ dialogs/dialog_edit_libentry_fields_in_lib_base.cpp
+ dialogs/dialog_edit_one_field.cpp
+ dialogs/dialog_eeschema_config.cpp
+ dialogs/dialog_eeschema_config_fbp.cpp
+ dialogs/dialog_eeschema_options_base.cpp
+ dialogs/dialog_eeschema_options.cpp
+ dialogs/dialog_erc.cpp
+ dialogs/dialog_erc_base.cpp
+ dialogs/dialog_lib_edit_draw_item.cpp
+ dialogs/dialog_lib_edit_draw_item_base.cpp
+ dialogs/dialog_libedit_options_base.cpp
+ dialogs/dialog_libedit_options.cpp
+ dialogs/dialog_lib_edit_pin.cpp
+ dialogs/dialog_lib_edit_pin_base.cpp
+ dialogs/dialog_lib_edit_pin_table.cpp
+ dialogs/dialog_lib_edit_pin_table_base.cpp
+ dialogs/dialog_lib_new_component.cpp
+ dialogs/dialog_lib_new_component_base.cpp
+ dialogs/dialog_netlist.cpp
+ dialogs/dialog_netlist_base.cpp
+ dialogs/dialog_plot_schematic_base.cpp
+ dialogs/dialog_plot_schematic.cpp
+ dialogs/dialog_print_using_printer_base.cpp
+ dialogs/dialog_print_using_printer.cpp
+ dialogs/dialog_rescue_each.cpp
+ dialogs/dialog_rescue_each_base.cpp
+ dialogs/dialog_sch_edit_sheet_pin.cpp
+ dialogs/dialog_sch_edit_sheet_pin_base.cpp
+ dialogs/dialog_sch_sheet_props.cpp
+ dialogs/dialog_sch_sheet_props_base.cpp
+ dialogs/dialog_schematic_find.cpp
+ dialogs/dialog_schematic_find_base.cpp
+ )
+
+set( EESCHEMA_SRCS
+ annotate.cpp
+ backanno.cpp
+ block.cpp
+ block_libedit.cpp
+ busentry.cpp
+ bus-wire-junction.cpp
+ class_drc_erc_item.cpp
+ class_libentry.cpp
+ class_library.cpp
+ class_netlist_object.cpp
+ cmp_library_keywords.cpp
+ cmp_library_lexer.cpp
+ component_references_lister.cpp
+ controle.cpp
+ cross-probing.cpp
+ ${EESCHEMA_DLGS}
+ edit_component_in_schematic.cpp
+ edit_bitmap.cpp
+ edit_label.cpp
+ eeredraw.cpp
+ eeschema.cpp
+ eeschema_config.cpp
+ erc.cpp
+ events_called_functions_for_edit.cpp
+ files-io.cpp
+ find.cpp
+ getpart.cpp
+ component_tree_search_container.cpp
+ hierarch.cpp
+ hotkeys.cpp
+ libarch.cpp
+ libedit.cpp
+ libeditframe.cpp
+ libedit_onleftclick.cpp
+ libedit_onrightclick.cpp
+ libedit_plot_component.cpp
+ libedit_undo_redo.cpp
+ lib_arc.cpp
+ lib_bezier.cpp
+ lib_circle.cpp
+ lib_collectors.cpp
+ lib_draw_item.cpp
+ lib_export.cpp
+ lib_field.cpp
+ lib_pin.cpp
+ lib_polyline.cpp
+ lib_rectangle.cpp
+ lib_text.cpp
+ libfield.cpp
+ load_one_schematic_file.cpp
+ menubar.cpp
+ menubar_libedit.cpp
+ netform.cpp
+ netlist.cpp
+ onleftclick.cpp
+ onrightclick.cpp
+ operations_on_items_lists.cpp
+ pinedit.cpp
+ plot_schematic_DXF.cpp
+ plot_schematic_HPGL.cpp
+ plot_schematic_PS.cpp
+ plot_schematic_PDF.cpp
+ plot_schematic_SVG.cpp
+ project_rescue.cpp
+ sch_base_frame.cpp
+ sch_bitmap.cpp
+ sch_bus_entry.cpp
+ sch_collectors.cpp
+ sch_component.cpp
+ sch_field.cpp
+ sch_item_struct.cpp
+ sch_junction.cpp
+ sch_line.cpp
+ sch_marker.cpp
+ sch_no_connect.cpp
+ sch_screen.cpp
+ sch_sheet.cpp
+ sch_sheet_path.cpp
+ sch_sheet_pin.cpp
+ sch_text.cpp
+ sch_validators.cpp
+ schedit.cpp
+ schematic_undo_redo.cpp
+ schframe.cpp
+ selpart.cpp
+ sheet.cpp
+ sheetlab.cpp
+ symbdraw.cpp
+ symbedit.cpp
+ template_fieldnames_keywords.cpp
+ template_fieldnames.cpp
+ tool_lib.cpp
+ tool_sch.cpp
+ tool_viewlib.cpp
+ transform.cpp
+ viewlib_frame.cpp
+ viewlibs.cpp
+
+ netlist_exporters/netlist_exporter.cpp
+ netlist_exporters/netlist_exporter_cadstar.cpp
+ netlist_exporters/netlist_exporter_generic.cpp
+ netlist_exporters/netlist_exporter_kicad.cpp
+ netlist_exporters/netlist_exporter_orcadpcb2.cpp
+ netlist_exporters/netlist_exporter_pspice.cpp
+ )
+
+
+set( EESCHEMA_COMMON_SRCS
+ ../common/dialogs/dialog_page_settings.cpp
+ ../common/base_screen.cpp
+ ../common/eda_text.cpp
+ ../common/class_page_info.cpp
+ ../common/base_units.cpp
+ )
+
+
+if( MINGW )
+ # EESCHEMA_RESOURCES variable is set by the macro.
+ mingw_resource_compiler( eeschema )
+else()
+ set( EESCHEMA_RESOURCES eeschema.rc )
+endif()
+
+# Create a C++ compilable string initializer containing html text into a *.h file:
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
+ COMMAND ${CMAKE_COMMAND}
+ -DinputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html
+ -DoutputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
+ -P ${CMAKE_MODULE_PATH}/Html2C.cmake
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html
+ COMMENT "creating ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
+ from ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html"
+ )
+
+set_source_files_properties( dialogs/dialog_bom.cpp
+ PROPERTIES
+ OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
+ )
+
+if( APPLE )
+ # setup bundle
+ set( EESCHEMA_RESOURCES eeschema.icns eeschema_doc.icns )
+ set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/eeschema.icns" PROPERTIES
+ MACOSX_PACKAGE_LOCATION Resources
+ )
+ set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/eeschema_doc.icns" PROPERTIES
+ MACOSX_PACKAGE_LOCATION Resources
+ )
+ set( MACOSX_BUNDLE_ICON_FILE eeschema.icns )
+ set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-pcb.kicad )
+ set( MACOSX_BUNDLE_NAME eeschema )
+endif()
+
+
+add_executable( eeschema WIN32 MACOSX_BUNDLE
+ ../common/single_top.cpp
+ ../common/pgm_base.cpp
+ ${EESCHEMA_RESOURCES}
+ )
+set_source_files_properties( ../common/single_top.cpp PROPERTIES
+ COMPILE_DEFINITIONS "TOP_FRAME=FRAME_SCH;PGM_DATA_FILE_EXT=\"sch\";BUILD_KIWAY_DLL"
+ )
+target_link_libraries( eeschema
+ #singletop # replaces common, giving us restrictive control and link warnings.
+ # There's way too much crap coming in from common yet.
+ common
+ bitmaps
+ ${wxWidgets_LIBRARIES}
+ )
+
+# the DSO (KIFACE) housing the main eeschema code:
+add_library( eeschema_kiface MODULE
+ ${EESCHEMA_SRCS}
+ ${EESCHEMA_COMMON_SRCS}
+ )
+target_link_libraries( eeschema_kiface
+ common
+ bitmaps
+ polygon
+ gal
+ ${wxWidgets_LIBRARIES}
+ ${GDI_PLUS_LIBRARIES}
+ )
+set_target_properties( eeschema_kiface PROPERTIES
+ # Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
+ # _eeschema.so, _eeschema.dll, or _eeschema.kiface
+ OUTPUT_NAME eeschema
+ PREFIX ${KIFACE_PREFIX}
+ SUFFIX ${KIFACE_SUFFIX}
+ )
+
+# The KIFACE is in eeschema.cpp, export it:
+set_source_files_properties( eeschema.cpp PROPERTIES
+ COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
+ )
+
+# if building eeschema, then also build eeschema_kiface if out of date.
+add_dependencies( eeschema eeschema_kiface )
+
+if( MAKE_LINK_MAPS )
+ # generate link map with cross reference
+ set_target_properties( eeschema_kiface PROPERTIES
+ LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=${KIFACE_PREFIX}eeschema${KIFACE_SUFFIX}.map"
+ )
+ set_target_properties( eeschema PROPERTIES
+ LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=eeschema.map"
+ )
+endif()
+
+# these 2 binaries are a matched set, keep them together:
+if( APPLE )
+ set_target_properties( eeschema PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
+ )
+
+ # puts binaries into the *.app bundle while linking
+ set_target_properties( eeschema_kiface PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
+ )
+ # put individual bundle outside of main bundle as a first step
+ # will be pulled into the main bundle when creating main bundle
+ install( TARGETS eeschema
+ DESTINATION ${KICAD_BIN}
+ COMPONENT binary
+ )
+ install( CODE "
+ # override default embedded path settings
+ ${OSX_BUNDLE_OVERRIDE_PATHS}
+
+ # do all the work
+ include( BundleUtilities )
+ fixup_bundle( ${KICAD_BIN}/eeschema.app/Contents/MacOS/eeschema
+ \"\"
+ \"\"
+ )
+ " COMPONENT Runtime
+ )
+else()
+ install( TARGETS eeschema
+ DESTINATION ${KICAD_BIN}
+ COMPONENT binary
+ )
+ install( TARGETS eeschema_kiface
+ # actual filename subject to change at milestone C)
+ # modular-kicad blueprint.
+ DESTINATION ${KICAD_BIN}
+ COMPONENT binary
+ )
+endif()
+
+# auto-generate cmp_library_lexer.h and cmp_library_keywords.cpp for the component
+# library format.
+make_lexer(
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmp_library.keywords
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_keywords.cpp
+ TLIB_T
+ )
+
+add_custom_target(
+ cmp_library_lexer_source_files ALL
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_keywords.cpp
+ )
+
+add_dependencies( eeschema_kiface cmp_library_lexer_source_files )
+
+make_lexer(
+ ${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames.keywords
+ ${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_keywords.cpp
+ TFIELD_T
+
+ # Pass header file with dependency on *_lexer.h as extra_arg
+ template_fieldnames.h
+ )
+
+add_custom_target(
+ field_template_lexer_source_files ALL
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_keywords.cpp
+ )
+
+add_dependencies( eeschema_kiface field_template_lexer_source_files )
+
+make_lexer(
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg.keywords
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_keywords.cpp
+ T_BOMCFG_T
+
+ # Pass header file with dependency on *_lexer.h as extra_arg
+ dialogs/dialog_bom_cfg.h
+ )
+
+add_custom_target(
+ dialog_bom_cfg_lexer_source_files ALL
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_lexer.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_keywords.cpp
+ )
+
+add_dependencies( eeschema_kiface dialog_bom_cfg_lexer_source_files )
+
+add_subdirectory( plugins )