diff options
author | Darryl L. Pierce <mcpierce@apache.org> | 2013-04-25 20:26:41 +0000 |
---|---|---|
committer | Darryl L. Pierce <mcpierce@apache.org> | 2013-04-25 20:26:41 +0000 |
commit | 393d974b276c99138a46437da0bf57189e3fc730 (patch) | |
tree | e8634172c2659d032c5f79dedc23f24b270c8565 | |
parent | 6cffc269d4d06f9e8bbed4132f973c125b970ac8 (diff) | |
download | qpid-python-393d974b276c99138a46437da0bf57189e3fc730.tar.gz |
QPID-4724: Fixes Perl bindings for Cmake < 2.8.
To fix how Cmake prior to 2.8 fails to find the Perl libraries, this
change finds and sets the variables correctly.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1475945 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/bindings/CMakeLists.txt | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/qpid/cpp/bindings/CMakeLists.txt b/qpid/cpp/bindings/CMakeLists.txt index b5d0d66a53..69a6330c2a 100644 --- a/qpid/cpp/bindings/CMakeLists.txt +++ b/qpid/cpp/bindings/CMakeLists.txt @@ -30,6 +30,43 @@ if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8)) 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 (SWIG_MINIMUM_VERSION "1.3.32") @@ -64,7 +101,7 @@ if (SWIG_FOUND) add_subdirectory(qmf/ruby) endif (RUBY_FOUND) - if (PERLLIBS_FOUND) + if (PERL_FOUND) message("Building Perl bindings") execute_process(COMMAND ${PERL_EXECUTABLE} "-V::prefix:" OUTPUT_VARIABLE QPERL_PREFIX @@ -73,6 +110,6 @@ if (SWIG_FOUND) string(REPLACE ${PERL_PREFIX} ${CMAKE_INSTALL_PREFIX} PERL_PFX_ARCHLIB ${PERL_ARCHLIB}) add_subdirectory(qpid/perl) - endif (PERLLIBS_FOUND) + endif (PERL_FOUND) endif (${SWIG_VERSION} VERSION_LESS ${SWIG_MINIMUM_VERSION}) endif (SWIG_FOUND) |