BasicConfiguration.cmake 2.76 KB
Newer Older
Marc Chevrier's avatar
Marc Chevrier committed
1 2 3 4

find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})

5 6 7 8 9 10 11
# Path separator
if (WIN32)
  set (PS "$<SEMICOLON>")
else()
  set (PS ":")
endif()

Marc Chevrier's avatar
Marc Chevrier committed
12 13 14 15 16 17
unset(SWIG_LANG_TYPE)
unset(SWIG_LANG_INCLUDE_DIRECTORIES)
unset(SWIG_LANG_DEFINITIONS)
unset(SWIG_LANG_OPTIONS)
unset(SWIG_LANG_LIBRARIES)

18 19 20
if(${language} MATCHES csharp)
  set(SWIG_LANG_TYPE TYPE SHARED)
endif()
Marc Chevrier's avatar
Marc Chevrier committed
21
if(${language} MATCHES python)
22 23 24
  find_package(Python REQUIRED COMPONENTS Interpreter Development)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${Python_INCLUDE_DIRS})
  set(SWIG_LANG_LIBRARIES ${Python_LIBRARIES})
Marc Chevrier's avatar
Marc Chevrier committed
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
endif()
if(${language} MATCHES perl)
  find_package(Perl REQUIRED)
  find_package(PerlLibs REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${PERL_INCLUDE_PATH})
  separate_arguments(c_flags UNIX_COMMAND "${PERL_EXTRA_C_FLAGS}")
  set(SWIG_LANG_OPTIONS ${c_flags})
  set(SWIG_LANG_LIBRARIES ${PERL_LIBRARY})
endif()
if(${language} MATCHES tcl)
  find_package(TCL REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${TCL_INCLUDE_PATH})
  set(SWIG_LANG_LIBRARIES ${TCL_LIBRARY})
endif()
if(${language} MATCHES ruby)
  find_package(Ruby REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${RUBY_INCLUDE_PATH})
  set(SWIG_LANG_LIBRARIES ${RUBY_LIBRARY})
endif()
if(${language} MATCHES php4)
  find_package(PHP4 REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${PHP4_INCLUDE_PATH})
  set(SWIG_LANG_LIBRARIES ${PHP4_LIBRARY})
endif()
if(${language} MATCHES pike)
  find_package(Pike REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${PIKE_INCLUDE_PATH})
  set(SWIG_LANG_LIBRARIES ${PIKE_LIBRARY})
endif()
if(${language} MATCHES lua)
  find_package(Lua REQUIRED)
  set(SWIG_LANG_INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIR})
  set(SWIG_LANG_TYPE TYPE SHARED)
  set(SWIG_LANG_LIBRARIES ${LUA_LIBRARIES})
endif()

61
set(UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
Marc Chevrier's avatar
Marc Chevrier committed
62 63 64 65
unset(CMAKE_SWIG_FLAGS)

set (CMAKE_INCLUDE_CURRENT_DIR ON)

Marc Chevrier's avatar
Marc Chevrier committed
66 67
set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY CPLUSPLUS ON)
set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i" PROPERTY COMPILE_OPTIONS -includeall)
Marc Chevrier's avatar
Marc Chevrier committed
68

Marc Chevrier's avatar
Marc Chevrier committed
69 70 71 72 73 74 75
set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  PROPERTY GENERATED_INCLUDE_DIRECTORIES ${SWIG_LANG_INCLUDE_DIRECTORIES}
                                         "${CMAKE_CURRENT_LIST_DIR}")
set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  PROPERTY GENERATED_COMPILE_DEFINITIONS ${SWIG_LANG_DEFINITIONS})
set_property(SOURCE "${CMAKE_CURRENT_LIST_DIR}/example.i"
  PROPERTY GENERATED_COMPILE_OPTIONS ${SWIG_LANG_OPTIONS})
Marc Chevrier's avatar
Marc Chevrier committed
76 77 78 79 80


SWIG_ADD_LIBRARY(example
                 LANGUAGE "${language}"
                 ${SWIG_LANG_TYPE}
Marc Chevrier's avatar
Marc Chevrier committed
81 82
                 SOURCES "${CMAKE_CURRENT_LIST_DIR}/example.i"
                         "${CMAKE_CURRENT_LIST_DIR}/example.cxx")
83
TARGET_INCLUDE_DIRECTORIES(example PUBLIC ${CMAKE_CURRENT_LIST_DIR})
Marc Chevrier's avatar
Marc Chevrier committed
84
TARGET_LINK_LIBRARIES(example PRIVATE ${SWIG_LANG_LIBRARIES})