diff options
Diffstat (limited to 'share/cmake-3.18/Modules/FindPerlLibs.cmake')
-rw-r--r-- | share/cmake-3.18/Modules/FindPerlLibs.cmake | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/share/cmake-3.18/Modules/FindPerlLibs.cmake b/share/cmake-3.18/Modules/FindPerlLibs.cmake new file mode 100644 index 0000000..7e27f31 --- /dev/null +++ b/share/cmake-3.18/Modules/FindPerlLibs.cmake @@ -0,0 +1,159 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +FindPerlLibs +------------ + +Find Perl libraries + +This module finds if PERL is installed and determines where the +include files and libraries are. It also determines what the name of +the library is. This code sets the following variables: + +:: + + PERLLIBS_FOUND = True if perl.h & libperl were found + PERL_INCLUDE_PATH = path to where perl.h is found + PERL_LIBRARY = path to libperl + PERL_EXECUTABLE = full path to the perl binary + + + +The minimum required version of Perl can be specified using the +standard syntax, e.g. find_package(PerlLibs 6.0) + +:: + + The following variables are also available if needed + (introduced after CMake 2.6.4) + + + +:: + + 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_VENDORARCH = path to the vendor arch install directory (-V:installvendorarch) + PERL_VENDORLIB = path to the vendor lib install directory (-V:installvendorlib) + PERL_ARCHLIB = path to the core arch lib install directory (-V:archlib) + PERL_PRIVLIB = path to the core priv lib install directory (-V:privlib) + PERL_UPDATE_ARCHLIB = path to the update arch lib install directory (-V:installarchlib) + PERL_UPDATE_PRIVLIB = path to the update priv lib install directory (-V:installprivlib) + PERL_EXTRA_C_FLAGS = Compilation flags used to build perl +#]=======================================================================] + +# find the perl executable +include(${CMAKE_CURRENT_LIST_DIR}/FindPerl.cmake) + +if (PERL_EXECUTABLE) + + function (perl_get_info _pgi_info tag) + cmake_parse_arguments(_PGI "IS_PATH" "" "" ${ARGN}) + + 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_get_info(PERL_ARCHNAME archname) + + ### PERL_EXTRA_C_FLAGS + perl_get_info(PERL_EXTRA_C_FLAGS cppflags) + + ### PERL_SITESEARCH + perl_get_info(PERL_SITESEARCH installsitesearch IS_PATH) + + ### PERL_SITEARCH + perl_get_info(PERL_SITEARCH installsitearch IS_PATH) + + ### PERL_SITELIB + perl_get_info(PERL_SITELIB installsitelib IS_PATH) + + ### PERL_VENDORARCH + perl_get_info(PERL_VENDORARCH installvendorarch IS_PATH) + + ### PERL_VENDORLIB + perl_get_info(PERL_VENDORLIB installvendorlib IS_PATH) + + ### PERL_ARCHLIB + perl_get_info(PERL_ARCHLIB archlib IS_PATH) + + ### PERL_PRIVLIB + perl_get_info(PERL_PRIVLIB privlib IS_PATH) + + ### PERL_UPDATE_ARCHLIB + perl_get_info(PERL_UPDATE_ARCHLIB installarchlib IS_PATH) + + ### PERL_UPDATE_PRIVLIB + perl_get_info(PERL_UPDATE_PRIVLIB installprivlib IS_PATH) + + ### PERL_POSSIBLE_LIBRARY_NAMES + perl_get_info(PERL_POSSIBLE_LIBRARY_NAMES libperl) + if (NOT PERL_POSSIBLE_LIBRARY_NAMES) + set(PERL_POSSIBLE_LIBRARY_NAMES perl${PERL_VERSION_STRING} perl) + endif() + if (CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN") + # on MSYS and CYGWIN environments, current perl -V:libperl gives shared library name + # rather than the import library. So, extends possible library names + list (APPEND PERL_POSSIBLE_LIBRARY_NAMES perl) + endif() + + ### PERL_INCLUDE_PATH + find_path(PERL_INCLUDE_PATH + NAMES + perl.h + PATHS + "${PERL_UPDATE_ARCHLIB}/CORE" + "${PERL_ARCHLIB}/CORE" + /usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE + /usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE + /usr/lib/perl5/${PERL_VERSION_STRING}/CORE + /usr/lib/perl/${PERL_VERSION_STRING}/CORE + ) + + ### PERL_LIBRARY + find_library(PERL_LIBRARY + NAMES + ${PERL_POSSIBLE_LIBRARY_NAMES} + PATHS + "${PERL_UPDATE_ARCHLIB}/CORE" + "${PERL_ARCHLIB}/CORE" + /usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE + /usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE + /usr/lib/perl5/${PERL_VERSION_STRING}/CORE + /usr/lib/perl/${PERL_VERSION_STRING}/CORE + ) + +endif () + +include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) +find_package_handle_standard_args(PerlLibs REQUIRED_VARS PERL_LIBRARY PERL_INCLUDE_PATH + VERSION_VAR PERL_VERSION_STRING) + +# Introduced after CMake 2.6.4 to bring module into compliance +set(PERL_INCLUDE_DIR ${PERL_INCLUDE_PATH}) +set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH}) +set(PERL_LIBRARIES ${PERL_LIBRARY}) +# For backward compatibility with CMake before 2.8.8 +set(PERL_VERSION ${PERL_VERSION_STRING}) + +mark_as_advanced( + PERL_INCLUDE_PATH + PERL_LIBRARY +) |