mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-06 22:58:35 -06:00
FindPerlLibs: refactoring
Use a dedicated function (perl_get_info) to retrieve various configuration information
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
# ::
|
# ::
|
||||||
#
|
#
|
||||||
# PERL_SITESEARCH = path to the sitesearch install dir (-V:installsitesearch)
|
# PERL_SITESEARCH = path to the sitesearch install dir (-V:installsitesearch)
|
||||||
|
# PERL_SITEARCH = path to the sitelib install directory (-V:installsitearch)
|
||||||
# PERL_SITELIB = path to the sitelib install directory (-V:installsitelib)
|
# PERL_SITELIB = path to the sitelib install directory (-V:installsitelib)
|
||||||
# PERL_VENDORARCH = path to the vendor arch install directory (-V:installvendorarch)
|
# PERL_VENDORARCH = path to the vendor arch install directory (-V:installvendorarch)
|
||||||
# PERL_VENDORLIB = path to the vendor lib install directory (-V:installvendorlib)
|
# PERL_VENDORLIB = path to the vendor lib install directory (-V:installvendorlib)
|
||||||
@@ -46,182 +47,74 @@
|
|||||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPerl.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPerl.cmake)
|
||||||
|
|
||||||
if (PERL_EXECUTABLE)
|
if (PERL_EXECUTABLE)
|
||||||
### PERL_PREFIX
|
|
||||||
execute_process(
|
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:prefix
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_PREFIX_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_PREFIX_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
|
|
||||||
if (NOT PERL_PREFIX_RESULT_VARIABLE)
|
function (perl_get_info _pgi_info tag)
|
||||||
string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
|
cmake_parse_arguments(_PGI "IS_PATH" "" "" ${ARGN})
|
||||||
endif ()
|
|
||||||
|
set (${_pgi_info} NOTFOUND PARENT_SCOPE)
|
||||||
|
|
||||||
|
execute_process(COMMAND "${PERL_EXECUTABLE}" -V:${tag}
|
||||||
|
OUTPUT_VARIABLE result
|
||||||
|
RESULT_VARIABLE status)
|
||||||
|
|
||||||
|
if (NOT status)
|
||||||
|
string(REGEX REPLACE "${tag}='([^']*)'.*" "\\1" result "${result}")
|
||||||
|
if (_PGI_IS_PATH)
|
||||||
|
file(TO_CMAKE_PATH "${result}" result)
|
||||||
|
endif()
|
||||||
|
set (${_pgi_info} "${result}" PARENT_SCOPE)
|
||||||
|
endif ()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
### PERL_PREFIX
|
||||||
|
perl_get_info(PERL_PREFIX prefix IS_PATH)
|
||||||
|
|
||||||
### PERL_ARCHNAME
|
### PERL_ARCHNAME
|
||||||
execute_process(
|
perl_get_info(PERL_ARCHNAME archname)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:archname
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_ARCHNAME_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_ARCHNAME_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_ARCHNAME_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "archname='([^']+)'.*" "\\1" PERL_ARCHNAME ${PERL_ARCHNAME_OUTPUT_VARIABLE})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### PERL_EXTRA_C_FLAGS
|
### PERL_EXTRA_C_FLAGS
|
||||||
execute_process(
|
perl_get_info(PERL_EXTRA_C_FLAGS cppflags)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:cppflags
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_CPPFLAGS_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_CPPFLAGS_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "cppflags='([^']+)'.*" "\\1" PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_SITESEARCH
|
### PERL_SITESEARCH
|
||||||
execute_process(
|
perl_get_info(PERL_SITESEARCH installsitesearch IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installsitesearch
|
### PERL_SITEARCH
|
||||||
OUTPUT_VARIABLE
|
perl_get_info(PERL_SITEARCH installsitearch IS_PATH)
|
||||||
PERL_SITESEARCH_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_SITESEARCH_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_SITESEARCH_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITESEARCH ${PERL_SITESEARCH_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_SITESEARCH}" PERL_SITESEARCH)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_SITELIB
|
### PERL_SITELIB
|
||||||
execute_process(
|
perl_get_info(PERL_SITELIB installsitelib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installsitelib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_SITELIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_SITELIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_SITELIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITELIB ${PERL_SITELIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_SITELIB}" PERL_SITELIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_VENDORARCH
|
### PERL_VENDORARCH
|
||||||
execute_process(
|
perl_get_info(PERL_VENDORARCH installvendorarch IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installvendorarch
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_VENDORARCH_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_VENDORARCH_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_VENDORARCH_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORARCH ${PERL_VENDORARCH_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_VENDORARCH}" PERL_VENDORARCH)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_VENDORLIB
|
### PERL_VENDORLIB
|
||||||
execute_process(
|
perl_get_info(PERL_VENDORLIB installvendorlib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installvendorlib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_VENDORLIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_VENDORLIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_VENDORLIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORLIB ${PERL_VENDORLIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_VENDORLIB}" PERL_VENDORLIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_ARCHLIB
|
### PERL_ARCHLIB
|
||||||
execute_process(
|
perl_get_info(PERL_ARCHLIB archlib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:archlib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_ARCHLIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_ARCHLIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "archlib='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_ARCHLIB}" PERL_ARCHLIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_PRIVLIB
|
### PERL_PRIVLIB
|
||||||
execute_process(
|
perl_get_info(PERL_PRIVLIB privlib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:privlib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_PRIVLIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_PRIVLIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_PRIVLIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "privlib='([^']+)'.*" "\\1" PERL_PRIVLIB ${PERL_PRIVLIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_PRIVLIB}" PERL_PRIVLIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_UPDATE_ARCHLIB
|
### PERL_UPDATE_ARCHLIB
|
||||||
execute_process(
|
perl_get_info(PERL_UPDATE_ARCHLIB installarchlib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installarchlib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_UPDATE_ARCHLIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_UPDATE_ARCHLIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_UPDATE_ARCHLIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_UPDATE_ARCHLIB ${PERL_UPDATE_ARCHLIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_UPDATE_ARCHLIB}" PERL_UPDATE_ARCHLIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_UPDATE_PRIVLIB
|
### PERL_UPDATE_PRIVLIB
|
||||||
execute_process(
|
perl_get_info(PERL_UPDATE_PRIVLIB installprivlib IS_PATH)
|
||||||
COMMAND
|
|
||||||
${PERL_EXECUTABLE} -V:installprivlib
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_UPDATE_PRIVLIB_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_UPDATE_PRIVLIB_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_UPDATE_PRIVLIB_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_UPDATE_PRIVLIB ${PERL_UPDATE_PRIVLIB_OUTPUT_VARIABLE})
|
|
||||||
file(TO_CMAKE_PATH "${PERL_UPDATE_PRIVLIB}" PERL_UPDATE_PRIVLIB)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
### PERL_POSSIBLE_LIBRARY_NAMES
|
### PERL_POSSIBLE_LIBRARY_NAMES
|
||||||
execute_process(
|
perl_get_info(PERL_POSSIBLE_LIBRARY_NAMES libperl)
|
||||||
COMMAND
|
if (NOT PERL_POSSIBLE_LIBRARY_NAMES)
|
||||||
${PERL_EXECUTABLE} -V:libperl
|
|
||||||
OUTPUT_VARIABLE
|
|
||||||
PERL_LIBRARY_OUTPUT_VARIABLE
|
|
||||||
RESULT_VARIABLE
|
|
||||||
PERL_LIBRARY_RESULT_VARIABLE
|
|
||||||
)
|
|
||||||
if (NOT PERL_LIBRARY_RESULT_VARIABLE)
|
|
||||||
string(REGEX REPLACE "libperl='([^']+)'.*" "\\1" PERL_POSSIBLE_LIBRARY_NAMES ${PERL_LIBRARY_OUTPUT_VARIABLE})
|
|
||||||
else ()
|
|
||||||
set(PERL_POSSIBLE_LIBRARY_NAMES perl${PERL_VERSION_STRING} perl)
|
set(PERL_POSSIBLE_LIBRARY_NAMES perl${PERL_VERSION_STRING} perl)
|
||||||
endif ()
|
endif()
|
||||||
|
|
||||||
### PERL_INCLUDE_PATH
|
### PERL_INCLUDE_PATH
|
||||||
find_path(PERL_INCLUDE_PATH
|
find_path(PERL_INCLUDE_PATH
|
||||||
NAMES
|
NAMES
|
||||||
perl.h
|
perl.h
|
||||||
PATHS
|
PATHS
|
||||||
${PERL_UPDATE_ARCHLIB}/CORE
|
"${PERL_UPDATE_ARCHLIB}/CORE"
|
||||||
${PERL_ARCHLIB}/CORE
|
"${PERL_ARCHLIB}/CORE"
|
||||||
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
||||||
@@ -233,8 +126,8 @@ if (PERL_EXECUTABLE)
|
|||||||
NAMES
|
NAMES
|
||||||
${PERL_POSSIBLE_LIBRARY_NAMES}
|
${PERL_POSSIBLE_LIBRARY_NAMES}
|
||||||
PATHS
|
PATHS
|
||||||
${PERL_UPDATE_ARCHLIB}/CORE
|
"${PERL_UPDATE_ARCHLIB}/CORE"
|
||||||
${PERL_ARCHLIB}/CORE
|
"${PERL_ARCHLIB}/CORE"
|
||||||
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
/usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
|
||||||
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
/usr/lib/perl5/${PERL_VERSION_STRING}/CORE
|
||||||
|
|||||||
Reference in New Issue
Block a user