Browse Source

clean up to work with manifest files better.

Bill Hoffman 16 years ago
parent
commit
bc3cab3634
1 changed files with 5 additions and 5 deletions
  1. 5 5
      Modules/CMakeVerifyManifest.cmake

+ 5 - 5
Modules/CMakeVerifyManifest.cmake

@@ -40,7 +40,7 @@ function(crt_version file list_var)
   foreach(s ${strings})
     set(has_match 1)
     string(REGEX
-      REPLACE ".*version=.([^\"]*). (.*)$" "\\1" 
+      REPLACE ".*<assembly.*\"Microsoft.VC...CRT\".*version=\"([^\"]*)\".*</assembly>.*$" "\\1" 
       version "${s}")
     if(NOT "${version}" STREQUAL "")
       list(APPEND version_list ${version})
@@ -72,7 +72,7 @@ function(check_version file manifest_versions)
   foreach(ver ${file_versions})
     list(FIND manifest_versions "${ver}" found_version)
     if("${found_version}" EQUAL -1)
-      message("ERROR: ${file} uses ${ver} not found in shipped manifest.")
+      message("ERROR: ${file} uses ${ver} not found in shipped manifests:[${manifest_versions}].")
       set(fatal_error TRUE PARENT_SCOPE)
     endif()
   endforeach(ver)
@@ -104,12 +104,12 @@ file(GLOB_RECURSE exe_files "*.exe")
 file(GLOB_RECURSE dll_files "*.dll")
 set(exe_files ${exe_files} ${dll_files})
 foreach(f ${exe_files})
-  check_version(${f} ${manifest_version_list})
+  check_version(${f} "${manifest_version_list}")
 endforeach()
 
 # report a fatal error if there were any so that cmake will return
 # a non zero value
 if(fatal_error)
-  message(FATAL_ERROR "This distribution has mis-matched dll"
-    " versions and may not work on other machines.")
+  message(FATAL_ERROR "This distribution embeds dll "
+    " versions that it does not ship, and may not work on other machines.")
 endif()