| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| # file Copyright.txt or https://cmake.org/licensing for details. | |
| #.rst: | |
| # FindPerl | |
| # -------- | |
| # | |
| # Find perl | |
| # | |
| # this module looks for Perl | |
| # | |
| # :: | |
| # | |
| # PERL_EXECUTABLE - the full path to perl | |
| # PERL_FOUND - If false, don't attempt to use perl. | |
| # PERL_VERSION_STRING - version of perl found (since CMake 2.8.8) | |
| include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) | |
| set(PERL_POSSIBLE_BIN_PATHS | |
| ${CYGWIN_INSTALL_PATH}/bin | |
| ) | |
| if(WIN32) | |
| get_filename_component( | |
| ActivePerl_CurrentVersion | |
| "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActivePerl;CurrentVersion]" | |
| NAME) | |
| set(PERL_POSSIBLE_BIN_PATHS ${PERL_POSSIBLE_BIN_PATHS} | |
| "C:/Perl/bin" | |
| [HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActivePerl\\${ActivePerl_CurrentVersion}]/bin | |
| ) | |
| endif() | |
| find_program(PERL_EXECUTABLE | |
| NAMES perl | |
| 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\\._]+)[ \\)]") | |
| set(PERL_VERSION_STRING "${CMAKE_MATCH_1}") | |
| elseif(NOT PERL_VERSION_RESULT_VARIABLE AND PERL_VERSION_OUTPUT_VARIABLE MATCHES "This is perl, version ([0-9\\._]+) +") | |
| set(PERL_VERSION_STRING "${CMAKE_MATCH_1}") | |
| endif() | |
| endif() | |
| endif() | |
| # Deprecated settings for compatibility with CMake1.4 | |
| set(PERL ${PERL_EXECUTABLE}) | |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) | |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(Perl | |
| REQUIRED_VARS PERL_EXECUTABLE | |
| VERSION_VAR PERL_VERSION_STRING) | |
| mark_as_advanced(PERL_EXECUTABLE) |