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.

89 lines
2.3 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}/resources/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}/resources/bitmaps_png/include
  38. ${PROJECT_SOURCE_DIR}/include
  39. ${wxWidgets_LIBRARIES}
  40. ${Boost_INCLUDE_DIR}
  41. )
  42. if( MSVC )
  43. target_sources( scripting_kiface PRIVATE ${CMAKE_SOURCE_DIR}/resources/msw/kipython-dll.rc )
  44. endif()
  45. target_link_libraries( scripting_kiface
  46. scripting
  47. )
  48. set_target_properties( scripting_kiface PROPERTIES
  49. OUTPUT_NAME kipython
  50. PREFIX ${KIFACE_PREFIX}
  51. SUFFIX ${KIFACE_SUFFIX}
  52. )
  53. if( MAKE_LINK_MAPS )
  54. set_target_properties( scripting_kiface PROPERTIES
  55. LINK_FLAGS "-Wl,-cref,-Map=_scripting.kiface.map" )
  56. endif()
  57. if( APPLE )
  58. set_target_properties( scripting_kiface PROPERTIES
  59. LIBRARY_OUTPUT_DIRECTORY ${OSX_BUNDLE_BUILD_KIFACE_DIR}
  60. )
  61. else()
  62. install( TARGETS scripting_kiface
  63. DESTINATION ${KICAD_KIFACE}
  64. COMPONENT binary
  65. )
  66. endif()
  67. if( KICAD_WIN32_INSTALL_PDBS )
  68. # Get the PDBs to copy over for MSVC
  69. install(FILES $<TARGET_PDB_FILE:scripting_kiface> DESTINATION ${KICAD_KIFACE})
  70. endif()
  71. # python shell installation
  72. install( DIRECTORY ${PROJECT_SOURCE_DIR}/scripting/kicad_pyshell/
  73. DESTINATION ${KICAD_DATA}/scripting/kicad_pyshell
  74. FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
  75. )