summaryrefslogtreecommitdiff
path: root/qpid/cpp/bindings
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2013-10-28 12:39:56 +0000
committerAndrew Stitcher <astitcher@apache.org>2013-10-28 12:39:56 +0000
commit265821ba0b9ea2eb77ceb9158ceb83fffe12bc8f (patch)
tree24657249764e27d73ab4cad068dc7daee8820bfe /qpid/cpp/bindings
parent45a6f4f415108dd26e00f8902db3f4d5d787b835 (diff)
downloadqpid-python-265821ba0b9ea2eb77ceb9158ceb83fffe12bc8f.tar.gz
QPID-5260: Significant tidy up of cmake build
* Move to cmake 2.6 as minimum required version (2.4 is extremely long in the tooth now) * Add control over building individual language bindings * Make settings you don't usually want to change advanced so they are hidden by default * Changed to a uniform naming scheme for options: ** Options controlling what to build are all BUILD_ ** Options controlling features of he build are ENABLE_ ** Options controlling internal aspects of the qpid runtime are QPID_ * Respect the BUILD_TESTING option so that we won't build the tests unless it is set (it is by default) * If we don't find the boost_unit_test_framework then don't fail, just don't build the unit tests (this is motivated by one of the Apache Jenkins ubuntu builders which has this set up) * Tidied up some of the detection of external dependencies to make it more idiomatic cmake (but there is more to do here) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1536329 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/bindings')
-rw-r--r--qpid/cpp/bindings/CMakeLists.txt123
1 files changed, 69 insertions, 54 deletions
diff --git a/qpid/cpp/bindings/CMakeLists.txt b/qpid/cpp/bindings/CMakeLists.txt
index 883eef286f..6707d489b7 100644
--- a/qpid/cpp/bindings/CMakeLists.txt
+++ b/qpid/cpp/bindings/CMakeLists.txt
@@ -18,61 +18,76 @@
#
-include(FindSWIG)
-include(UseSWIG)
-include(FindRuby)
-include(FindPythonLibs)
-include(FindPerlLibs)
-
-if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
- if (RUBY_INCLUDE_PATH)
- set(RUBY_FOUND "TRUE")
- else()
- set(RUBY_FOUND "FALSE")
- endif (RUBY_INCLUDE_PATH)
+find_package(SWIG)
- if (PERL_FOUND)
- # taken from Cmake 2.8 FindPerlLibs.cmake
- execute_process(
- COMMAND
- ${PERL_EXECUTABLE} -V:installarchlib
- OUTPUT_VARIABLE PERL_ARCHLIB_OUTPUT_VARIABLE
- RESULT_VARIABLE PERL_ARCHLIB_RESULT_VARIABLE
- )
- if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
- string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
- file(TO_CMAKE_PATH "${PERL_ARCHLIB}" PERL_ARCHLIB)
- endif ()
-
- IF ( PERL_INCLUDE_PATH MATCHES .*-NOTFOUND )
- EXECUTE_PROCESS ( COMMAND ${PERL_EXECUTABLE}
- -MConfig -e "print \$Config{archlibexp}"
- OUTPUT_VARIABLE PERL_OUTPUT
- RESULT_VARIABLE PERL_RETURN_VALUE )
- IF ( NOT PERL_RETURN_VALUE )
- FIND_PATH ( PERL_INCLUDE_PATH perl.h ${PERL_OUTPUT}/CORE )
- ENDIF ( NOT PERL_RETURN_VALUE )
- ENDIF ( PERL_INCLUDE_PATH MATCHES .*-NOTFOUND )
-
- ## Try to fix failure in PERL_LIBRARY
- IF ( PERL_LIBRARY MATCHES .*-NOTFOUND )
- EXECUTE_PROCESS ( COMMAND ${PERL_EXECUTABLE}
- -MConfig -e "print \$Config{libperl}"
- OUTPUT_VARIABLE PERL_OUTPUT
- RESULT_VARIABLE PERL_RETURN_VALUE )
- IF ( NOT PERL_RETURN_VALUE )
- FIND_LIBRARY ( PERL_LIBRARY NAMES ${PERL_OUTPUT}
- PATHS ${PERL_INCLUDE_PATH} )
- ENDIF ( NOT PERL_RETURN_VALUE )
- ENDIF ( PERL_LIBRARY MATCHES .*-NOTFOUND )
+if (SWIG_FOUND)
- endif (PERL_FOUND)
-endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
+ include(UseSWIG)
+ find_package(Ruby)
+ find_package(PythonLibs)
+ find_package(PerlLibs)
+
+ if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
+
+ if (RUBY_INCLUDE_PATH)
+ set(RUBY_FOUND "TRUE")
+ else()
+ set(RUBY_FOUND "FALSE")
+ endif (RUBY_INCLUDE_PATH)
+
+ if (PERL_FOUND)
+ # taken from Cmake 2.8 FindPerlLibs.cmake
+ execute_process(
+ COMMAND
+ ${PERL_EXECUTABLE} -V:installarchlib
+ OUTPUT_VARIABLE PERL_ARCHLIB_OUTPUT_VARIABLE
+ RESULT_VARIABLE PERL_ARCHLIB_RESULT_VARIABLE
+ )
+ if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
+ string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
+ file(TO_CMAKE_PATH "${PERL_ARCHLIB}" PERL_ARCHLIB)
+ endif ()
+
+ IF ( PERL_INCLUDE_PATH MATCHES .*-NOTFOUND )
+ EXECUTE_PROCESS ( COMMAND ${PERL_EXECUTABLE}
+ -MConfig -e "print \$Config{archlibexp}"
+ OUTPUT_VARIABLE PERL_OUTPUT
+ RESULT_VARIABLE PERL_RETURN_VALUE )
+ IF ( NOT PERL_RETURN_VALUE )
+ FIND_PATH ( PERL_INCLUDE_PATH perl.h ${PERL_OUTPUT}/CORE )
+ ENDIF ( NOT PERL_RETURN_VALUE )
+ ENDIF ( PERL_INCLUDE_PATH MATCHES .*-NOTFOUND )
+
+ ## Try to fix failure in PERL_LIBRARY
+ IF ( PERL_LIBRARY MATCHES .*-NOTFOUND )
+ EXECUTE_PROCESS ( COMMAND ${PERL_EXECUTABLE}
+ -MConfig -e "print \$Config{libperl}"
+ OUTPUT_VARIABLE PERL_OUTPUT
+ RESULT_VARIABLE PERL_RETURN_VALUE )
+ IF ( NOT PERL_RETURN_VALUE )
+ FIND_LIBRARY ( PERL_LIBRARY NAMES ${PERL_OUTPUT}
+ PATHS ${PERL_INCLUDE_PATH} )
+ ENDIF ( NOT PERL_RETURN_VALUE )
+ ENDIF ( PERL_LIBRARY MATCHES .*-NOTFOUND )
+
+ endif (PERL_FOUND)
+ endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
-if (SWIG_FOUND)
set(CMAKE_SWIG_FLAGS "-w361,362,401,467,503")
if (PYTHONLIBS_FOUND)
+ option(BUILD_BINDING_PYTHON "Build Python bindings" ON)
+ endif (PYTHONLIBS_FOUND)
+
+ if (RUBY_FOUND)
+ option(BUILD_BINDING_RUBY "Build Ruby bindings" ON)
+ endif (RUBY_FOUND)
+
+ if (PERL_FOUND)
+ option(BUILD_BINDING_PERL "Build Perl bindings" ON)
+ endif (PERL_FOUND)
+
+ if (BUILD_BINDING_PYTHON)
message(STATUS "Building Python bindings")
execute_process(COMMAND ${PYTHON_EXECUTABLE}
-c "from distutils.sysconfig import get_python_lib; print get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}')"
@@ -81,9 +96,9 @@ if (SWIG_FOUND)
add_subdirectory(qpid/python)
add_subdirectory(qmf2/python)
- endif (PYTHONLIBS_FOUND)
+ endif (BUILD_BINDING_PYTHON)
- if (RUBY_FOUND)
+ if (BUILD_BINDING_RUBY)
message(STATUS "Building Ruby bindings")
execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG['prefix']"
OUTPUT_VARIABLE RUBY_PREFIX
@@ -92,9 +107,9 @@ if (SWIG_FOUND)
# string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX} RUBY_PFX_ARCH_DIR ${RUBY_ARCH_DIR})
add_subdirectory(qpid/ruby)
add_subdirectory(qmf2/ruby)
- endif (RUBY_FOUND)
+ endif (BUILD_BINDING_RUBY)
- if (PERLLIBS_FOUND)
+ if (BUILD_BINDING_PERL)
message(STATUS "Building Perl bindings")
execute_process(COMMAND ${PERL_EXECUTABLE} "-V::prefix:"
OUTPUT_VARIABLE QPERL_PREFIX
@@ -103,7 +118,7 @@ if (SWIG_FOUND)
string(REPLACE ${PERL_PREFIX} ${CMAKE_INSTALL_PREFIX} PERL_PFX_ARCHLIB ${PERL_ARCHLIB})
add_subdirectory(qpid/perl)
- endif (PERLLIBS_FOUND)
+ endif (BUILD_BINDING_PERL)
endif (SWIG_FOUND)
add_subdirectory(qmf2/examples/cpp)