kicad/utils/kicad2step/CMakeLists.txt

78 lines
1.9 KiB
CMake

include_directories( SYSTEM
${OCE_INCLUDE_DIRS}
${OCC_INCLUDE_DIR}
)
set( KS2_LIB_FILES
kicad2step.cpp
kicad2step_frame_base.cpp
pcb/3d_resolver.cpp
pcb/base.cpp
pcb/kicadmodel.cpp
pcb/kicadfootprint.cpp
pcb/kicadpad.cpp
pcb/kicadpcb.cpp
pcb/kicadcurve.cpp
pcb/oce_utils.cpp
)
# Break the library out for re-use by both kicad2step and any qa that needs it
# In future, this could move for re-use by other programs needing s-expr support (?)
add_library( kicad2step_lib OBJECT
${KS2_LIB_FILES}
)
target_include_directories( kicad2step_lib PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/include # for core
${Boost_INCLUDE_DIR} # see commit 03bce554
${CMAKE_SOURCE_DIR}/libs/kimath/include
${INC_AFTER}
)
target_link_libraries( kicad2step_lib
sexpr
${wxWidgets_LIBRARIES}
${OCC_LIBRARIES}
${ZLIB_LIBRARIES}
kimath
)
set( K2S_FILES
kicad2step_app.cpp
)
if( MINGW )
list( APPEND K2S_FILES ${CMAKE_SOURCE_DIR}/common/streamwrapper.cpp )
endif( MINGW )
add_executable( kicad2step_bin WIN32 ${K2S_FILES} )
target_link_libraries( kicad2step_bin
kicad2step_lib )
target_include_directories( kicad2step_lib PRIVATE
$<TARGET_PROPERTY:gzip-hpp,INTERFACE_INCLUDE_DIRECTORIES>
)
set_target_properties( kicad2step_bin
PROPERTIES OUTPUT_NAME kicad2step)
if( APPLE )
# puts binaries into the *.app bundle while linking
set_target_properties( kicad2step_bin PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_BIN_DIR}
)
else()
install( TARGETS kicad2step_bin kicad2step_lib
RUNTIME DESTINATION ${KICAD_BIN}
ARCHIVE DESTINATION ${KICAD_LIB}
COMPONENT binary )
endif()
if( KICAD_WIN32_INSTALL_PDBS )
# Get the PDBs to copy over for MSVC
install(FILES $<TARGET_PDB_FILE:kicad2step_bin> DESTINATION ${KICAD_BIN})
endif()