CMakeLists.txt 885 B

12345678910111213141516171819202122232425262728
  1. cmake_minimum_required(VERSION 3.1...3.14)
  2. project(SwigSrcFileExtension C)
  3. include(CTest)
  4. find_package(SWIG REQUIRED)
  5. find_package(Python COMPONENTS Interpreter Development REQUIRED)
  6. include(${SWIG_USE_FILE})
  7. # Use the newer target name preference
  8. set(UseSWIG_TARGET_NAME_PREFERENCE "STANDARD")
  9. # Set the custom source file extension to both .i and .swg
  10. set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg")
  11. # Generate a Python module out of `.i`
  12. swig_add_library(my_add LANGUAGE python SOURCES my_add.i)
  13. target_link_libraries(my_add Python::Module)
  14. # Generate a Python module out of `.swg`
  15. swig_add_library(my_sub LANGUAGE python SOURCES my_sub.swg)
  16. target_link_libraries(my_sub Python::Module)
  17. # Add a test
  18. add_test(NAME SwigSrcFileExtension
  19. COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}"
  20. "${Python_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/runme.py")