summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorDarryl L. Pierce <mcpierce@apache.org>2013-04-25 20:26:41 +0000
committerDarryl L. Pierce <mcpierce@apache.org>2013-04-25 20:26:41 +0000
commit107182b91c0f1871e41563236d55827412fe9d02 (patch)
treeaf51ed1ba520ce24397ebbc5f1f04eade9465d3f /cpp
parent6653e5bf6a0ec09db460dee59857b991cf0a7c42 (diff)
downloadqpid-python-107182b91c0f1871e41563236d55827412fe9d02.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/qpid@1475945 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/bindings/CMakeLists.txt41
1 files changed, 39 insertions, 2 deletions
diff --git a/cpp/bindings/CMakeLists.txt b/cpp/bindings/CMakeLists.txt
index b5d0d66a53..69a6330c2a 100644
--- a/cpp/bindings/CMakeLists.txt
+++ b/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)