| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| # Work-around for bug in older versions of cmake where find_package(PythonLib) |
| # finds the static .a library before the the dynamic .so one on Unix. |
| # Force search for .so first (this is exactly what newer versions of cmake do.) |
| # |
| # NOTE: Must be a macro, not a function. find_package in a function sets |
| # the package found variables in the function scope, not the parent scope. |
| # |
| macro(find_python_libs) |
| # Only do this on unix-like systems that use the .so library suffix. |
| if(UNIX AND CMAKE_FIND_LIBRARY_SUFFIXES MATCHES "\\.so") |
| set(SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) # Save the suffixes. |
| # Look just for shared libraries. |
| set(CMAKE_FIND_LIBRARY_SUFFIXES ".so") |
| find_package(PythonLibs) |
| # Restore the suffixes |
| set(CMAKE_FIND_LIBRARY_SUFFIXES ${SUFFIXES}) |
| endif() |
| # If we are not on a Unix/.so platform or we didn't find the library with the .so search |
| # then do a plain search |
| if (NOT PYTHONLIBS_FOUND) |
| find_package(PythonLibs) |
| endif() |
| endmacro(find_python_libs) |
| |
| |
| find_package(SWIG) |
| if (SWIG_FOUND) |
| |
| include(UseSWIG) |
| find_package(Ruby) |
| find_python_libs() |
| 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)) |
| |
| 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 (PERLLIBS_FOUND) |
| option(BUILD_BINDING_PERL "Build Perl bindings" ON) |
| endif (PERLLIBS_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}')" |
| OUTPUT_VARIABLE PYTHON_SITEARCH_PACKAGES |
| OUTPUT_STRIP_TRAILING_WHITESPACE) |
| |
| add_subdirectory(qpid/python) |
| add_subdirectory(qmf2/python) |
| endif (BUILD_BINDING_PYTHON) |
| |
| 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 |
| OUTPUT_STRIP_TRAILING_WHITESPACE) |
| string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX} RUBY_PFX_ARCH_DIR ${RUBY_SITEARCH_DIR}) |
| # string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX} RUBY_PFX_ARCH_DIR ${RUBY_ARCH_DIR}) |
| add_subdirectory(qpid/ruby) |
| add_subdirectory(qmf2/ruby) |
| endif (BUILD_BINDING_RUBY) |
| |
| if (BUILD_BINDING_PERL) |
| message(STATUS "Building Perl bindings") |
| execute_process(COMMAND ${PERL_EXECUTABLE} "-V::prefix:" |
| OUTPUT_VARIABLE QPERL_PREFIX |
| OUTPUT_STRIP_TRAILING_WHITESPACE) |
| string(REGEX REPLACE "'(.*)'" "\\1" PERL_PREFIX ${QPERL_PREFIX}) |
| string(REPLACE ${PERL_PREFIX} ${CMAKE_INSTALL_PREFIX} PERL_PFX_ARCHLIB ${PERL_ARCHLIB}) |
| |
| add_subdirectory(qpid/perl) |
| endif (BUILD_BINDING_PERL) |
| endif (SWIG_FOUND) |
| |
| if (MSVC) |
| set (dotnet_binding_default ON) |
| else (MSVC) |
| set (dotnet_binding_default OFF) |
| endif (MSVC) |
| option(BUILD_BINDING_DOTNET "Build DOTNET bindings" ${dotnet_binding_default}) |
| |
| if (BUILD_BINDING_DOTNET) |
| message(STATUS "Building Dotnet bindings") |
| add_subdirectory(qpid/dotnet) |
| endif (BUILD_BINDING_DOTNET) |
| |
| add_subdirectory(qmf2/examples/cpp) |