Browse Source

CheckIncludeFiles: improve warning for missing argument

David Adam 8 years ago
parent
commit
b31d5e1dfd

+ 5 - 3
Modules/CheckIncludeFiles.cmake

@@ -49,12 +49,14 @@ macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
        elseif(CMAKE_CXX_COMPILER_LOADED)
          set(_lang CXX)
        else()
-         message(FATAL_ERROR "CHECK_INCLUDE_FILES needs either C or CXX language enabled")
+         message(FATAL_ERROR "CHECK_INCLUDE_FILES needs either C or CXX language enabled.\n")
        endif()
     elseif("x${ARGN}" MATCHES "^xLANGUAGE;([a-zA-Z]+)$")
-       set(_lang "${CMAKE_MATCH_1}")
+      set(_lang "${CMAKE_MATCH_1}")
+    elseif("x${ARGN}" MATCHES "^xLANGUAGE$")
+      message(FATAL_ERROR "No languages listed for LANGUAGE option.\nSupported languages: C, CXX.\n")
     else()
-       message(FATAL_ERROR "Unknown arguments:\n  ${ARGN}\n")
+      message(FATAL_ERROR "Unknown arguments:\n  ${ARGN}\n")
     endif()
 
     if(_lang STREQUAL "C")

+ 2 - 2
Tests/RunCMake/CheckModules/CheckIncludeFilesMissingLanguage-stderr.txt

@@ -1,7 +1,7 @@
 CMake Error at .*/Modules/CheckIncludeFiles.cmake:[0-9]+. \(message\):
-  Unknown arguments:
+  No languages listed for LANGUAGE option.
 
-    LANGUAGE
+  Supported languages: C, CXX.
 
 Call Stack \(most recent call first\):
   CheckIncludeFilesMissingLanguage.cmake:[0-9]+ \(check_include_files\)