mirror of
https://github.com/reactos/CMake.git
synced 2024-12-14 23:29:57 +00:00
745b56f58c
No need to explain this over and over again. While at it, do some other minor cleanups to whitespace and comments (i.e. delete them).
79 lines
2.4 KiB
CMake
79 lines
2.4 KiB
CMake
# 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)
|