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.

103 lines
3.0 KiB

5 years ago
5 years ago
5 years ago
  1. set( KIPYTHON_SRCS
  2. kipython_settings.cpp
  3. )
  4. add_library( scripting STATIC
  5. ${KIPYTHON_SRCS}
  6. )
  7. target_link_libraries( scripting
  8. ${wxWidgets_LIBRARIES} # wxLogDebug, wxASSERT
  9. ${PYTHON_LIBRARIES}
  10. Boost::headers
  11. common
  12. kicommon
  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}/resources/bitmaps_png/include
  22. ${PROJECT_SOURCE_DIR}/include
  23. ${wxWidgets_LIBRARIES}
  24. )
  25. # Setup the KIFACE
  26. add_library( scripting_kiface MODULE
  27. kicad_scripting_main.cpp
  28. kipython_frame.cpp
  29. ${KIPYTHON_SRCS}
  30. )
  31. set_source_files_properties( kicad_scripting_main.cpp PROPERTIES
  32. # The KIFACE is in kicad_scripting_main.cpp, export it:
  33. COMPILE_DEFINITIONS "BUILD_KIWAY_DLL;COMPILING_DLL"
  34. )
  35. target_include_directories( scripting_kiface PRIVATE
  36. ${PROJECT_SOURCE_DIR}/resources/bitmaps_png/include
  37. ${PROJECT_SOURCE_DIR}/include
  38. ${wxWidgets_LIBRARIES}
  39. )
  40. if( MSVC )
  41. target_sources( scripting_kiface PRIVATE ${CMAKE_SOURCE_DIR}/resources/msw/kipython-dll.rc )
  42. endif()
  43. target_link_libraries( scripting_kiface
  44. scripting
  45. )
  46. set_target_properties( scripting_kiface PROPERTIES
  47. OUTPUT_NAME kipython
  48. PREFIX ${KIFACE_PREFIX}
  49. SUFFIX ${KIFACE_SUFFIX}
  50. )
  51. target_link_options( scripting_kiface PRIVATE
  52. $<$<BOOL:${KICAD_MAKE_LINK_MAPS}>:-Wl,--cref,-Map=_scripting.kiface.map>
  53. )
  54. if( APPLE )
  55. set_target_properties( scripting_kiface PROPERTIES
  56. LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
  57. )
  58. set_target_properties( scripting_kiface PROPERTIES INSTALL_RPATH
  59. "@executable_path/../Frameworks;@executable_path/../Frameworks/Python.framework" )
  60. set_target_properties( scripting_kiface PROPERTIES BUILD_WITH_INSTALL_RPATH 1 )
  61. install( CODE "
  62. set( KICAD_CMAKE_MODULE_PATH \"${KICAD_CMAKE_MODULE_PATH}\" )
  63. set( OSX_BUNDLE_BUILD_KIFACE_DIR \"${OSX_BUNDLE_BUILD_KIFACE_DIR}\" )
  64. set( OSX_BUNDLE_INSTALL_LIB_DIR \"${OSX_BUNDLE_INSTALL_LIB_DIR}\" )
  65. include( ${KICAD_CMAKE_MODULE_PATH}/InstallSteps/InstallMacOS.cmake )
  66. # Install any dependencies
  67. install_runtime_deps( \"\"
  68. \"${OSX_BUNDLE_BUILD_KIFACE_DIR}/_kipython.kiface\"
  69. \"\"
  70. )
  71. " )
  72. else()
  73. install( TARGETS scripting_kiface
  74. DESTINATION ${KICAD_KIFACE}
  75. COMPONENT binary
  76. )
  77. endif()
  78. if( KICAD_WIN32_INSTALL_PDBS )
  79. # Get the PDBs to copy over for MSVC
  80. install(FILES $<TARGET_PDB_FILE:scripting_kiface> DESTINATION ${KICAD_KIFACE})
  81. endif()
  82. # python shell installation
  83. install( DIRECTORY ${PROJECT_SOURCE_DIR}/scripting/kicad_pyshell/
  84. DESTINATION ${KICAD_DATA}/scripting/kicad_pyshell
  85. FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
  86. )