diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2013-12-04 22:19:02 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2013-12-04 22:19:02 +0000 |
| commit | 6460f4d8e8ca25b1141f454fa93dee433c60cfb2 (patch) | |
| tree | a614d34d5b697b1b71d60d00c16d96bd1954e2a5 /qpid/cpp/bindings | |
| parent | d13411746a104d58754a1caa42a286140d573788 (diff) | |
| download | qpid-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.txt | 25 | ||||
| -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.txt | 8 | ||||
| -rw-r--r-- | qpid/cpp/bindings/qpid/python/CMakeLists.txt | 18 | ||||
| -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.txt | 8 |
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}) |
