Merge topic 'perl-version'
31826b5
FindPerl{,Libs}: move version detection into FindPerl
This commit is contained in:
commit
aab8510c25
|
@ -1,8 +1,9 @@
|
||||||
# - Find perl
|
# - Find perl
|
||||||
# this module looks for Perl
|
# this module looks for Perl
|
||||||
#
|
#
|
||||||
# PERL_EXECUTABLE - the full path to perl
|
# PERL_EXECUTABLE - the full path to perl
|
||||||
# PERL_FOUND - If false, don't attempt to use perl.
|
# PERL_FOUND - If false, don't attempt to use perl.
|
||||||
|
# PERL_VERSION_STRING - version of perl found (since CMake 2.8.8)
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2001-2009 Kitware, Inc.
|
# Copyright 2001-2009 Kitware, Inc.
|
||||||
|
@ -39,12 +40,44 @@ FIND_PROGRAM(PERL_EXECUTABLE
|
||||||
PATHS ${PERL_POSSIBLE_BIN_PATHS}
|
PATHS ${PERL_POSSIBLE_BIN_PATHS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF(PERL_EXECUTABLE)
|
||||||
|
### PERL_VERSION
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND
|
||||||
|
${PERL_EXECUTABLE} -V:version
|
||||||
|
OUTPUT_VARIABLE
|
||||||
|
PERL_VERSION_OUTPUT_VARIABLE
|
||||||
|
RESULT_VARIABLE
|
||||||
|
PERL_VERSION_RESULT_VARIABLE
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
IF(NOT PERL_VERSION_RESULT_VARIABLE AND NOT PERL_VERSION_OUTPUT_VARIABLE MATCHES "^version='UNKNOWN'")
|
||||||
|
STRING(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
|
||||||
|
ELSE()
|
||||||
|
EXECUTE_PROCESS(
|
||||||
|
COMMAND ${PERL_EXECUTABLE} -v
|
||||||
|
OUTPUT_VARIABLE PERL_VERSION_OUTPUT_VARIABLE
|
||||||
|
RESULT_VARIABLE PERL_VERSION_RESULT_VARIABLE
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
IF(NOT PERL_VERSION_RESULT_VARIABLE AND PERL_VERSION_OUTPUT_VARIABLE MATCHES "This is perl.*[ \\(]v([0-9\\._]+)[ \\)]")
|
||||||
|
STRING(REGEX REPLACE ".*This is perl.*[ \\(]v([0-9\\._]+)[ \\)].*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
|
||||||
|
ELSEIF(NOT PERL_VERSION_RESULT_VARIABLE AND PERL_VERSION_OUTPUT_VARIABLE MATCHES "This is perl, version ([0-9\\._]+) +")
|
||||||
|
STRING(REGEX REPLACE ".*This is perl, version ([0-9\\._]+) +.*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF(PERL_EXECUTABLE)
|
||||||
|
|
||||||
# Deprecated settings for compatibility with CMake1.4
|
# Deprecated settings for compatibility with CMake1.4
|
||||||
SET(PERL ${PERL_EXECUTABLE})
|
SET(PERL ${PERL_EXECUTABLE})
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set PERL_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set PERL_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Perl DEFAULT_MSG PERL_EXECUTABLE)
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Perl
|
||||||
|
REQUIRED_VARS PERL_EXECUTABLE
|
||||||
|
VERSION_VAR PERL_VERSION_STRING)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(PERL_EXECUTABLE)
|
MARK_AS_ADVANCED(PERL_EXECUTABLE)
|
||||||
|
|
|
@ -55,19 +55,6 @@ if (PERL_EXECUTABLE)
|
||||||
string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
|
string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
|
||||||
endif (NOT PERL_PREFIX_RESULT_VARIABLE)
|
endif (NOT PERL_PREFIX_RESULT_VARIABLE)
|
||||||
|
|
||||||
### PERL_VERSION
|
|
||||||
execute_process(
|
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:version
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_VERSION_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_VERSION_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_VERSION_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION ${PERL_VERSION_OUTPUT_VARIABLE})
|
|
||||||
endif (NOT PERL_VERSION_RESULT_VARIABLE)
|
|
||||||
|
|
||||||
### PERL_ARCHNAME
|
### PERL_ARCHNAME
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND
|
COMMAND
|
||||||
|
@ -206,19 +193,19 @@ if (PERL_EXECUTABLE)
|
||||||
### PERL_POSSIBLE_INCLUDE_PATHS
|
### PERL_POSSIBLE_INCLUDE_PATHS
|
||||||
set(PERL_POSSIBLE_INCLUDE_PATHS
|
set(PERL_POSSIBLE_INCLUDE_PATHS
|
||||||
${PERL_ARCHLIB}/CORE
|
${PERL_ARCHLIB}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/CORE
|
||||||
)
|
)
|
||||||
|
|
||||||
### PERL_POSSIBLE_LIB_PATHS
|
### PERL_POSSIBLE_LIB_PATHS
|
||||||
set(PERL_POSSIBLE_LIB_PATHS
|
set(PERL_POSSIBLE_LIB_PATHS
|
||||||
${PERL_ARCHLIB}/CORE
|
${PERL_ARCHLIB}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/CORE
|
||||||
)
|
)
|
||||||
|
|
||||||
### PERL_POSSIBLE_LIBRARY_NAME
|
### PERL_POSSIBLE_LIBRARY_NAME
|
||||||
|
@ -249,7 +236,7 @@ if (PERL_EXECUTABLE)
|
||||||
find_library(PERL_LIBRARY
|
find_library(PERL_LIBRARY
|
||||||
NAMES
|
NAMES
|
||||||
${PERL_POSSIBLE_LIBRARY_NAME}
|
${PERL_POSSIBLE_LIBRARY_NAME}
|
||||||
perl${PERL_VERSION}
|
perl${PERL_VERSION_STRING}
|
||||||
perl
|
perl
|
||||||
PATHS
|
PATHS
|
||||||
${PERL_POSSIBLE_LIB_PATHS}
|
${PERL_POSSIBLE_LIB_PATHS}
|
||||||
|
@ -261,15 +248,16 @@ endif (PERL_EXECUTABLE)
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
find_package_handle_standard_args(PerlLibs REQUIRED_VARS PERL_LIBRARY PERL_INCLUDE_PATH
|
find_package_handle_standard_args(PerlLibs REQUIRED_VARS PERL_LIBRARY PERL_INCLUDE_PATH
|
||||||
VERSION_VAR PERL_VERSION)
|
VERSION_VAR PERL_VERSION_STRING)
|
||||||
|
|
||||||
# Introduced after CMake 2.6.4 to bring module into compliance
|
# Introduced after CMake 2.6.4 to bring module into compliance
|
||||||
set(PERL_INCLUDE_DIR ${PERL_INCLUDE_PATH})
|
set(PERL_INCLUDE_DIR ${PERL_INCLUDE_PATH})
|
||||||
set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH})
|
set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH})
|
||||||
set(PERL_LIBRARIES ${PERL_LIBRARY})
|
set(PERL_LIBRARIES ${PERL_LIBRARY})
|
||||||
|
# For backward compatibility with CMake before 2.8.7
|
||||||
|
set(PERL_VERSION ${PERL_VERSION_STRING})
|
||||||
|
|
||||||
mark_as_advanced(
|
mark_as_advanced(
|
||||||
PERL_INCLUDE_PATH
|
PERL_INCLUDE_PATH
|
||||||
PERL_EXECUTABLE
|
|
||||||
PERL_LIBRARY
|
PERL_LIBRARY
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue