[Cmake-commits] CMake branch, next, updated. v3.0.0-rc3-1997-g52ca9d6

Rolf Eike Beer eike at sf-mail.de
Mon Apr 7 02:53:17 EDT 2014


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  52ca9d605e7298001486f7ce163c8b71d4952f7c (commit)
       via  5b48f76790c27e636008014507dcbbbad526661e (commit)
      from  d8d6167310c2faf156caa977e7bfd4e431b0c7d6 (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=52ca9d605e7298001486f7ce163c8b71d4952f7c
commit 52ca9d605e7298001486f7ce163c8b71d4952f7c
Merge: d8d6167 5b48f76
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Mon Apr 7 02:53:15 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Apr 7 02:53:15 2014 -0400

    Merge topic 'matches-cleanup' into next
    
    5b48f767 revert topic "matches-cleanup"


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b48f76790c27e636008014507dcbbbad526661e
commit 5b48f76790c27e636008014507dcbbbad526661e
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Mon Apr 7 08:51:59 2014 +0200
Commit:     Rolf Eike Beer <eike at sf-mail.de>
CommitDate: Mon Apr 7 08:51:59 2014 +0200

    revert topic "matches-cleanup"
    
    It has at least one error in the BISON code and I don't have time to work on
    this today.

diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake
index 24f83b3..b896de2 100644
--- a/Modules/BundleUtilities.cmake
+++ b/Modules/BundleUtilities.cmake
@@ -235,8 +235,8 @@ function(get_bundle_main_executable bundle result_var)
     #
     set(eol_char "E")
     file(READ "${bundle}/Contents/Info.plist" info_plist)
-    string(REPLACE ";" "\\\\;" info_plist "${info_plist}")
-    string(REPLACE "\n" "${eol_char};" info_plist "${info_plist}")
+    string(REGEX REPLACE ";" "\\\\;" info_plist "${info_plist}")
+    string(REGEX REPLACE "\n" "${eol_char};" info_plist "${info_plist}")
 
     # Scan the lines for "<key>CFBundleExecutable</key>" - the line after that
     # is the name of the main executable.
@@ -394,7 +394,7 @@ function(get_item_key item key_var)
   if(WIN32)
     string(TOLOWER "${item_name}" item_name)
   endif()
-  string(REPLACE "." "_" ${key_var} "${item_name}")
+  string(REGEX REPLACE "\\." "_" ${key_var} "${item_name}")
   set(${key_var} ${${key_var}} PARENT_SCOPE)
 endfunction()
 
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake
index a8c89a4..5d35ce3 100644
--- a/Modules/CMakeDetermineCompilerABI.cmake
+++ b/Modules/CMakeDetermineCompilerABI.cmake
@@ -53,10 +53,10 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
       file(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 2 REGEX "INFO:[^[]*\\[")
       foreach(info ${ABI_STRINGS})
         if("${info}" MATCHES ".*INFO:sizeof_dptr\\[0*([^]]*)\\].*")
-          set(ABI_SIZEOF_DPTR "${CMAKE_MATCH_1}")
+          string(REGEX REPLACE ".*INFO:sizeof_dptr\\[0*([^]]*)\\].*" "\\1" ABI_SIZEOF_DPTR "${info}")
         endif()
         if("${info}" MATCHES ".*INFO:abi\\[([^]]*)\\].*")
-          set(ABI_NAME "${CMAKE_MATCH_1}")
+          string(REGEX REPLACE ".*INFO:abi\\[([^]]*)\\].*" "\\1" ABI_NAME "${info}")
         endif()
       endforeach()
 
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 73cb92a..067892d 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -27,7 +27,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
   else()
     set(CMAKE_${lang}_COMPILER_ID_FLAGS $ENV{${flagvar}})
   endif()
-  string(REPLACE " " ";" CMAKE_${lang}_COMPILER_ID_FLAGS_LIST "${CMAKE_${lang}_COMPILER_ID_FLAGS}")
+  string(REGEX REPLACE " " ";" CMAKE_${lang}_COMPILER_ID_FLAGS_LIST "${CMAKE_${lang}_COMPILER_ID_FLAGS}")
 
   # Compute the directory in which to run the test.
   set(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_PLATFORM_INFO_DIR}/CompilerId${lang})
@@ -360,23 +360,28 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
         if(COMPILER_ID)
           set(COMPILER_ID_TWICE 1)
         endif()
-        set(COMPILER_ID "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE ".*INFO:compiler\\[([^]]*)\\].*" "\\1"
+          COMPILER_ID "${info}")
       endif()
       if("${info}" MATCHES ".*INFO:platform\\[([^]\"]*)\\].*")
-        set(PLATFORM_ID "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE ".*INFO:platform\\[([^]]*)\\].*" "\\1"
+          PLATFORM_ID "${info}")
       endif()
       if("${info}" MATCHES ".*INFO:arch\\[([^]\"]*)\\].*")
-        set(ARCHITECTURE_ID "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE ".*INFO:arch\\[([^]]*)\\].*" "\\1"
+          ARCHITECTURE_ID "${info}")
       endif()
       if("${info}" MATCHES ".*INFO:compiler_version\\[([^]\"]*)\\].*")
-        string(REGEX REPLACE "^0+([0-9])" "\\1" COMPILER_VERSION "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE ".*INFO:compiler_version\\[([^]]*)\\].*" "\\1" COMPILER_VERSION "${info}")
+        string(REGEX REPLACE "^0+([0-9])" "\\1" COMPILER_VERSION "${COMPILER_VERSION}")
         string(REGEX REPLACE "\\.0+([0-9])" ".\\1" COMPILER_VERSION "${COMPILER_VERSION}")
       endif()
       if("${info}" MATCHES ".*INFO:simulate\\[([^]\"]*)\\].*")
         set(SIMULATE_ID "${CMAKE_MATCH_1}")
       endif()
       if("${info}" MATCHES ".*INFO:simulate_version\\[([^]\"]*)\\].*")
-        string(REGEX REPLACE "^0+([0-9])" "\\1" SIMULATE_VERSION "${CMAKE_MATCH_1}")
+        set(SIMULATE_VERSION "${CMAKE_MATCH_1}")
+        string(REGEX REPLACE "^0+([0-9])" "\\1" SIMULATE_VERSION "${SIMULATE_VERSION}")
         string(REGEX REPLACE "\\.0+([0-9])" ".\\1" SIMULATE_VERSION "${SIMULATE_VERSION}")
       endif()
       if("${info}" MATCHES ".*INFO:qnxnto")
diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
index 1c0941a..f1bad99 100644
--- a/Modules/CMakeDetermineSystem.cmake
+++ b/Modules/CMakeDetermineSystem.cmake
@@ -72,8 +72,8 @@ if(CMAKE_HOST_UNIX)
     endif()
     set(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
     # processor may have double quote in the name, and that needs to be removed
-    string(REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
-    string(REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+    string(REGEX REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+    string(REGEX REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
   endif()
 else()
   if(CMAKE_HOST_WIN32)
diff --git a/Modules/CMakeParseImplicitLinkInfo.cmake b/Modules/CMakeParseImplicitLinkInfo.cmake
index bfcf455..4724a8c 100644
--- a/Modules/CMakeParseImplicitLinkInfo.cmake
+++ b/Modules/CMakeParseImplicitLinkInfo.cmake
@@ -64,9 +64,10 @@ function(CMAKE_PARSE_IMPLICIT_LINK_INFO text lib_var dir_var fwk_var log_var obj
           string(REGEX REPLACE "^-L" "" dir "${arg}")
           list(APPEND implicit_dirs_tmp ${dir})
           set(log "${log}    arg [${arg}] ==> dir [${dir}]\n")
-        elseif("${arg}" MATCHES "^-l([^:].*)$")
+        elseif("${arg}" MATCHES "^-l[^:]")
           # Unix library.
-          list(APPEND implicit_libs_tmp ${CMAKE_MATCH_1})
+          string(REGEX REPLACE "^-l" "" lib "${arg}")
+          list(APPEND implicit_libs_tmp ${lib})
           set(log "${log}    arg [${arg}] ==> lib [${lib}]\n")
         elseif("${arg}" MATCHES "^(.:)?[/\\].*\\.a$")
           # Unix library full path.
@@ -96,10 +97,11 @@ function(CMAKE_PARSE_IMPLICIT_LINK_INFO text lib_var dir_var fwk_var log_var obj
         endif()
       endforeach()
       break()
-    elseif("${line}" MATCHES "LPATH(=| is:? *)(.*)$")
+    elseif("${line}" MATCHES "LPATH(=| is:? )")
       set(log "${log}  LPATH line: [${line}]\n")
       # HP search path.
-      string(REPLACE ":" ";" paths "${CMAKE_MATCH_2}")
+      string(REGEX REPLACE ".*LPATH(=| is:? *)" "" paths "${line}")
+      string(REPLACE ":" ";" paths "${paths}")
       list(APPEND implicit_dirs_tmp ${paths})
       set(log "${log}    dirs [${paths}]\n")
     else()
diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 458bbed..b210bbb 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -259,7 +259,7 @@ if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
       OUTPUT_VARIABLE CPACK_DEB_INSTALL_FILES)
 
     # Convert to CMake list
-    string(REPLACE "\n" ";" CPACK_DEB_INSTALL_FILES ${CPACK_DEB_INSTALL_FILES})
+    string(REGEX REPLACE "\n" ";" CPACK_DEB_INSTALL_FILES ${CPACK_DEB_INSTALL_FILES})
 
     # Only dynamically linked ELF files are included
     # Extract only file name infront of ":"
diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
index ad88e6b..a13a46f 100644
--- a/Modules/CPackRPM.cmake
+++ b/Modules/CPackRPM.cmake
@@ -384,7 +384,7 @@ if(CPACK_RPM_PACKAGE_DEBUG)
                     OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
                     ERROR_QUIET
                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    string(REPLACE "\n" ", "
+    string(REGEX REPLACE "\n" ", "
            LSB_RELEASE_OUTPUT
            ${_TMP_LSB_RELEASE_OUTPUT})
   else ()
diff --git a/Modules/CheckTypeSize.cmake b/Modules/CheckTypeSize.cmake
index 047b861..d4651b9 100644
--- a/Modules/CheckTypeSize.cmake
+++ b/Modules/CheckTypeSize.cmake
@@ -142,9 +142,10 @@ function(__check_type_size_impl type var map builtin language)
     foreach(info ${strings})
       if("${info}" MATCHES "${regex_size}")
         # Get the type size.
+        string(REGEX REPLACE "${regex_size}" "\\1" size "${info}")
         if(first)
-          set(${var} "${CMAKE_MATCH_1}")
-        elseif(NOT CMAKE_MATCH_1 STREQUAL "${${var}}")
+          set(${var} ${size})
+        elseif(NOT "${size}" STREQUAL "${${var}}")
           set(mismatch 1)
         endif()
         set(first 0)
diff --git a/Modules/ExternalData.cmake b/Modules/ExternalData.cmake
index ee20693..1e2698c 100644
--- a/Modules/ExternalData.cmake
+++ b/Modules/ExternalData.cmake
@@ -292,7 +292,8 @@ function(ExternalData_expand_arguments target outArgsVar)
       foreach(piece IN LISTS pieces)
         if("x${piece}" MATCHES "^x${data_regex}$")
           # Replace this DATA{}-piece with a file path.
-          _ExternalData_arg("${target}" "${piece}" "${CMAKE_MATCH_1}" file)
+          string(REGEX REPLACE "${data_regex}" "\\1" data "${piece}")
+          _ExternalData_arg("${target}" "${piece}" "${data}" file)
           set(outArg "${outArg}${file}")
         else()
           # No replacement needed for this piece.
@@ -427,9 +428,10 @@ function(_ExternalData_arg target arg options var_file)
   set(associated_files "")
   set(associated_regex "")
   foreach(opt ${options})
-    # Regular expression to match associated files.
-    if("x${opt}" MATCHES "^xREGEX:([^:/]+)$")
-      list(APPEND associated_regex "${CMAKE_MATCH_1}")
+    if("x${opt}" MATCHES "^xREGEX:[^:/]+$")
+      # Regular expression to match associated files.
+      string(REGEX REPLACE "^REGEX:" "" regex "${opt}")
+      list(APPEND associated_regex "${regex}")
     elseif(opt STREQUAL ":")
       # Activate series matching.
       set(series_option "${opt}")
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 2b6287f..0f651e9 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -201,11 +201,11 @@ file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
      LIMIT_COUNT ${_ep_documentation_line_count}
      REGEX "^#  (  \\[[A-Z0-9_]+ [^]]*\\] +#.*$|[A-Za-z0-9_]+\\()")
 foreach(line IN LISTS lines)
-  if("${line}" MATCHES "^#  ([A-Za-z0-9_]+)\\(")
+  if("${line}" MATCHES "^#  [A-Za-z0-9_]+\\(")
     if(_ep_func)
       set(_ep_keywords_${_ep_func} "${_ep_keywords_${_ep_func}})$")
     endif()
-    set(_ep_func "${CMAKE_MATCH_1}")
+    string(REGEX REPLACE "^#  ([A-Za-z0-9_]+)\\(.*" "\\1" _ep_func "${line}")
     #message("function [${_ep_func}]")
     set(_ep_keywords_${_ep_func} "^(")
     set(_ep_keyword_sep)
@@ -907,8 +907,7 @@ function(_ep_write_initial_cache target_name script_filename args)
   set(regex "^([^:]+):([^=]+)=(.*)$")
   set(setArg "")
   foreach(line ${args})
-    if("${line}" MATCHES "^-D(.*)")
-      set(line "${CMAKE_MATCH_1}")
+    if("${line}" MATCHES "^-D")
       if(setArg)
         # This is required to build up lists in variables, or complete an entry
         set(setArg "${setArg}${accumulator}\" CACHE ${type} \"Initial cache\" FORCE)")
@@ -916,7 +915,9 @@ function(_ep_write_initial_cache target_name script_filename args)
         set(accumulator "")
         set(setArg "")
       endif()
+      string(REGEX REPLACE "^-D" "" line ${line})
       if("${line}" MATCHES "${regex}")
+        string(REGEX MATCH "${regex}" match "${line}")
         set(name "${CMAKE_MATCH_1}")
         set(type "${CMAKE_MATCH_2}")
         set(value "${CMAKE_MATCH_3}")
diff --git a/Modules/FindBISON.cmake b/Modules/FindBISON.cmake
index a7b9b2a..9ca428e 100644
--- a/Modules/FindBISON.cmake
+++ b/Modules/FindBISON.cmake
@@ -92,13 +92,16 @@ if(BISON_EXECUTABLE)
     message(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
   else()
     # Bison++
-    if("${BISON_version_output}" MATCHES "^bison\\+\\+ Version ([^,]+)")
-      set(BISON_VERSION "${CMAKE_MATCH_1}")
+    if("${BISON_version_output}" MATCHES "^bison\\+\\+")
+      string(REGEX REPLACE "^bison\\+\\+ Version ([^,]+).*" "\\1"
+        BISON_VERSION "${BISON_version_output}")
     # GNU Bison
-    elseif("${BISON_version_output}" MATCHES "^bison \\(GNU Bison\\) ([^\n]+)\n")
-      set(BISON_VERSION "${CMAKE_MATCH_1}")
-    elseif("${BISON_version_output}" MATCHES "^GNU Bison (version )?([^\n]+)")
-      set(BISON_VERSION "${CMAKE_MATCH_1}")
+    elseif("${BISON_version_output}" MATCHES "^bison[^+]")
+      string(REGEX REPLACE "^bison \\(GNU Bison\\) ([^\n]+)\n.*" "\\1"
+        BISON_VERSION "${BISON_version_output}")
+    elseif("${BISON_version_output}" MATCHES "^GNU Bison ")
+      string(REGEX REPLACE "^GNU Bison (version )?([^\n]+).*" "\\2"
+        BISON_VERSION "${BISON_version_output}")
     endif()
   endif()
 
diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
index e894ba4..d4026af 100644
--- a/Modules/FindBoost.cmake
+++ b/Modules/FindBoost.cmake
@@ -631,12 +631,12 @@ if(NOT Boost_INCLUDE_DIR)
     set(_boost_BOOSTIFIED_VERSION)
 
     # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0
-    if(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
-        set(_boost_BOOSTIFIED_VERSION
-          "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}_${CMAKE_MATCH_3}")
-    elseif(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)")
-        set(_boost_BOOSTIFIED_VERSION
-          "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
+    if(_boost_VER MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
+        string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3"
+          _boost_BOOSTIFIED_VERSION ${_boost_VER})
+    elseif(_boost_VER MATCHES "[0-9]+\\.[0-9]+")
+        string(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2"
+          _boost_BOOSTIFIED_VERSION ${_boost_VER})
     endif()
 
     list(APPEND _boost_PATH_SUFFIXES
diff --git a/Modules/FindCUDA/make2cmake.cmake b/Modules/FindCUDA/make2cmake.cmake
index 7194652..1b53d17 100644
--- a/Modules/FindCUDA/make2cmake.cmake
+++ b/Modules/FindCUDA/make2cmake.cmake
@@ -41,7 +41,8 @@ if (${depend_text} MATCHES ".+")
 
   # message("FOUND DEPENDS")
 
-  string(REPLACE "\\ " " " depend_text ${depend_text})
+  # Remember, four backslashes is escaped to one backslash in the string.
+  string(REGEX REPLACE "\\\\ " " " depend_text ${depend_text})
 
   # This works for the nvcc -M generated dependency files.
   string(REGEX REPLACE "^.* : " "" depend_text ${depend_text})
diff --git a/Modules/FindCUDA/parse_cubin.cmake b/Modules/FindCUDA/parse_cubin.cmake
index ddb50de..94be7e2 100644
--- a/Modules/FindCUDA/parse_cubin.cmake
+++ b/Modules/FindCUDA/parse_cubin.cmake
@@ -39,8 +39,9 @@ file(READ ${input_file} file_text)
 
 if (${file_text} MATCHES ".+")
 
-  string(REPLACE ";" "\\;" file_text ${file_text})
-  string(REPLACE "\ncode" ";code" file_text ${file_text})
+  # Remember, four backslashes is escaped to one backslash in the string.
+  string(REGEX REPLACE ";" "\\\\;" file_text ${file_text})
+  string(REGEX REPLACE "\ncode" ";code" file_text ${file_text})
 
   list(LENGTH file_text len)
 
@@ -56,7 +57,7 @@ if (${file_text} MATCHES ".+")
 
         # Extract kernel names.
         if (${entry} MATCHES "[^g]name = ([^ ]+)")
-          set(entry "${CMAKE_MATCH_1}")
+          string(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry})
 
           # Check to see if the kernel name starts with "_"
           set(skip FALSE)
@@ -75,19 +76,19 @@ if (${file_text} MATCHES ".+")
 
           # Registers
           if (${entry} MATCHES "reg([ ]+)=([ ]+)([^ ]+)")
-            set(entry "${CMAKE_MATCH_3}")
+            string(REGEX REPLACE ".*([ ]+)=([ ]+)([^ ]+)" "\\3" entry ${entry})
             message("Registers: ${entry}")
           endif()
 
           # Local memory
           if (${entry} MATCHES "lmem([ ]+)=([ ]+)([^ ]+)")
-            set(entry "${CMAKE_MATCH_3}")
+            string(REGEX REPLACE ".*([ ]+)=([ ]+)([^ ]+)" "\\3" entry ${entry})
             message("Local:     ${entry}")
           endif()
 
           # Shared memory
           if (${entry} MATCHES "smem([ ]+)=([ ]+)([^ ]+)")
-            set(entry "${CMAKE_MATCH_3}")
+            string(REGEX REPLACE ".*([ ]+)=([ ]+)([^ ]+)" "\\3" entry ${entry})
             message("Shared:    ${entry}")
           endif()
 
diff --git a/Modules/FindCups.cmake b/Modules/FindCups.cmake
index 51eb7c5..61353ca 100644
--- a/Modules/FindCups.cmake
+++ b/Modules/FindCups.cmake
@@ -52,8 +52,9 @@ if (CUPS_INCLUDE_DIR AND EXISTS "${CUPS_INCLUDE_DIR}/cups/cups.h")
     unset(CUPS_VERSION_STRING)
     foreach(VPART MAJOR MINOR PATCH)
         foreach(VLINE ${cups_version_str})
-            if(VLINE MATCHES "^#[\t ]*define[\t ]+CUPS_VERSION_${VPART}[\t ]+([0-9]+)$")
-                set(CUPS_VERSION_PART "${CMAKE_MATCH_1}")
+            if(VLINE MATCHES "^#[\t ]*define[\t ]+CUPS_VERSION_${VPART}")
+                string(REGEX REPLACE "^#[\t ]*define[\t ]+CUPS_VERSION_${VPART}[\t ]+([0-9]+)$" "\\1"
+                       CUPS_VERSION_PART "${VLINE}")
                 if(CUPS_VERSION_STRING)
                     set(CUPS_VERSION_STRING "${CUPS_VERSION_STRING}.${CUPS_VERSION_PART}")
                 else()
diff --git a/Modules/FindEXPAT.cmake b/Modules/FindEXPAT.cmake
index 653094c..6183af8 100644
--- a/Modules/FindEXPAT.cmake
+++ b/Modules/FindEXPAT.cmake
@@ -38,8 +38,9 @@ if (EXPAT_INCLUDE_DIR AND EXISTS "${EXPAT_INCLUDE_DIR}/expat.h")
     unset(EXPAT_VERSION_STRING)
     foreach(VPART MAJOR MINOR MICRO)
         foreach(VLINE ${expat_version_str})
-            if(VLINE MATCHES "^#[\t ]*define[\t ]+XML_${VPART}_VERSION[\t ]+([0-9]+)$")
-                set(EXPAT_VERSION_PART "${CMAKE_MATCH_1}")
+            if(VLINE MATCHES "^#[\t ]*define[\t ]+XML_${VPART}_VERSION")
+                string(REGEX REPLACE "^#[\t ]*define[\t ]+XML_${VPART}_VERSION[\t ]+([0-9]+)$" "\\1"
+                       EXPAT_VERSION_PART "${VLINE}")
                 if(EXPAT_VERSION_STRING)
                     set(EXPAT_VERSION_STRING "${EXPAT_VERSION_STRING}.${EXPAT_VERSION_PART}")
                 else()
diff --git a/Modules/FindFLTK.cmake b/Modules/FindFLTK.cmake
index 76f702e..b87bc7f 100644
--- a/Modules/FindFLTK.cmake
+++ b/Modules/FindFLTK.cmake
@@ -285,7 +285,9 @@ endif()
           OUTPUT_VARIABLE FLTK_IMAGES_LDFLAGS)
         set(FLTK_LIBS_EXTRACT_REGEX ".*-lfltk_images (.*) -lfltk.*")
         if("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}")
-          string(REGEX REPLACE " +" ";" FLTK_IMAGES_LIBS "${CMAKE_MATCH_1}")
+          string(REGEX REPLACE "${FLTK_LIBS_EXTRACT_REGEX}" "\\1"
+            FLTK_IMAGES_LIBS "${FLTK_IMAGES_LDFLAGS}")
+          string(REGEX REPLACE " +" ";" FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}")
           # The EXEC_PROGRAM will not be inherited into subdirectories from
           # the file that originally included this module.  Save the answer.
           set(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL
diff --git a/Modules/FindFLTK2.cmake b/Modules/FindFLTK2.cmake
index 930acca..4deffda 100644
--- a/Modules/FindFLTK2.cmake
+++ b/Modules/FindFLTK2.cmake
@@ -226,7 +226,9 @@ if(FLTK2_DIR)
           OUTPUT_VARIABLE FLTK2_IMAGES_LDFLAGS)
         set(FLTK2_LIBS_EXTRACT_REGEX ".*-lfltk2_images (.*) -lfltk2.*")
         if("${FLTK2_IMAGES_LDFLAGS}" MATCHES "${FLTK2_LIBS_EXTRACT_REGEX}")
-          string(REGEX REPLACE " +" ";" FLTK2_IMAGES_LIBS "${CMAKE_MATCH_1}")
+          string(REGEX REPLACE "${FLTK2_LIBS_EXTRACT_REGEX}" "\\1"
+            FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LDFLAGS}")
+          string(REGEX REPLACE " +" ";" FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}")
           # The EXEC_PROGRAM will not be inherited into subdirectories from
           # the file that originally included this module.  Save the answer.
           set(FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}" CACHE INTERNAL
diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake
index 1779b78..f0f9fe1 100644
--- a/Modules/FindFreetype.cmake
+++ b/Modules/FindFreetype.cmake
@@ -117,8 +117,9 @@ if(FREETYPE_INCLUDE_DIR_freetype2 AND FREETYPE_H)
     unset(FREETYPE_VERSION_STRING)
     foreach(VPART MAJOR MINOR PATCH)
         foreach(VLINE ${freetype_version_str})
-            if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$")
-                set(FREETYPE_VERSION_PART "${CMAKE_MATCH_1}")
+            if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}")
+                string(REGEX REPLACE "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$" "\\1"
+                       FREETYPE_VERSION_PART "${VLINE}")
                 if(FREETYPE_VERSION_STRING)
                     set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
                 else()
diff --git a/Modules/FindGDAL.cmake b/Modules/FindGDAL.cmake
index bf374f9..4e04c31 100644
--- a/Modules/FindGDAL.cmake
+++ b/Modules/FindGDAL.cmake
@@ -90,9 +90,9 @@ if(UNIX)
         exec_program(${GDAL_CONFIG} ARGS --libs OUTPUT_VARIABLE GDAL_CONFIG_LIBS)
         if(GDAL_CONFIG_LIBS)
             string(REGEX MATCHALL "-l[^ ]+" _gdal_dashl ${GDAL_CONFIG_LIBS})
-            string(REPLACE "-l" "" _gdal_lib "${_gdal_dashl}")
+            string(REGEX REPLACE "-l" "" _gdal_lib "${_gdal_dashl}")
             string(REGEX MATCHALL "-L[^ ]+" _gdal_dashL ${GDAL_CONFIG_LIBS})
-            string(REPLACE "-L" "" _gdal_libpath "${_gdal_dashL}")
+            string(REGEX REPLACE "-L" "" _gdal_libpath "${_gdal_dashL}")
         endif()
     endif()
 endif()
diff --git a/Modules/FindGettext.cmake b/Modules/FindGettext.cmake
index 7ab867b..6a1e36e 100644
--- a/Modules/FindGettext.cmake
+++ b/Modules/FindGettext.cmake
@@ -71,8 +71,8 @@ if(GETTEXT_MSGMERGE_EXECUTABLE)
                   OUTPUT_VARIABLE gettext_version
                   ERROR_QUIET
                   OUTPUT_STRIP_TRAILING_WHITESPACE)
-   if (gettext_version MATCHES "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*)")
-      set(GETTEXT_VERSION_STRING "${CMAKE_MATCH_1}")
+   if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]")
+      string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}")
    endif()
    unset(gettext_version)
 endif()
diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake
index 1aa5dcf..2903bf8 100644
--- a/Modules/FindHDF5.cmake
+++ b/Modules/FindHDF5.cmake
@@ -162,7 +162,7 @@ macro( _HDF5_parse_compile_line
     )
     foreach( IPATH ${include_path_flags} )
         string( REGEX REPLACE "^-I" "" IPATH ${IPATH} )
-        string( REPLACE "//" "/" IPATH ${IPATH} )
+        string( REGEX REPLACE "//" "/" IPATH ${IPATH} )
         list( APPEND ${include_paths} ${IPATH} )
     endforeach()
 
@@ -179,7 +179,7 @@ macro( _HDF5_parse_compile_line
 
     foreach( LPATH ${library_path_flags} )
         string( REGEX REPLACE "^-L" "" LPATH ${LPATH} )
-        string( REPLACE "//" "/" LPATH ${LPATH} )
+        string( REGEX REPLACE "//" "/" LPATH ${LPATH} )
         list( APPEND ${library_paths} ${LPATH} )
     endforeach()
 
diff --git a/Modules/FindImageMagick.cmake b/Modules/FindImageMagick.cmake
index 4f0e687..1e7bda5 100644
--- a/Modules/FindImageMagick.cmake
+++ b/Modules/FindImageMagick.cmake
@@ -221,8 +221,8 @@ if(ImageMagick_mogrify_EXECUTABLE)
                   OUTPUT_VARIABLE imagemagick_version
                   ERROR_QUIET
                   OUTPUT_STRIP_TRAILING_WHITESPACE)
-  if(imagemagick_version MATCHES "^Version: ImageMagick ([-0-9\\.]+)")
-    set(ImageMagick_VERSION_STRING "${CMAKE_MATCH_1}")
+  if(imagemagick_version MATCHES "^Version: ImageMagick [0-9]")
+    string(REGEX REPLACE "^Version: ImageMagick ([-0-9\\.]+).*" "\\1" ImageMagick_VERSION_STRING "${imagemagick_version}")
   endif()
   unset(imagemagick_version)
 endif()
diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake
index 0bd7eb0..a488c46 100644
--- a/Modules/FindJava.cmake
+++ b/Modules/FindJava.cmake
@@ -128,15 +128,18 @@ if(Java_JAVA_EXECUTABLE)
       # 3. GCJ 1.5
       # 4. Kaffe 1.4.2
       # 5. OpenJDK 1.7.x on OpenBSD
-      if(var MATCHES "java version \"([0-9]+\\.[0-9]+\\.[0-9_.]+.*)\"")
+      if(var MATCHES "java version \"[0-9]+\\.[0-9]+\\.[0-9_.]+.*\".*")
         # This is most likely Sun / OpenJDK, or maybe GCJ-java compat layer
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
-      elseif(var MATCHES "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+)\"")
+        string( REGEX REPLACE ".* version \"([0-9]+\\.[0-9]+\\.[0-9_.]+.*)\".*"
+                "\\1" Java_VERSION_STRING "${var}" )
+      elseif(var MATCHES "java full version \"kaffe-[0-9]+\\.[0-9]+\\.[0-9_]+\".*")
         # Kaffe style
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
-      elseif(var MATCHES "openjdk version \"([0-9]+\\.[0-9]+\\.[0-9_]+)\"")
+        string( REGEX REPLACE "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+).*"
+                "\\1" Java_VERSION_STRING "${var}" )
+      elseif(var MATCHES "openjdk version \"[0-9]+\\.[0-9]+\\.[0-9_]+\".*")
         # OpenJDK ver 1.7.x on OpenBSD
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
+        string( REGEX REPLACE "openjdk version \"([0-9]+\\.[0-9]+\\.[0-9_]+).*"
+                "\\1" Java_VERSION_STRING "${var}" )
       else()
         if(NOT Java_FIND_QUIETLY)
           message(WARNING "regex not supported: ${var}. Please report")
diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake
index ea898a6..159e29c 100644
--- a/Modules/FindKDE3.cmake
+++ b/Modules/FindKDE3.cmake
@@ -192,7 +192,7 @@ if(KDECONFIG_EXECUTABLE)
    if ("${kde_version}" MATCHES "KDE: 3\\.")
       execute_process(COMMAND ${KDECONFIG_EXECUTABLE} --prefix
                         OUTPUT_VARIABLE kdedir )
-      string(REPLACE "\n" "" KDE3PREFIX "${kdedir}")
+      string(REGEX REPLACE "\n" "" KDE3PREFIX "${kdedir}")
 
     endif ()
 endif()
diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
index b00040f..c8d46ba 100644
--- a/Modules/FindMPI.cmake
+++ b/Modules/FindMPI.cmake
@@ -330,7 +330,7 @@ function (interrogate_mpi_compiler lang try_libs)
         string(REGEX MATCHALL "(^| )-I([^\" ]+|\"[^\"]+\")" MPI_ALL_INCLUDE_PATHS "${MPI_COMPILE_CMDLINE}")
         foreach(IPATH ${MPI_ALL_INCLUDE_PATHS})
           string(REGEX REPLACE "^ ?-I" "" IPATH ${IPATH})
-          string(REPLACE "//" "/" IPATH ${IPATH})
+          string(REGEX REPLACE "//" "/" IPATH ${IPATH})
           list(APPEND MPI_INCLUDE_PATH_WORK ${IPATH})
         endforeach()
 
@@ -354,7 +354,7 @@ function (interrogate_mpi_compiler lang try_libs)
         set(MPI_LINK_PATH)
         foreach(LPATH ${MPI_ALL_LINK_PATHS})
           string(REGEX REPLACE "^(| |-Wl,)-L" "" LPATH ${LPATH})
-          string(REPLACE "//" "/" LPATH ${LPATH})
+          string(REGEX REPLACE "//" "/" LPATH ${LPATH})
           list(APPEND MPI_LINK_PATH ${LPATH})
         endforeach()
 
diff --git a/Modules/FindPNG.cmake b/Modules/FindPNG.cmake
index fa04bf0..873c3de 100644
--- a/Modules/FindPNG.cmake
+++ b/Modules/FindPNG.cmake
@@ -56,8 +56,10 @@ if(ZLIB_FOUND)
   list(APPEND PNG_NAMES png libpng)
   unset(PNG_NAMES_DEBUG)
   set(_PNG_VERSION_SUFFIXES 17 16 15 14 12)
-  if (PNG_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)(\\..*)?$")
-    set(_PNG_VERSION_SUFFIX_MIN "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
+  if (PNG_FIND_VERSION MATCHES "^[0-9]+\\.[0-9]+(\\..*)?$")
+    string(REGEX REPLACE
+        "^([0-9]+)\\.([0-9]+).*" "\\1\\2"
+        _PNG_VERSION_SUFFIX_MIN "${PNG_FIND_VERSION}")
     if (PNG_FIND_VERSION_EXACT)
       set(_PNG_VERSION_SUFFIXES ${_PNG_VERSION_SUFFIX_MIN})
     else ()
diff --git a/Modules/FindPackageMessage.cmake b/Modules/FindPackageMessage.cmake
index a0349d3..b6a58e4 100644
--- a/Modules/FindPackageMessage.cmake
+++ b/Modules/FindPackageMessage.cmake
@@ -42,7 +42,7 @@
 function(FIND_PACKAGE_MESSAGE pkg msg details)
   # Avoid printing a message repeatedly for the same find result.
   if(NOT ${pkg}_FIND_QUIETLY)
-    string(REPLACE "\n" "" details "${details}")
+    string(REGEX REPLACE "[\n]" "" details "${details}")
     set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg})
     if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}")
       # The message has not yet been printed.
diff --git a/Modules/FindPerl.cmake b/Modules/FindPerl.cmake
index 70284b6..3fd5d8e 100644
--- a/Modules/FindPerl.cmake
+++ b/Modules/FindPerl.cmake
@@ -70,9 +70,9 @@ if(PERL_EXECUTABLE)
       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}")
+      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\\._]+) +")
-      set(PERL_VERSION_STRING "${CMAKE_MATCH_1}")
+      string(REGEX REPLACE ".*This is perl, version ([0-9\\._]+) +.*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
     endif()
   endif()
 endif()
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake
index d728324..8327143 100644
--- a/Modules/FindPkgConfig.cmake
+++ b/Modules/FindPkgConfig.cmake
@@ -277,10 +277,10 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma
       set(_pkg_check_modules_exist_query)
 
       # check whether version is given
-      if (_pkg_check_modules_pkg MATCHES "(.*[^><])(>=|=|<=)(.*)")
-        set(_pkg_check_modules_pkg_name "${CMAKE_MATCH_1}")
-        set(_pkg_check_modules_pkg_op "${CMAKE_MATCH_2}")
-        set(_pkg_check_modules_pkg_ver "${CMAKE_MATCH_3}")
+      if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*")
+        string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
+        string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op   "${_pkg_check_modules_pkg}")
+        string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver  "${_pkg_check_modules_pkg}")
       else()
         set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
         set(_pkg_check_modules_pkg_op)
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 5e5c7b9..c41f3a7 100644
--- a/Modules/FindPythonInterp.cmake
+++ b/Modules/FindPythonInterp.cmake
@@ -138,8 +138,8 @@ if(PYTHON_EXECUTABLE)
             string(REGEX REPLACE " .*" "" PYTHON_VERSION_STRING "${_VERSION}")
             string(REGEX REPLACE "^([0-9]+)\\.[0-9]+.*" "\\1" PYTHON_VERSION_MAJOR "${PYTHON_VERSION_STRING}")
             string(REGEX REPLACE "^[0-9]+\\.([0-9])+.*" "\\1" PYTHON_VERSION_MINOR "${PYTHON_VERSION_STRING}")
-            if(PYTHON_VERSION_STRING MATCHES "^[0-9]+\\.[0-9]+\\.([0-9]+)")
-                set(PYTHON_VERSION_PATCH "${CMAKE_MATCH_1}")
+            if(PYTHON_VERSION_STRING MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+.*")
+                string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" PYTHON_VERSION_PATCH "${PYTHON_VERSION_STRING}")
             else()
                 set(PYTHON_VERSION_PATCH "0")
             endif()
diff --git a/Modules/FindXMLRPC.cmake b/Modules/FindXMLRPC.cmake
index 1491754..e855050 100644
--- a/Modules/FindXMLRPC.cmake
+++ b/Modules/FindXMLRPC.cmake
@@ -77,9 +77,10 @@ if(XMLRPC_FOUND)
     # Look for -I options.
     set(XMLRPC_INCLUDE_DIRS)
     foreach(flag ${XMLRPC_C_CONFIG_CFLAGS})
-      if("${flag}" MATCHES "^-I(.+)")
-        file(TO_CMAKE_PATH "${CMAKE_MATCH_1}" DIR)
-        list(APPEND XMLRPC_INCLUDE_DIRS "${DIR}")
+      if("${flag}" MATCHES "^-I")
+        string(REGEX REPLACE "^-I" "" DIR "${flag}")
+        file(TO_CMAKE_PATH "${DIR}" DIR)
+        set(XMLRPC_INCLUDE_DIRS ${XMLRPC_INCLUDE_DIRS} "${DIR}")
       endif()
     endforeach()
   else()
@@ -114,11 +115,13 @@ if(XMLRPC_FOUND)
     set(XMLRPC_LIBRARY_DIRS)
     set(XMLRPC_LIBRARY_NAMES)
     foreach(flag ${XMLRPC_C_CONFIG_LIBS})
-      if("${flag}" MATCHES "^-L(.+)")
-        file(TO_CMAKE_PATH "${CMAKE_MATCH_1}" DIR)
-        list(APPEND XMLRPC_LIBRARY_DIRS "${DIR}")
-      elseif("${flag}" MATCHES "^-l(.+)")
-        list(APPEND XMLRPC_LIBRARY_NAMES "${CMAKE_MATCH_1}")
+      if("${flag}" MATCHES "^-L")
+        string(REGEX REPLACE "^-L" "" DIR "${flag}")
+        file(TO_CMAKE_PATH "${DIR}" DIR)
+        set(XMLRPC_LIBRARY_DIRS ${XMLRPC_LIBRARY_DIRS} "${DIR}")
+      elseif("${flag}" MATCHES "^-l")
+        string(REGEX REPLACE "^-l" "" NAME "${flag}")
+        set(XMLRPC_LIBRARY_NAMES ${XMLRPC_LIBRARY_NAMES} "${NAME}")
       endif()
     endforeach()
 
diff --git a/Modules/FortranCInterface.cmake b/Modules/FortranCInterface.cmake
index 27f8a82..dccb26f 100644
--- a/Modules/FortranCInterface.cmake
+++ b/Modules/FortranCInterface.cmake
@@ -328,7 +328,7 @@ function(FortranCInterface_VERIFY)
   # Error if compilers are incompatible.
   if(NOT FortranCInterface_VERIFIED_${lang} AND NOT quiet)
     file(READ "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" _output)
-    string(REPLACE "\n" "\n  " _output "${_output}")
+    string(REGEX REPLACE "\n" "\n  " _output "${_output}")
     message(FATAL_ERROR
       "The Fortran compiler:\n  ${CMAKE_Fortran_COMPILER}\n"
       "and the ${lang} compiler:\n  ${CMAKE_${lang}_COMPILER}\n"
diff --git a/Modules/FortranCInterface/Detect.cmake b/Modules/FortranCInterface/Detect.cmake
index ceb1db4..afeb9c5 100644
--- a/Modules/FortranCInterface/Detect.cmake
+++ b/Modules/FortranCInterface/Detect.cmake
@@ -69,8 +69,9 @@ if(FortranCInterface_EXE)
   file(STRINGS "${FortranCInterface_EXE}" _info_strings
     LIMIT_COUNT 8 REGEX "INFO:[^[]*\\[")
   foreach(info ${_info_strings})
-    if("${info}" MATCHES "INFO:symbol\\[([^]]*)\\]")
-      list(APPEND FortranCInterface_SYMBOLS ${CMAKE_MATCH_1})
+    if("${info}" MATCHES ".*INFO:symbol\\[([^]]*)\\].*")
+      string(REGEX REPLACE ".*INFO:symbol\\[([^]]*)\\].*" "\\1" symbol "${info}")
+      list(APPEND FortranCInterface_SYMBOLS ${symbol})
     endif()
   endforeach()
 elseif(NOT _result)
diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake
index 05c2edb..ac649e9 100644
--- a/Modules/GetPrerequisites.cmake
+++ b/Modules/GetPrerequisites.cmake
@@ -509,10 +509,10 @@ function(gp_resolved_file_type original_file file exepath dirs type_var)
 
     if(WIN32)
       string(TOLOWER "$ENV{SystemRoot}" sysroot)
-      file(TO_CMAKE_PATH "${sysroot}" sysroot)
+      string(REGEX REPLACE "\\\\" "/" sysroot "${sysroot}")
 
       string(TOLOWER "$ENV{windir}" windir)
-      file(TO_CMAKE_PATH "${windir}" windir)
+      string(REGEX REPLACE "\\\\" "/" windir "${windir}")
 
       if(lower MATCHES "^(${sysroot}/sys(tem|wow)|${windir}/sys(tem|wow)|(.*/)*msvc[^/]+dll)")
         set(is_system 1)
@@ -772,8 +772,8 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
 
   # Convert to a list of lines:
   #
-  string(REPLACE ";" "\\;" candidates "${gp_cmd_ov}")
-  string(REPLACE "\n" "${eol_char};" candidates "${candidates}")
+  string(REGEX REPLACE ";" "\\\\;" candidates "${gp_cmd_ov}")
+  string(REGEX REPLACE "\n" "${eol_char};" candidates "${candidates}")
 
   # check for install id and remove it from list, since otool -L can include a
   # reference to itself
diff --git a/Modules/Platform/OpenBSD.cmake b/Modules/Platform/OpenBSD.cmake
index a4f6114..53cabed 100644
--- a/Modules/Platform/OpenBSD.cmake
+++ b/Modules/Platform/OpenBSD.cmake
@@ -10,7 +10,7 @@ if(NOT CMAKE_PLATFORM_RUNTIME_PATH)
                   ERROR_QUIET)
   string(REGEX REPLACE ".*search\\ directories:\\ ([^\n]*).*" "\\1"
          LDCONFIG_HINTS "${LDCONFIG_HINTS}")
-  string(REPLACE ":" ";"
+  string(REGEX REPLACE ":" ";"
          CMAKE_PLATFORM_RUNTIME_PATH
          "${LDCONFIG_HINTS}")
 endif()
diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake
index b1b12d6..23c4fc0 100644
--- a/Modules/Qt4Macros.cmake
+++ b/Modules/Qt4Macros.cmake
@@ -65,8 +65,8 @@ macro (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile )
   else()
     file(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile})
   endif()
-  if(WIN32 AND rel MATCHES "^([a-zA-Z]):(.*)$") # absolute path
-    set(rel "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
+  if(WIN32 AND rel MATCHES "^[a-zA-Z]:") # absolute path
+    string(REGEX REPLACE "^([a-zA-Z]):(.*)$" "\\1_\\2" rel "${rel}")
   endif()
   set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${rel}")
   string(REPLACE ".." "__" _outfile ${_outfile})
diff --git a/Source/CMakeVersionSource.cmake b/Source/CMakeVersionSource.cmake
index 888f557..05e265c 100644
--- a/Source/CMakeVersionSource.cmake
+++ b/Source/CMakeVersionSource.cmake
@@ -30,8 +30,8 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
 elseif(EXISTS ${CMake_SOURCE_DIR}/CVS/Repository)
   file(READ ${CMake_SOURCE_DIR}/CVS/Repository repo)
   set(branch "")
-  if("${repo}" MATCHES "\\.git/([^\r\n]*)")
-    set(branch "${CMAKE_MATCH_1}")
+  if("${repo}" MATCHES "\\.git/")
+    string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
   endif()
   set(CMake_VERSION_SOURCE "cvs${branch}")
 endif()
diff --git a/Tests/CMakeTests/CheckCMakeTest.cmake b/Tests/CMakeTests/CheckCMakeTest.cmake
index 1565394..7be7b30 100644
--- a/Tests/CMakeTests/CheckCMakeTest.cmake
+++ b/Tests/CMakeTests/CheckCMakeTest.cmake
@@ -9,8 +9,8 @@ function(check_cmake_test_single prefix test testfile)
     ERROR_VARIABLE stderr
     RESULT_VARIABLE result
     )
-  string(REPLACE "\n" "\n out> " out " out> ${stdout}")
-  string(REPLACE "\n" "\n err> " err " err> ${stderr}")
+  string(REGEX REPLACE "\n" "\n out> " out " out> ${stdout}")
+  string(REGEX REPLACE "\n" "\n err> " err " err> ${stderr}")
   if(NOT "${result}" STREQUAL "${${test}-RESULT}")
     message(FATAL_ERROR
       "Test ${test} result is [${result}], not [${${test}-RESULT}].\n"
diff --git a/Tests/CMakeTests/ExecuteScriptTests.cmake b/Tests/CMakeTests/ExecuteScriptTests.cmake
index bceac33..c71585a 100644
--- a/Tests/CMakeTests/ExecuteScriptTests.cmake
+++ b/Tests/CMakeTests/ExecuteScriptTests.cmake
@@ -52,9 +52,9 @@ function(execute_all_script_tests scriptname result)
 
   foreach(line ${script})
     if(line MATCHES "${regex}")
-      set(testname "${CMAKE_MATCH_2}")
-      set(expected_result "${CMAKE_MATCH_3}")
       math(EXPR count "${count} + 1")
+      string(REGEX REPLACE "${regex}" "\\2" testname "${line}")
+      string(REGEX REPLACE "${regex}" "\\3" expected_result "${line}")
       execute_one_script_test(${scriptname} ${testname} ${expected_result})
     endif()
   endforeach()
diff --git a/Tests/CTestUpdateCommon.cmake b/Tests/CTestUpdateCommon.cmake
index 857c6f5..642a618 100644
--- a/Tests/CTestUpdateCommon.cmake
+++ b/Tests/CTestUpdateCommon.cmake
@@ -9,7 +9,7 @@ function(run_child)
     ERROR_STRIP_TRAILING_WHITESPACE
     )
   if(FAILED)
-    string(REPLACE "\n" "\n  " OUTPUT "${OUTPUT}")
+    string(REGEX REPLACE "\n" "\n  " OUTPUT "${OUTPUT}")
     message(FATAL_ERROR "Child failed (${FAILED}), output is\n  ${OUTPUT}\n"
       "Command = [${ARGN}]\n")
   endif()
@@ -108,7 +108,7 @@ function(check_updates build)
       ${TOP}/${build}/Testing/Temporary/LastUpdate*.log)
     if(UPDATE_LOG_FILE)
       file(READ ${UPDATE_LOG_FILE} UPDATE_LOG LIMIT ${max_update_xml_size})
-      string(REPLACE "\n" "\n  " UPDATE_LOG "${UPDATE_LOG}")
+      string(REGEX REPLACE "\n" "\n  " UPDATE_LOG "${UPDATE_LOG}")
       set(MSG "${MSG}Update log:\n  ${UPDATE_LOG}")
     else()
       set(MSG "${MSG}No update log found!")
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index e0854ce..a194a5f 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -367,8 +367,8 @@ endif()
 
 foreach(arg ${CHECK_ARGS} "")
   set(ARG "${arg}")
-  string(REPLACE "\\" "\\\\" ARG "${ARG}")
-  string(REPLACE "\"" "\\\"" ARG "${ARG}")
+  string(REGEX REPLACE "\\\\" "\\\\\\\\" ARG "${ARG}")
+  string(REGEX REPLACE "\"" "\\\\\"" ARG "${ARG}")
   set(EXPECTED_ARGUMENTS
     "${EXPECTED_ARGUMENTS}  \"${ARG}\",
 ")
diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in
index d81f62a..7cd7fc1 100644
--- a/cmake_uninstall.cmake.in
+++ b/cmake_uninstall.cmake.in
@@ -3,7 +3,7 @@ if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
 endif()
 
 file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
-string(REPLACE "\n" ";" files "${files}")
+string(REGEX REPLACE "\n" ";" files "${files}")
 foreach(file ${files})
   message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
   if(EXISTS "$ENV{DESTDIR}${file}")

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

Summary of changes:
 Modules/BundleUtilities.cmake             |    6 +++---
 Modules/CMakeDetermineCompilerABI.cmake   |    4 ++--
 Modules/CMakeDetermineCompilerId.cmake    |   17 +++++++++++------
 Modules/CMakeDetermineSystem.cmake        |    4 ++--
 Modules/CMakeParseImplicitLinkInfo.cmake  |   10 ++++++----
 Modules/CPackDeb.cmake                    |    2 +-
 Modules/CPackRPM.cmake                    |    2 +-
 Modules/CheckTypeSize.cmake               |    5 +++--
 Modules/ExternalData.cmake                |   10 ++++++----
 Modules/ExternalProject.cmake             |    9 +++++----
 Modules/FindBISON.cmake                   |   15 +++++++++------
 Modules/FindBoost.cmake                   |   12 ++++++------
 Modules/FindCUDA/make2cmake.cmake         |    3 ++-
 Modules/FindCUDA/parse_cubin.cmake        |   13 +++++++------
 Modules/FindCups.cmake                    |    5 +++--
 Modules/FindEXPAT.cmake                   |    5 +++--
 Modules/FindFLTK.cmake                    |    4 +++-
 Modules/FindFLTK2.cmake                   |    4 +++-
 Modules/FindFreetype.cmake                |    5 +++--
 Modules/FindGDAL.cmake                    |    4 ++--
 Modules/FindGettext.cmake                 |    4 ++--
 Modules/FindHDF5.cmake                    |    4 ++--
 Modules/FindImageMagick.cmake             |    4 ++--
 Modules/FindJava.cmake                    |   15 +++++++++------
 Modules/FindKDE3.cmake                    |    2 +-
 Modules/FindMPI.cmake                     |    4 ++--
 Modules/FindPNG.cmake                     |    6 ++++--
 Modules/FindPackageMessage.cmake          |    2 +-
 Modules/FindPerl.cmake                    |    4 ++--
 Modules/FindPkgConfig.cmake               |    8 ++++----
 Modules/FindPythonInterp.cmake            |    4 ++--
 Modules/FindXMLRPC.cmake                  |   19 +++++++++++--------
 Modules/FortranCInterface.cmake           |    2 +-
 Modules/FortranCInterface/Detect.cmake    |    5 +++--
 Modules/GetPrerequisites.cmake            |    8 ++++----
 Modules/Platform/OpenBSD.cmake            |    2 +-
 Modules/Qt4Macros.cmake                   |    4 ++--
 Source/CMakeVersionSource.cmake           |    4 ++--
 Tests/CMakeTests/CheckCMakeTest.cmake     |    4 ++--
 Tests/CMakeTests/ExecuteScriptTests.cmake |    4 ++--
 Tests/CTestUpdateCommon.cmake             |    4 ++--
 Tests/CustomCommand/CMakeLists.txt        |    4 ++--
 cmake_uninstall.cmake.in                  |    2 +-
 43 files changed, 145 insertions(+), 113 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list