BasicConfiguration.cmake 2.7 KB

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