summaryrefslogtreecommitdiff
path: root/gerbview/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'gerbview/CMakeLists.txt')
-rw-r--r--gerbview/CMakeLists.txt190
1 files changed, 190 insertions, 0 deletions
diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt
new file mode 100644
index 0000000..1404964
--- /dev/null
+++ b/gerbview/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(-DGERBVIEW)
+
+include_directories( BEFORE ${INC_BEFORE} )
+include_directories(
+ ../pcbnew
+ dialogs
+ ../3d-viewer
+ ../polygon
+ ${INC_AFTER}
+ )
+
+
+set( DIALOGS_SRCS
+ dialogs/gerbview_dialog_display_options_frame_base.cpp
+ dialogs/gerbview_dialog_display_options_frame.cpp
+ dialogs/dialog_layers_select_to_pcb_base.cpp
+ dialogs/dialog_print_using_printer.cpp
+ dialogs/dialog_print_using_printer_base.cpp
+ dialogs/dialog_select_one_pcb_layer.cpp
+ dialogs/dialog_show_page_borders.cpp
+ dialogs/dialog_show_page_borders_base.cpp
+ )
+
+set( GERBVIEW_SRCS
+ block.cpp
+ class_am_param.cpp
+ class_aperture_macro.cpp
+ class_DCodeSelectionbox.cpp
+ class_gbr_screen.cpp
+ class_gbr_layout.cpp
+ class_GERBER.cpp
+ class_gerber_draw_item.cpp
+ class_gerbview_layer_widget.cpp
+ class_gbr_layer_box_selector.cpp
+ class_X2_gerber_attributes.cpp
+ controle.cpp
+ dcode.cpp
+ draw_gerber_screen.cpp
+ events_called_functions.cpp
+ excellon_read_drill_file.cpp
+ export_to_pcbnew.cpp
+ files.cpp
+ gerbview_config.cpp
+ gerbview_frame.cpp
+ hotkeys.cpp
+ init_gbr_drawlayers.cpp
+ locate.cpp
+ menubar.cpp
+ onleftclick.cpp
+ onrightclick.cpp
+ pcbplot.cpp
+ printout_control.cpp
+ readgerb.cpp
+ rs274_read_XY_and_IJ_coordinates.cpp
+ rs274d.cpp
+ rs274x.cpp
+ select_layers_to_pcb.cpp
+ toolbars_gerber.cpp
+ )
+
+set( GERBVIEW_EXTRA_SRCS
+ ../common/base_screen.cpp
+ ../common/base_units.cpp
+ ../common/eda_text.cpp
+ ../common/class_layer_box_selector.cpp
+ ../common/class_page_info.cpp
+ ../pcbnew/layer_widget.cpp
+)
+
+if( MINGW )
+ # GERBVIEW_RESOURCES variable is set by the macro.
+ mingw_resource_compiler( gerbview )
+else()
+ set( GERBVIEW_RESOURCES gerbview.rc )
+endif()
+
+if( APPLE )
+ # setup bundle
+ set( GERBVIEW_RESOURCES gerbview.icns gerbview_doc.icns )
+ set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/gerbview.icns" PROPERTIES
+ MACOSX_PACKAGE_LOCATION Resources
+ )
+ set_source_files_properties( "${CMAKE_CURRENT_SOURCE_DIR}/gerbview_doc.icns" PROPERTIES
+ MACOSX_PACKAGE_LOCATION Resources
+ )
+ set( MACOSX_BUNDLE_ICON_FILE gerbview.icns )
+ set( MACOSX_BUNDLE_GUI_IDENTIFIER org.kicad-pcb.kicad )
+ set( MACOSX_BUNDLE_NAME gerbview )
+endif()
+
+add_executable( gerbview WIN32 MACOSX_BUNDLE
+ ../common/single_top.cpp
+ ../common/pgm_base.cpp
+ ${GERBVIEW_RESOURCES}
+ )
+set_source_files_properties( ../common/single_top.cpp PROPERTIES
+ COMPILE_DEFINITIONS "TOP_FRAME=FRAME_GERBER;BUILD_KIWAY_DLL"
+ )
+target_link_libraries( gerbview
+ #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( gerbview PROPERTIES
+ LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=gerbview.map" )
+endif()
+
+# the main gerbview program, in DSO form.
+add_library( gerbview_kiface MODULE
+ gerbview.cpp
+ ${GERBVIEW_SRCS}
+ ${DIALOGS_SRCS}
+ ${GERBVIEW_EXTRA_SRCS}
+ )
+set_target_properties( gerbview_kiface PROPERTIES
+ OUTPUT_NAME gerbview
+ PREFIX ${KIFACE_PREFIX}
+ SUFFIX ${KIFACE_SUFFIX}
+ )
+target_link_libraries( gerbview_kiface
+ common
+ polygon
+ bitmaps
+ gal
+ ${wxWidgets_LIBRARIES}
+ ${GDI_PLUS_LIBRARIES}
+ )
+set_source_files_properties( gerbview.cpp PROPERTIES
+ # The KIFACE is in gerbview.cpp, export it:
+ COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
+ )
+
+if( MAKE_LINK_MAPS )
+ set_target_properties( gerbview_kiface PROPERTIES
+ LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=_gerbview.kiface.map" )
+endif()
+
+# if building gerbview, then also build gerbview_kiface if out of date.
+add_dependencies( gerbview gerbview_kiface )
+
+# these 2 binaries are a matched set, keep them together
+if( APPLE )
+ set_target_properties( gerbview PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
+ )
+
+ # puts binaries into the *.app bundle while linking
+ set_target_properties( gerbview_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 gerbview
+ 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}/gerbview.app/Contents/MacOS/gerbview
+ \"\"
+ \"\"
+ )
+ " COMPONENT Runtime
+ )
+else()
+ install( TARGETS gerbview
+ DESTINATION ${KICAD_BIN}
+ COMPONENT binary
+ )
+ install( TARGETS gerbview_kiface
+ DESTINATION ${KICAD_BIN}
+ COMPONENT binary
+ )
+endif()