mirror of
https://github.com/reactos/CMake.git
synced 2024-11-27 13:30:39 +00:00
9db3116226
Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
84 lines
3.0 KiB
CMake
84 lines
3.0 KiB
CMake
# - 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)
|
|
|
|
#=============================================================================
|
|
# Copyright 2001-2009 Kitware, Inc.
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
include(FindCygwin)
|
|
|
|
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\\._]+)[ \\)]")
|
|
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()
|
|
|
|
# Deprecated settings for compatibility with CMake1.4
|
|
set(PERL ${PERL_EXECUTABLE})
|
|
|
|
# handle the QUIETLY and REQUIRED arguments and set PERL_FOUND to TRUE if
|
|
# all listed variables are TRUE
|
|
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)
|