CMakeLists.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. set(language "python")
  2. cmake_minimum_required (VERSION 2.6)
  3. project(example_${language}_class)
  4. find_package(SWIG REQUIRED)
  5. include(${SWIG_USE_FILE})
  6. unset(SWIG_LANG_TYPE)
  7. if(${language} MATCHES python)
  8. find_package(PythonLibs)
  9. include_directories(${PYTHON_INCLUDE_PATH})
  10. set(SWIG_LANG_LIBRARIES ${PYTHON_LIBRARIES})
  11. endif()
  12. if(${language} MATCHES perl)
  13. find_package(PerlLibs)
  14. include_directories(${PERL_INCLUDE_PATH})
  15. add_definitions(${PERL_EXTRA_C_FLAGS})
  16. set(SWIG_LANG_LIBRARIES ${PERL_LIBRARY})
  17. endif()
  18. if(${language} MATCHES tcl)
  19. find_package(TCL)
  20. include_directories(${TCL_INCLUDE_PATH})
  21. set(SWIG_LANG_LIBRARIES ${TCL_LIBRARY})
  22. endif()
  23. if(${language} MATCHES ruby)
  24. find_package(Ruby)
  25. include_directories(${RUBY_INCLUDE_PATH})
  26. set(SWIG_LANG_LIBRARIES ${RUBY_LIBRARY})
  27. endif()
  28. if(${language} MATCHES php4)
  29. find_package(PHP4)
  30. include_directories(${PHP4_INCLUDE_PATH})
  31. set(SWIG_LANG_LIBRARIES ${PHP4_LIBRARY})
  32. endif()
  33. if(${language} MATCHES pike)
  34. find_package(Pike)
  35. include_directories(${PIKE_INCLUDE_PATH})
  36. set(SWIG_LANG_LIBRARIES ${PIKE_LIBRARY})
  37. endif()
  38. if(${language} MATCHES lua)
  39. find_package(Lua)
  40. include_directories(${LUA_INCLUDE_DIR})
  41. set(SWIG_LANG_TYPE TYPE SHARED)
  42. set(SWIG_LANG_LIBRARIES ${LUA_LIBRARIES})
  43. endif()
  44. include_directories(${CMAKE_CURRENT_SOURCE_DIR})
  45. set(CMAKE_SWIG_FLAGS "")
  46. set_source_files_properties(example.i PROPERTIES CPLUSPLUS ON)
  47. set_source_files_properties(example.i PROPERTIES SWIG_FLAGS "-includeall")
  48. SWIG_ADD_LIBRARY(example
  49. LANGUAGE "${language}"
  50. ${SWIG_LANG_TYPE}
  51. SOURCES example.i example.cxx)
  52. SWIG_LINK_LIBRARIES(example ${SWIG_LANG_LIBRARIES})