summaryrefslogtreecommitdiffstats
path: root/src/bindings/swig/python/CMakeLists.txt
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-12-24 10:54:21 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-12-24 10:54:21 (GMT)
commitcbb57aadbfe11269297c36f578d4a440a3602436 (patch)
treeccfd08eb9104d9bd142f1e7417fc0ed95f57f77f /src/bindings/swig/python/CMakeLists.txt
parent75fc3b465fb3d61d36874cf7a29ddbb8256e3817 (diff)
downloaduscxml-cbb57aadbfe11269297c36f578d4a440a3602436.zip
uscxml-cbb57aadbfe11269297c36f578d4a440a3602436.tar.gz
uscxml-cbb57aadbfe11269297c36f578d4a440a3602436.tar.bz2
First implementation of Python wrappers
Diffstat (limited to 'src/bindings/swig/python/CMakeLists.txt')
-rw-r--r--src/bindings/swig/python/CMakeLists.txt54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/bindings/swig/python/CMakeLists.txt b/src/bindings/swig/python/CMakeLists.txt
new file mode 100644
index 0000000..3335ef2
--- /dev/null
+++ b/src/bindings/swig/python/CMakeLists.txt
@@ -0,0 +1,54 @@
+if (CMAKE_CROSSCOMPILING)
+ return()
+endif()
+
+set(Python_ADDITIONAL_VERSIONS)
+find_package(PythonLibs)
+if(NOT PYTHONLIBS_FOUND)
+ return()
+endif()
+
+if(NOT PYTHON_INCLUDE_DIRS)
+ return()
+else()
+ list(REMOVE_ITEM PYTHON_INCLUDE_DIRS "PYTHON_INCLUDE_DIR-NOTFOUND")
+ if(NOT PYTHON_INCLUDE_DIRS)
+ return()
+ endif()
+endif()
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${PYTHON_INCLUDE_DIRS})
+
+# -includeall?
+SET(CMAKE_SWIG_FLAGS "-threads" "-c++")
+
+SET_SOURCE_FILES_PROPERTIES(uscxml.i PROPERTIES SWIG_MODULE_NAME "uscxmlNativePython")
+SET_SOURCE_FILES_PROPERTIES(uscxml.i PROPERTIES SWIG_FLAGS "-w401,362;")
+SET_SOURCE_FILES_PROPERTIES(uscxml.i PROPERTIES CPLUSPLUS ON)
+
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/uscxmlPYTHON_wrap.cxx PROPERTIES LANGUAGE CXX)
+SWIG_ADD_MODULE(uscxmlNativePython python uscxml.i)
+
+if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/uscxmlPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-Wno-dynamic-class-memaccess")
+endif()
+
+SWIG_LINK_LIBRARIES(uscxmlNativePython ${PYTHON_LIBRARIES})
+SWIG_LINK_LIBRARIES(uscxmlNativePython uscxml)
+
+set_target_properties(_uscxmlNativePython PROPERTIES FOLDER "Bindings")
+set_target_properties(_uscxmlNativePython PROPERTIES COMPILE_FLAGS "-DSWIG")
+
+ADD_CUSTOM_COMMAND(
+ TARGET _uscxmlNativePython
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_BINARY_DIR}/uscxmlNativePython.py
+ ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/uscxmlNativePython.py
+)
+
+
+set(USCXML_LANGUAGE_BINDINGS "python ${USCXML_LANGUAGE_BINDINGS}")
+set(USCXML_LANGUAGE_BINDINGS ${USCXML_LANGUAGE_BINDINGS} PARENT_SCOPE)
+