Merge topic 'CheckSourceRuns-compatibility'

a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5426
diff --git a/Modules/CheckCSourceRuns.cmake b/Modules/CheckCSourceRuns.cmake
index 258b1a0..a99e47e 100644
--- a/Modules/CheckCSourceRuns.cmake
+++ b/Modules/CheckCSourceRuns.cmake
@@ -68,5 +68,7 @@
 include(Internal/CheckSourceRuns)
 
 macro(CHECK_C_SOURCE_RUNS SOURCE VAR)
+  set(_CheckSourceRuns_old_signature 1)
   cmake_check_source_runs(C "${SOURCE}" ${VAR} ${ARGN})
+  unset(_CheckSourceRuns_old_signature)
 endmacro()
diff --git a/Modules/CheckCXXSourceRuns.cmake b/Modules/CheckCXXSourceRuns.cmake
index 246c873..c8ff3d7 100644
--- a/Modules/CheckCXXSourceRuns.cmake
+++ b/Modules/CheckCXXSourceRuns.cmake
@@ -68,5 +68,7 @@
 include(Internal/CheckSourceRuns)
 
 macro(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
+  set(_CheckSourceRuns_old_signature 1)
   cmake_check_source_runs(CXX "${SOURCE}" ${VAR} ${ARGN})
+  unset(_CheckSourceRuns_old_signature)
 endmacro()
diff --git a/Modules/CheckOBJCSourceRuns.cmake b/Modules/CheckOBJCSourceRuns.cmake
index 9894180..dd03309 100644
--- a/Modules/CheckOBJCSourceRuns.cmake
+++ b/Modules/CheckOBJCSourceRuns.cmake
@@ -70,5 +70,7 @@
 include(Internal/CheckSourceRuns)
 
 macro(CHECK_OBJC_SOURCE_RUNS SOURCE VAR)
+  set(_CheckSourceRuns_old_signature 1)
   cmake_check_source_runs(OBJC "${SOURCE}" ${VAR} ${ARGN})
+  unset(_CheckSourceRuns_old_signature)
 endmacro()
diff --git a/Modules/CheckOBJCXXSourceRuns.cmake b/Modules/CheckOBJCXXSourceRuns.cmake
index 43d514f..05a5e4c 100644
--- a/Modules/CheckOBJCXXSourceRuns.cmake
+++ b/Modules/CheckOBJCXXSourceRuns.cmake
@@ -70,5 +70,7 @@
 include(Internal/CheckSourceRuns)
 
 macro(CHECK_OBJCXX_SOURCE_RUNS SOURCE VAR)
+  set(_CheckSourceRuns_old_signature 1)
   cmake_check_source_runs(OBJCXX "${SOURCE}" ${VAR} ${ARGN})
+  unset(_CheckSourceRuns_old_signature)
 endmacro()
diff --git a/Modules/Internal/CheckSourceRuns.cmake b/Modules/Internal/CheckSourceRuns.cmake
index c667245..3a4b758 100644
--- a/Modules/Internal/CheckSourceRuns.cmake
+++ b/Modules/Internal/CheckSourceRuns.cmake
@@ -51,7 +51,12 @@
         set(_SRC_EXT "${arg}")
         set(_key "")
       else()
-        message(FATAL_ERROR "Unknown argument:\n  ${arg}\n")
+        set(message_type FATAL_ERROR)
+        if (_CheckSourceRuns_old_signature)
+          set(message_type AUTHOR_WARNING)
+        endif ()
+        message("${message_type}" "Unknown argument:\n  ${arg}\n")
+        unset(message_type)
       endif()
     endforeach()
 
diff --git a/Tests/RunCMake/CheckSourceRuns/UnknownArgument-stderr.txt b/Tests/RunCMake/CheckSourceRuns/UnknownArgument-stderr.txt
index 9b576b5..6824e72 100644
--- a/Tests/RunCMake/CheckSourceRuns/UnknownArgument-stderr.txt
+++ b/Tests/RunCMake/CheckSourceRuns/UnknownArgument-stderr.txt
@@ -1,4 +1,17 @@
-^CMake Error at [^
+^CMake Warning \(dev\) at [^
+]*/Modules/Internal/CheckSourceRuns.cmake:[0-9]+ \(message\):
+  Unknown argument:
+
+    BAD
+
+Call Stack \(most recent call first\):
+  [^
+]*/Modules/CheckCSourceRuns.cmake:[0-9]+ \(cmake_check_source_runs\)
+  UnknownArgument.cmake:[0-9]+ \(check_c_source_runs\)
+  CMakeLists.txt:[0-9]+ \(include\)
+This warning is for project developers.  Use -Wno-dev to suppress it.
+
+CMake Error at [^
 ]*/Modules/Internal/CheckSourceRuns.cmake:[0-9]+ \(message\):
   Unknown argument:
 
diff --git a/Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake b/Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake
index 6e50fa7..927a6b0 100644
--- a/Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake
+++ b/Tests/RunCMake/CheckSourceRuns/UnknownArgument.cmake
@@ -1,5 +1,7 @@
 
 enable_language (C)
+include(CheckCSourceRuns)
 include(CheckSourceRuns)
 
-check_source_runs(C "int main() {return 0;}" SHOULD_BUILD SRC_EXT C BAD)
+check_c_source_runs("int main() {return 0;}" C_SHOULD_BUILD BAD)
+check_source_runs(C "int main() {return 0;}" SHOULD_BUILD SRC_EXT c BAD)