summaryrefslogtreecommitdiff
path: root/qpid/cpp/bindings
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
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')
-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
-rw-r--r--qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt8
-rw-r--r--qpid/cpp/bindings/qpid/python/CMakeLists.txt18
-rw-r--r--qpid/cpp/bindings/qpid/python/qpid_messaging.i (renamed from qpid/cpp/bindings/qpid/python/python.i)0
-rw-r--r--qpid/cpp/bindings/qpid/ruby/CMakeLists.txt8
6 files changed, 41 insertions, 18 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
diff --git a/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt b/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
index 4ea61abbe8..c40480ff4a 100644
--- a/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
+++ b/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
@@ -20,7 +20,9 @@
##------------------------------------------------------
## Use Swig to generate a literal binding to the C++ API
##------------------------------------------------------
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
set (RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_PATH})
@@ -30,6 +32,10 @@ include_directories(${RUBY_INCLUDE_DIRS}
${qpid-cpp_SOURCE_DIR}/include
${qpid-cpp_SOURCE_DIR}/bindings)
+list(APPEND SWIG_MODULE_cqmf2_ruby_EXTRA_DEPS
+ ${CMAKE_SOURCE_DIR}/include/qmf/qmf2.i
+ ${CMAKE_SOURCE_DIR}/include/qpid/swig_ruby_typemaps.i
+)
swig_add_module(cqmf2_ruby ruby ${CMAKE_CURRENT_SOURCE_DIR}/ruby.i)
swig_link_libraries(cqmf2_ruby qmf2 ${RUBY_LIBRARY})
diff --git a/qpid/cpp/bindings/qpid/python/CMakeLists.txt b/qpid/cpp/bindings/qpid/python/CMakeLists.txt
index 15f9bbb9f7..56ea0e9349 100644
--- a/qpid/cpp/bindings/qpid/python/CMakeLists.txt
+++ b/qpid/cpp/bindings/qpid/python/CMakeLists.txt
@@ -20,15 +20,19 @@
##------------------------------------------------------
## 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")
-list(APPEND SWIG_MODULE_qpid_messaging_python_EXTRA_DEPS
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/qpid/qpid.i
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/qpid/swig_python_typemaps.i
+# 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(${CMAKE_CURRENT_SOURCE_DIR}/qpid_messaging.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
+
+list(APPEND SWIG_MODULE_qpid_messaging_EXTRA_DEPS
+ ${CMAKE_SOURCE_DIR}/include/qpid/qpid.i
+ ${CMAKE_SOURCE_DIR}/include/qpid/swig_python_typemaps.i
)
-swig_add_module(qpid_messaging python ${CMAKE_CURRENT_SOURCE_DIR}/python.i)
+swig_add_module(qpid_messaging python ${CMAKE_CURRENT_SOURCE_DIR}/qpid_messaging.i)
swig_link_libraries(qpid_messaging qpidmessaging qpidtypes ${PYTHON_LIBRARIES})
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
diff --git a/qpid/cpp/bindings/qpid/python/python.i b/qpid/cpp/bindings/qpid/python/qpid_messaging.i
index 624cee35bc..624cee35bc 100644
--- a/qpid/cpp/bindings/qpid/python/python.i
+++ b/qpid/cpp/bindings/qpid/python/qpid_messaging.i
diff --git a/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
index 60c60445b7..f80f134366 100644
--- a/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
+++ b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
@@ -29,7 +29,9 @@ set(GEM_OUTPUT_FILE ${GEM_OUTPUT_PATH}/pkg/qpid-${qpidc_version}.0.gem)
##------------------------------------------------------
## Use Swig to generate a literal binding to the C++ API
##------------------------------------------------------
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES
+ CPLUSPLUS ON
+ SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include;-I${qpid-cpp_SOURCE_DIR}/bindings")
if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
set (RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_PATH})
@@ -40,8 +42,8 @@ include_directories(${RUBY_INCLUDE_DIRS}
${qpid-cpp_SOURCE_DIR}/bindings)
list(APPEND SWIG_MODULE_cqpid_ruby_EXTRA_DEPS
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/qpid/qpid.i
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/qpid/swig_ruby_typemaps.i
+ ${CMAKE_SOURCE_DIR}/include/qpid/qpid.i
+ ${CMAKE_SOURCE_DIR}/include/qpid/swig_ruby_typemaps.i
)
swig_add_module(cqpid_ruby ruby ${CMAKE_CURRENT_SOURCE_DIR}/ruby.i)
swig_link_libraries(cqpid_ruby qpidmessaging qpidtypes qmf2 ${RUBY_LIBRARY})