diff options
Diffstat (limited to 'cvpcb/CMakeLists.txt')
-rw-r--r-- | cvpcb/CMakeLists.txt | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/cvpcb/CMakeLists.txt b/cvpcb/CMakeLists.txt new file mode 100644 index 0000000..bad525b --- /dev/null +++ b/cvpcb/CMakeLists.txt @@ -0,0 +1,190 @@ +# 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( -DCVPCB ) + +include_directories( BEFORE ${INC_BEFORE} ) +include_directories( + ./dialogs + ../3d-viewer + ../pcbnew + ../pcbnew/dialogs + ../polygon + ../common + ${INC_AFTER} + ) + + +set( CVPCB_DIALOGS + dialogs/fp_conflict_assignment_selector_base.cpp + dialogs/fp_conflict_assignment_selector.cpp + dialogs/dialog_display_options.cpp + dialogs/dialog_display_options_base.cpp + dialogs/dialog_config_equfiles_base.cpp + dialogs/dialog_config_equfiles.cpp + ../pcbnew/dialogs/dialog_fp_lib_table.cpp + ../pcbnew/dialogs/dialog_fp_lib_table_base.cpp + ../pcbnew/dialogs/dialog_fp_plugin_options.cpp + ../pcbnew/dialogs/dialog_fp_plugin_options_base.cpp + ../pcbnew/dialogs/wizard_add_fplib_base.cpp + ../pcbnew/dialogs/wizard_add_fplib.cpp + ) + +set( CVPCB_SRCS + ../common/base_units.cpp + ../pcbnew/board_items_to_polygon_shape_transform.cpp + ../pcbnew/class_drc_item.cpp + autosel.cpp + cfg.cpp + class_components_listbox.cpp + class_DisplayFootprintsFrame.cpp + class_footprints_listbox.cpp + class_library_listbox.cpp + cvframe.cpp + listboxes.cpp + menubar.cpp + readwrite_dlgs.cpp + tool_cvpcb.cpp + ) + + +if( MINGW ) + # CVPCB_RESOURCES variable is set by the macro. + mingw_resource_compiler( cvpcb ) +else() + set( CVPCB_RESOURCES cvpcb.rc ) +endif() + + +if( false ) + # setup bundle + set( CVPCB_RESOURCES cvpcb.icns cvpcb_doc.icns ) + set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/cvpcb.icns" PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + ) + set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/cvpcb_doc.icns" PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + ) + set( MACOSX_BUNDLE_ICON_FILE cvpcb.icns ) + set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-pcb.kicad ) + set( MACOSX_BUNDLE_NAME cvpcb ) +endif() + + +if( false ) # no CVPCB exe any more, only the *.kiface + add_executable( cvpcb WIN32 MACOSX_BUNDLE + ../common/single_top.cpp + ../common/pgm_base.cpp + ${CVPCB_RESOURCES} + ) + set_source_files_properties( ../common/single_top.cpp PROPERTIES + COMPILE_DEFINITIONS "TOP_FRAME=FRAME_CVPCB;PGM_DATA_FILE_EXT=\"net\";BUILD_KIWAY_DLL" + ) + target_link_libraries( cvpcb + #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} + ) + if( MAKE_LINK_MAPS ) + set_target_properties( cvpcb PROPERTIES + LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=cvpcb.map" ) + endif() + + if( APPLE ) + set_target_properties( cvpcb PROPERTIES + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist + ) + + # put individual bundle outside of main bundle as a first step + # will be pulled into the main bundle when creating main bundle + install( TARGETS cvpcb + 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}/cvpcb.app/Contents/MacOS/cvpcb + \"\" + \"\" + ) + " COMPONENT Runtime + ) + else() + install( TARGETS cvpcb + DESTINATION ${KICAD_BIN} + COMPONENT binary + ) + endif() + +endif() # no CVPCB exe + + +# the main cvpcb program, in DSO form. +add_library( cvpcb_kiface MODULE + cvpcb.cpp + ${CVPCB_SRCS} + ${CVPCB_DIALOGS} + ) +set_target_properties( cvpcb_kiface PROPERTIES + OUTPUT_NAME cvpcb + PREFIX ${KIFACE_PREFIX} + SUFFIX ${KIFACE_SUFFIX} + ) +target_link_libraries( cvpcb_kiface + 3d-viewer + pcbcommon + pcad2kicadpcb + common + bitmaps + polygon + gal + ${wxWidgets_LIBRARIES} + ${GDI_PLUS_LIBRARIES} + ${OPENMP_LIBRARIES} # used by 3d viewer + ) + +if( BUILD_GITHUB_PLUGIN ) + target_link_libraries( cvpcb_kiface github_plugin ) +endif() + +# Must follow github_plugin +target_link_libraries( cvpcb_kiface ${Boost_LIBRARIES} ) + +if( UNIX AND NOT APPLE ) + # -lrt must follow Boost + target_link_libraries( cvpcb_kiface rt ) +endif() + +set_source_files_properties( cvpcb.cpp PROPERTIES + # The KIFACE is in cvpcb.cpp, export it: + COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL" + ) + +if( MAKE_LINK_MAPS ) + set_target_properties( cvpcb_kiface PROPERTIES + LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=_cvpcb.kiface.map" ) +endif() + +# these 2 binaries are a matched set, keep them together: +if( APPLE ) + # puts binaries into the *.app bundle while linking + set_target_properties( cvpcb_kiface PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR} + ) +else() + install( TARGETS cvpcb_kiface + DESTINATION ${KICAD_BIN} + COMPONENT binary + ) +endif() |