Browse Source

WCDH: Issue a better message for version compatibility.

Stephen Kelly 11 years ago
parent
commit
567af1a596

+ 7 - 2
Modules/WriteCompilerDetectionHeader.cmake

@@ -197,8 +197,13 @@ function(write_compiler_detection_header
   if(NOT _WCD_VERSION)
     set(_WCD_VERSION ${CMAKE_MINIMUM_REQUIRED_VERSION})
   endif()
-  if (_WCD_VERSION VERSION_LESS 3.1.0) # Version which introduced this function
-    message(FATAL_ERROR "VERSION parameter too low.")
+  set(_min_version 3.1.0) # Version which introduced this function
+  if (_WCD_VERSION VERSION_LESS _min_version)
+    set(err "VERSION compatibility for write_compiler_detection_header is set to ${_WCD_VERSION}, which is too low.")
+    set(err "${err}  It must be set to at least ${_min_version}.  ")
+    set(err "${err}  Either set the VERSION parameter to the write_compiler_detection_header function, or update")
+    set(err "${err} your minimum required CMake version with the cmake_minimum_required command.")
+    message(FATAL_ERROR "${err}")
   endif()
 
   set(compilers

+ 5 - 1
Tests/RunCMake/WriteCompilerDetectionHeader/OldVersion-stderr.txt

@@ -1,5 +1,9 @@
 CMake Error at .*Modules/WriteCompilerDetectionHeader.cmake:[0-9]+ \(message\):
-  VERSION parameter too low.
+  VERSION compatibility for write_compiler_detection_header is set to 3.0,
+  which is too low.  It must be set to at least 3.1.0.  Either set the
+  VERSION parameter to the write_compiler_detection_header function, or
+  update your minimum required CMake version with the cmake_minimum_required
+  command.
 Call Stack \(most recent call first\):
   OldVersion.cmake:4 \(write_compiler_detection_header\)
   CMakeLists.txt:3 \(include\)