BasicConfiguration.cmake 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. find_package(SWIG REQUIRED)
  2. include(${SWIG_USE_FILE})
  3. # Path separator
  4. if (WIN32)
  5. set (PS "$<SEMICOLON>")
  6. else()
  7. set (PS ":")
  8. endif()
  9. unset(SWIG_LANG_TYPE)
  10. unset(SWIG_LANG_INCLUDE_DIRECTORIES)
  11. unset(SWIG_LANG_DEFINITIONS)
  12. unset(SWIG_LANG_OPTIONS)
  13. unset(SWIG_LANG_LIBRARIES)
  14. if(${language} MATCHES python)
  15. find_package(Python REQUIRED COMPONENTS Interpreter Development)
  16. set(SWIG_LANG_INCLUDE_DIRECTORIES ${Python_INCLUDE_DIRS})
  17. set(SWIG_LANG_LIBRARIES ${Python_LIBRARIES})
  18. endif()
  19. if(${language} MATCHES perl)
  20. find_package(Perl REQUIRED)
  21. find_package(PerlLibs REQUIRED)
  22. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PERL_INCLUDE_PATH})
  23. separate_arguments(c_flags UNIX_COMMAND "${PERL_EXTRA_C_FLAGS}")
  24. set(SWIG_LANG_OPTIONS ${c_flags})
  25. set(SWIG_LANG_LIBRARIES ${PERL_LIBRARY})
  26. endif()
  27. if(${language} MATCHES tcl)
  28. find_package(TCL REQUIRED)
  29. set(SWIG_LANG_INCLUDE_DIRECTORIES ${TCL_INCLUDE_PATH})
  30. set(SWIG_LANG_LIBRARIES ${TCL_LIBRARY})
  31. endif()
  32. if(${language} MATCHES ruby)
  33. find_package(Ruby REQUIRED)
  34. set(SWIG_LANG_INCLUDE_DIRECTORIES ${RUBY_INCLUDE_PATH})
  35. set(SWIG_LANG_LIBRARIES ${RUBY_LIBRARY})
  36. endif()
  37. if(${language} MATCHES php4)
  38. find_package(PHP4 REQUIRED)
  39. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PHP4_INCLUDE_PATH})
  40. set(SWIG_LANG_LIBRARIES ${PHP4_LIBRARY})
  41. endif()
  42. if(${language} MATCHES pike)
  43. find_package(Pike REQUIRED)
  44. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PIKE_INCLUDE_PATH})
  45. set(SWIG_LANG_LIBRARIES ${PIKE_LIBRARY})
  46. endif()
  47. if(${language} MATCHES lua)
  48. find_package(Lua REQUIRED)
  49. set(SWIG_LANG_INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIR})
  50. set(SWIG_LANG_TYPE TYPE SHARED)
  51. set(SWIG_LANG_LIBRARIES ${LUA_LIBRARIES})
  52. endif()
  53. unset(CMAKE_SWIG_FLAGS)
  54. set (CMAKE_INCLUDE_CURRENT_DIR ON)
  55. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY CPLUSPLUS ON)
  56. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY COMPILE_OPTIONS -includeall)
  57. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  58. PROPERTY GENERATED_INCLUDE_DIRECTORIES ${SWIG_LANG_INCLUDE_DIRECTORIES}
  59. "${CMAKE_CURRENT_LIST_DIR}")
  60. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  61. PROPERTY GENERATED_COMPILE_DEFINITIONS ${SWIG_LANG_DEFINITIONS})
  62. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  63. PROPERTY GENERATED_COMPILE_OPTIONS ${SWIG_LANG_OPTIONS})
  64. SWIG_ADD_LIBRARY(example
  65. LANGUAGE "${language}"
  66. ${SWIG_LANG_TYPE}
  67. SOURCES "${CMAKE_CURRENT_LIST_DIR}/example.i"
  68. "${CMAKE_CURRENT_LIST_DIR}/example.cxx")
  69. TARGET_LINK_LIBRARIES(example PRIVATE ${SWIG_LANG_LIBRARIES})