# - Find Perl Libraries # This module searches for Perl libraries in the event that those files aren't # found by the default Cmake module. # include(${CMAKE_CURRENT_LIST_DIR}/FindPerlLibs.cmake) include(FindPerl) include(FindPerlLibs) if(NOT PERLLIBS_FOUND) MESSAGE ( STATUS "Trying alternative search for Perl" ) # 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 ( NOT PERL_ARCHLIB_RESULT_VARIABLE ) 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 ) IF (PERL_INCLUDE_PATH MATCHES .*-NOTFOUND OR NOT PERL_INCLUDE_PATH) MESSAGE(STATUS "Could not find perl.h") ENDIF () ENDIF ( NOT PERL_RETURN_VALUE ) # if either the library path is not found not set at all # then do our own search if ( NOT PERL_LIBRARY ) EXECUTE_PROCESS( COMMAND ${PERL_EXECUTABLE} -V:libperl OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT RESULT_VARIABLE PERL_LIBRARY_RESULT ) IF ( NOT PERL_LIBRARY_RESULT ) string(REGEX REPLACE "libperl='([^']+)'.*" "\\1" PERL_POSSIBLE_LIBRARIES ${PERL_LIBRARY_OUTPUT}) ENDIF ( NOT PERL_LIBRARY_RESULT ) MESSAGE ( STATUS "Looking for ${PERL_POSSIBLE_LIBRARIES}" ) find_file(PERL_LIBRARY NAMES ${PERL_POSSIBLE_LIBRARIES} PATHS /usr/lib ${PERL_ARCHLIB}/CORE ) endif ( NOT PERL_LIBRARY ) IF ( PERL_LIBRARY MATCHES .*-NOTFOUND OR NOT PERL_LIBRARY ) 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 OR NOT PERL_LIBRARY ) IF(PERL_LIBRARY MATCHES .*-NOTFOUND OR NOT PERL_LIBRARY OR PERL_INCLUDE_PATH MATCHES .*-NOTFOUND OR NOT PERL_INCLUDE_PATH) MESSAGE (STATUS "No Perl devel environment found - skipping Perl bindings") SET (DEFAULT_PERL OFF) ELSE() MESSAGE ( STATUS "Found PerlLibs: ${PERL_LIBRARY}" ) SET (DEFAULT_PERL ON) ENDIF() endif(NOT PERLLIBS_FOUND)