summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2020-01-22 18:05:46 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2020-01-22 18:05:46 (GMT)
commit4c8a917a8771a64cfa0a8931824307e7f371b904 (patch)
tree17537c064396bc01a4d62e0dc3aa010fa4a71a82
parent39c357b9c46958cf883dd079caa0d09c19399fed (diff)
downloadCMake-4c8a917a8771a64cfa0a8931824307e7f371b904.zip
CMake-4c8a917a8771a64cfa0a8931824307e7f371b904.tar.gz
CMake-4c8a917a8771a64cfa0a8931824307e7f371b904.tar.bz2
file(GET_RUNTIME_DEPENDENCIES): Tolerate empty list arguments
Also list all keywords that were missing values instead of only the first one.
-rw-r--r--Source/cmFileCommand.cxx17
-rw-r--r--Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2-stderr.txt7
-rw-r--r--Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2.cmake15
3 files changed, 34 insertions, 5 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index d55b959..d45414f 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -2673,9 +2673,20 @@ bool HandleGetRuntimeDependenciesCommand(std::vector<std::string> const& args,
cmSystemTools::SetFatalErrorOccured();
return false;
}
- argIt = keywordsMissingValues.begin();
- if (argIt != keywordsMissingValues.end()) {
- status.SetError(cmStrCat("Keyword missing value: ", *argIt));
+
+ const std::vector<std::string> LIST_ARGS = { "DIRECTORIES",
+ "EXECUTABLES",
+ "LIBRARIES",
+ "MODULES",
+ "POST_EXCLUDE_REGEXES",
+ "POST_INCLUDE_REGEXES",
+ "PRE_EXCLUDE_REGEXES",
+ "PRE_INCLUDE_REGEXES" };
+ auto kwbegin = keywordsMissingValues.cbegin();
+ auto kwend = cmRemoveMatching(keywordsMissingValues, LIST_ARGS);
+ if (kwend != kwbegin) {
+ status.SetError(cmStrCat("Keywords missing values:\n ",
+ cmJoin(cmMakeRange(kwbegin, kwend), "\n ")));
cmSystemTools::SetFatalErrorOccured();
return false;
}
diff --git a/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2-stderr.txt b/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2-stderr.txt
index 94f0f46..50fa81f 100644
--- a/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2-stderr.txt
+++ b/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2-stderr.txt
@@ -13,6 +13,11 @@ Call Stack \(most recent call first\):
This warning is for project developers\. Use -Wno-dev to suppress it\.
CMake Error at file-GET_RUNTIME_DEPENDENCIES-badargs2\.cmake:[0-9]+ \(file\):
- file Keyword missing value: BUNDLE_EXECUTABLE
+ file Keywords missing values:
+
+ RESOLVED_DEPENDENCIES_VAR
+ UNRESOLVED_DEPENDENCIES_VAR
+ CONFLICTING_DEPENDENCIES_PREFIX
+ BUNDLE_EXECUTABLE
Call Stack \(most recent call first\):
CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2.cmake b/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2.cmake
index 138ab95..ac6af85 100644
--- a/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2.cmake
+++ b/Tests/RunCMake/install/file-GET_RUNTIME_DEPENDENCIES-badargs2.cmake
@@ -1,2 +1,15 @@
-file(GET_RUNTIME_DEPENDENCIES BUNDLE_EXECUTABLE)
+file(GET_RUNTIME_DEPENDENCIES
+ RESOLVED_DEPENDENCIES_VAR
+ UNRESOLVED_DEPENDENCIES_VAR
+ CONFLICTING_DEPENDENCIES_PREFIX
+ BUNDLE_EXECUTABLE
+ EXECUTABLES
+ LIBRARIES
+ MODULES
+ DIRECTORIES
+ PRE_INCLUDE_REGEXES
+ PRE_EXCLUDE_REGEXES
+ POST_INCLUDE_REGEXES
+ POST_EXCLUDE_REGEXES
+ )
message(FATAL_ERROR "This message should not be displayed")