[Cmake-commits] CMake branch, next, updated. v2.8.7-2396-g28009fa

Rolf Eike Beer eike at sf-mail.de
Wed Feb 1 12:12:02 EST 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  28009fadac1ed04cb437fd6d13d33fe2ffa37aa0 (commit)
       via  a67eca85515f0fecb40aa836fff96ea34754125b (commit)
      from  170ef0621692eb8807c3e84b92b097e457953d6b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28009fadac1ed04cb437fd6d13d33fe2ffa37aa0
commit 28009fadac1ed04cb437fd6d13d33fe2ffa37aa0
Merge: 170ef06 a67eca8
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Wed Feb 1 12:12:00 2012 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Feb 1 12:12:00 2012 -0500

    Merge topic 'perl-version' into next
    
    a67eca8 FindPerl{,Libs}: move version detection into FindPerl


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a67eca85515f0fecb40aa836fff96ea34754125b
commit a67eca85515f0fecb40aa836fff96ea34754125b
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Wed Jan 18 18:08:43 2012 +0100
Commit:     Rolf Eike Beer <eike at sf-mail.de>
CommitDate: Wed Feb 1 18:11:33 2012 +0100

    FindPerl{,Libs}: move version detection into FindPerl
    
    If the first attempt of getting the version doesn't succeed, try a second
    approach.

diff --git a/Modules/FindPerl.cmake b/Modules/FindPerl.cmake
index db393e7..ae686df 100644
--- a/Modules/FindPerl.cmake
+++ b/Modules/FindPerl.cmake
@@ -1,8 +1,9 @@
 # - 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_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.
@@ -39,12 +40,44 @@ FIND_PROGRAM(PERL_EXECUTABLE
   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(PERL_EXECUTABLE)
+
 # 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 DEFAULT_MSG PERL_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Perl
+                                  REQUIRED_VARS PERL_EXECUTABLE
+                                  VERSION_VAR PERL_VERSION_STRING)
 
 MARK_AS_ADVANCED(PERL_EXECUTABLE)
diff --git a/Modules/FindPerlLibs.cmake b/Modules/FindPerlLibs.cmake
index eea55f1..feeb6f2 100644
--- a/Modules/FindPerlLibs.cmake
+++ b/Modules/FindPerlLibs.cmake
@@ -55,19 +55,6 @@ if (PERL_EXECUTABLE)
     string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
   endif (NOT PERL_PREFIX_RESULT_VARIABLE)
 
-  ### PERL_VERSION
-  execute_process(
-    COMMAND
-      ${PERL_EXECUTABLE} -V:version
-      OUTPUT_VARIABLE
-        PERL_VERSION_OUTPUT_VARIABLE
-      RESULT_VARIABLE
-        PERL_VERSION_RESULT_VARIABLE
-  )
-  if (NOT PERL_VERSION_RESULT_VARIABLE)
-    string(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION ${PERL_VERSION_OUTPUT_VARIABLE})
-  endif (NOT PERL_VERSION_RESULT_VARIABLE)
-
   ### PERL_ARCHNAME
   execute_process(
     COMMAND
@@ -206,19 +193,19 @@ if (PERL_EXECUTABLE)
   ### PERL_POSSIBLE_INCLUDE_PATHS
   set(PERL_POSSIBLE_INCLUDE_PATHS
     ${PERL_ARCHLIB}/CORE
-    /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
-    /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
-    /usr/lib/perl5/${PERL_VERSION}/CORE
-    /usr/lib/perl/${PERL_VERSION}/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_POSSIBLE_LIB_PATHS
   set(PERL_POSSIBLE_LIB_PATHS
     ${PERL_ARCHLIB}/CORE
-    /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
-    /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
-    /usr/lib/perl5/${PERL_VERSION}/CORE
-    /usr/lib/perl/${PERL_VERSION}/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_POSSIBLE_LIBRARY_NAME
@@ -249,7 +236,7 @@ if (PERL_EXECUTABLE)
   find_library(PERL_LIBRARY
     NAMES
       ${PERL_POSSIBLE_LIBRARY_NAME}
-      perl${PERL_VERSION}
+      perl${PERL_VERSION_STRING}
       perl
     PATHS
       ${PERL_POSSIBLE_LIB_PATHS}
@@ -261,15 +248,16 @@ endif (PERL_EXECUTABLE)
 # all listed variables are TRUE
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
 find_package_handle_standard_args(PerlLibs REQUIRED_VARS PERL_LIBRARY PERL_INCLUDE_PATH
-                                           VERSION_VAR PERL_VERSION)
+                                           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.7
+set(PER_VERSION ${PERL_VERSION_STRING})
 
 mark_as_advanced(
   PERL_INCLUDE_PATH
-  PERL_EXECUTABLE
   PERL_LIBRARY
 )

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list