summaryrefslogtreecommitdiff
path: root/qpid/cpp/bindings/qmf2/python
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2013-12-04 22:19:02 +0000
committerAndrew Stitcher <astitcher@apache.org>2013-12-04 22:19:02 +0000
commit6460f4d8e8ca25b1141f454fa93dee433c60cfb2 (patch)
treea614d34d5b697b1b71d60d00c16d96bd1954e2a5 /qpid/cpp/bindings/qmf2/python
parentd13411746a104d58754a1caa42a286140d573788 (diff)
downloadqpid-python-6460f4d8e8ca25b1141f454fa93dee433c60cfb2.tar.gz
QPID-5394: Fix the binding dependencies so that we no longer keep on rebuilding the python swig bindings unnecessarily
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1547933 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/bindings/qmf2/python')
-rw-r--r--qpid/cpp/bindings/qmf2/python/CMakeLists.txt25
-rw-r--r--qpid/cpp/bindings/qmf2/python/cqmf2.i (renamed from qpid/cpp/bindings/qmf2/python/python.i)0
2 files changed, 18 insertions, 7 deletions
diff --git a/qpid/cpp/bindings/qmf2/python/CMakeLists.txt b/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
index 851a33f4e4..b000937ee6 100644
--- a/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
+++ b/qpid/cpp/bindings/qmf2/python/CMakeLists.txt
@@ -20,13 +20,25 @@
##------------------------------------------------------
## Use Swig to generate a literal binding to the C++ API
##------------------------------------------------------
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/python.i PROPERTIES CPLUSPLUS ON)
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/python.i PROPERTIES SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
-swig_add_module(cqmf2_python python ${CMAKE_CURRENT_SOURCE_DIR}/python.i)
-swig_link_libraries(cqmf2_python qmf2 ${PYTHON_LIBRARIES})
+# NB For python the SWIG module name must have the same name as the input .i file for CMake to generate the
+# correct dependencies
-set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing -I${PYTHON_INCLUDE_PATH} -I${qpid-cpp_SOURCE_DIR}/include")
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cqmf2.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
+
+list(APPEND SWIG_MODULE_cqmf2_EXTRA_DEPS
+ ${CMAKE_SOURCE_DIR}/include/qmf/qmf2.i
+ ${CMAKE_SOURCE_DIR}/include/qpid/swig_python_typemaps.i
+)
+swig_add_module(cqmf2 python ${CMAKE_CURRENT_SOURCE_DIR}/cqmf2.i)
+swig_link_libraries(cqmf2 qmf2 ${PYTHON_LIBRARIES})
+
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+include_directories(${PYTHON_INCLUDE_PATH}
+ ${qpid-cpp_SOURCE_DIR}/include
+ ${qpid-cpp_SOURCE_DIR}/bindings)
# Move source into binary dir so compiled .pyc,pyo files will be in binary dir.
# NOTE: not using the file(COPY) command as it is not available in cmake 2.6
@@ -55,8 +67,7 @@ install(FILES
COMPONENT ${QPID_COMPONENT_CLIENT}
)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_cqmf2_python.so
- RENAME _cqmf2.so
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_cqmf2.so
DESTINATION ${PYTHON_SITEARCH_PACKAGES}
COMPONENT ${QPID_COMPONENT_CLIENT}
)
diff --git a/qpid/cpp/bindings/qmf2/python/python.i b/qpid/cpp/bindings/qmf2/python/cqmf2.i
index 6b5326f8cf..6b5326f8cf 100644
--- a/qpid/cpp/bindings/qmf2/python/python.i
+++ b/qpid/cpp/bindings/qmf2/python/cqmf2.i