BasicConfiguration.cmake 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 csharp)
  15. set(SWIG_LANG_TYPE TYPE SHARED)
  16. endif()
  17. if(${language} MATCHES fortran)
  18. set(SWIG_LANG_TYPE TYPE SHARED)
  19. endif()
  20. if(${language} MATCHES python)
  21. find_package(Python REQUIRED COMPONENTS Interpreter Development)
  22. set(SWIG_LANG_INCLUDE_DIRECTORIES ${Python_INCLUDE_DIRS})
  23. set(SWIG_LANG_LIBRARIES ${Python_LIBRARIES})
  24. endif()
  25. if(${language} MATCHES perl)
  26. find_package(Perl REQUIRED)
  27. find_package(PerlLibs REQUIRED)
  28. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PERL_INCLUDE_PATH})
  29. separate_arguments(c_flags UNIX_COMMAND "${PERL_EXTRA_C_FLAGS}")
  30. set(SWIG_LANG_OPTIONS ${c_flags})
  31. set(SWIG_LANG_LIBRARIES ${PERL_LIBRARY})
  32. endif()
  33. if(${language} MATCHES tcl)
  34. find_package(TCL REQUIRED)
  35. set(SWIG_LANG_INCLUDE_DIRECTORIES ${TCL_INCLUDE_PATH})
  36. set(SWIG_LANG_LIBRARIES ${TCL_LIBRARY})
  37. endif()
  38. if(${language} MATCHES ruby)
  39. find_package(Ruby REQUIRED)
  40. set(SWIG_LANG_INCLUDE_DIRECTORIES ${RUBY_INCLUDE_PATH})
  41. set(SWIG_LANG_LIBRARIES ${RUBY_LIBRARY})
  42. endif()
  43. if(${language} MATCHES php4)
  44. find_package(PHP4 REQUIRED)
  45. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PHP4_INCLUDE_PATH})
  46. set(SWIG_LANG_LIBRARIES ${PHP4_LIBRARY})
  47. endif()
  48. if(${language} MATCHES pike)
  49. find_package(Pike REQUIRED)
  50. set(SWIG_LANG_INCLUDE_DIRECTORIES ${PIKE_INCLUDE_PATH})
  51. set(SWIG_LANG_LIBRARIES ${PIKE_LIBRARY})
  52. endif()
  53. if(${language} MATCHES lua)
  54. find_package(Lua REQUIRED)
  55. set(SWIG_LANG_INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIR})
  56. set(SWIG_LANG_TYPE TYPE SHARED)
  57. set(SWIG_LANG_LIBRARIES ${LUA_LIBRARIES})
  58. endif()
  59. unset(CMAKE_SWIG_FLAGS)
  60. set (CMAKE_INCLUDE_CURRENT_DIR ON)
  61. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY CPLUSPLUS ON)
  62. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY COMPILE_OPTIONS -includeall)
  63. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  64. PROPERTY GENERATED_INCLUDE_DIRECTORIES ${SWIG_LANG_INCLUDE_DIRECTORIES}
  65. "${CMAKE_CURRENT_LIST_DIR}")
  66. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  67. PROPERTY GENERATED_COMPILE_DEFINITIONS ${SWIG_LANG_DEFINITIONS})
  68. set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  69. PROPERTY GENERATED_COMPILE_OPTIONS ${SWIG_LANG_OPTIONS})
  70. SWIG_ADD_LIBRARY(example
  71. LANGUAGE "${language}"
  72. ${SWIG_LANG_TYPE}
  73. SOURCES "${CMAKE_CURRENT_LIST_DIR}/example.i"
  74. "${CMAKE_CURRENT_LIST_DIR}/example.cxx")
  75. TARGET_INCLUDE_DIRECTORIES(example PUBLIC ${CMAKE_CURRENT_LIST_DIR})
  76. TARGET_LINK_LIBRARIES(example PRIVATE ${SWIG_LANG_LIBRARIES})