You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.2 KiB

5 years ago
5 years ago
5 years ago
  1. set( KIPYTHON_SRCS
  2. kipython_settings.cpp
  3. python_scripting.cpp
  4. )
  5. add_library( scripting STATIC
  6. ${KIPYTHON_SRCS}
  7. )
  8. target_link_libraries( scripting
  9. ${wxWidgets_LIBRARIES} # wxLogDebug, wxASSERT
  10. ${Boost_LIBRARIES} # Because of the OPT types
  11. ${PYTHON_LIBRARIES}
  12. common
  13. )
  14. target_include_directories( scripting PUBLIC
  15. ${PYTHON_INCLUDE_DIRS}
  16. ${PROJECT_BINARY_DIR}
  17. ${CMAKE_CURRENT_SOURCE_DIR}
  18. )
  19. target_include_directories( scripting PRIVATE
  20. $<TARGET_PROPERTY:nlohmann_json,INTERFACE_INCLUDE_DIRECTORIES>
  21. ${PROJECT_SOURCE_DIR}/bitmaps_png/include
  22. ${PROJECT_SOURCE_DIR}/include
  23. ${wxWidgets_LIBRARIES}
  24. ${Boost_INCLUDE_DIR}
  25. )
  26. # Setup the KIFACE
  27. add_library( scripting_kiface MODULE
  28. kicad_scripting_main.cpp
  29. kipython_frame.cpp
  30. ${KIPYTHON_SRCS}
  31. )
  32. set_source_files_properties( kicad_scripting_main.cpp PROPERTIES
  33. # The KIFACE is in kicad_scripting_main.cpp, export it:
  34. COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
  35. )
  36. target_include_directories( scripting_kiface PRIVATE
  37. ${PROJECT_SOURCE_DIR}/bitmaps_png/include
  38. ${PROJECT_SOURCE_DIR}/include
  39. ${wxWidgets_LIBRARIES}
  40. ${Boost_INCLUDE_DIR}
  41. )
  42. target_link_libraries( scripting_kiface
  43. scripting
  44. )
  45. set_target_properties( scripting_kiface PROPERTIES
  46. OUTPUT_NAME kipython
  47. PREFIX ${KIFACE_PREFIX}
  48. SUFFIX ${KIFACE_SUFFIX}
  49. )
  50. if( MAKE_LINK_MAPS )
  51. set_target_properties( scripting_kiface PROPERTIES
  52. LINK_FLAGS "-Wl,-cref,-Map=_scripting.kiface.map" )
  53. endif()
  54. if( APPLE )
  55. set_target_properties( scripting_kiface PROPERTIES
  56. LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
  57. )
  58. else()
  59. install( TARGETS scripting_kiface
  60. DESTINATION ${KICAD_BIN}
  61. COMPONENT binary
  62. )
  63. endif()
  64. if( KICAD_WIN32_INSTALL_PDBS )
  65. # Get the PDBs to copy over for MSVC
  66. install(FILES $<TARGET_PDB_FILE:scripting_kiface> DESTINATION ${KICAD_BIN})
  67. endif()
  68. # python shell installation
  69. install( DIRECTORY ${PROJECT_SOURCE_DIR}/scripting/kicad_pyshell/
  70. DESTINATION ${KICAD_DATA}/scripting/kicad_pyshell
  71. FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
  72. )