summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-08-18 12:00:53 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-08-18 12:01:02 (GMT)
commita2cf0db74bb3f18716d735843c531eed1c579fde (patch)
tree7cbf7ee9fcd6a76fd501c18d32c61c0bc8d62e74
parenta336c835207436c70cb5de994cd7f527af8f6a9f (diff)
parentb976b844d28989cd3298115c25b3d89888785388 (diff)
downloadCMake-a2cf0db74bb3f18716d735843c531eed1c579fde.zip
CMake-a2cf0db74bb3f18716d735843c531eed1c579fde.tar.gz
CMake-a2cf0db74bb3f18716d735843c531eed1c579fde.tar.bz2
Merge topic 'try_compile-no-try_run-args'
b976b844d2 try_compile: Don't accept try_run arguments 24c83bb35b try_compile: Fix quotes in reporting of unknown arguments Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7585
-rw-r--r--Source/cmCoreTryCompile.cxx34
-rw-r--r--Tests/RunCMake/try_compile/TryRunArgs-stderr.txt21
2 files changed, 20 insertions, 35 deletions
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index c2c3118..7b9dc2e 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -145,6 +145,10 @@ auto const TryCompileArgParser =
.BIND_LANG_PROPS(HIP)
.BIND_LANG_PROPS(OBJC)
.BIND_LANG_PROPS(OBJCXX)
+ /* keep semicolon on own line */;
+
+auto const TryRunArgParser =
+ cmArgumentParser<Arguments>{ TryCompileArgParser }
.Bind("COMPILE_OUTPUT_VARIABLE"_s, &Arguments::CompileOutputVariable)
.Bind("RUN_OUTPUT_VARIABLE"_s, &Arguments::RunOutputVariable)
.Bind("RUN_OUTPUT_STDOUT_VARIABLE"_s, &Arguments::RunOutputStdOutVariable)
@@ -160,12 +164,13 @@ Arguments cmCoreTryCompile::ParseArgs(
cmRange<std::vector<std::string>::const_iterator> args, bool isTryRun)
{
std::vector<std::string> unparsedArguments;
- auto arguments = TryCompileArgParser.Parse(args, &unparsedArguments, 0);
+ const auto& parser = (isTryRun ? TryRunArgParser : TryCompileArgParser);
+ auto arguments = parser.Parse(args, &unparsedArguments, 0);
if (!arguments.MaybeReportError(*(this->Makefile)) &&
!unparsedArguments.empty()) {
std::string m = "Unknown arguments:";
for (const auto& i : unparsedArguments) {
- m = cmStrCat(m, "\n ", i, "\"");
+ m = cmStrCat(m, "\n \"", i, "\"");
}
this->Makefile->IssueMessage(MessageType::AUTHOR_WARNING, m);
}
@@ -194,31 +199,6 @@ Arguments cmCoreTryCompile::ParseArgs(
arguments.RunWorkingDirectory->empty()) {
arguments.RunWorkingDirectory = cm::nullopt;
}
- } else {
- std::string tryRunArgs;
- if (arguments.CompileOutputVariable) {
- tryRunArgs = cmStrCat(tryRunArgs, " COMPILE_OUTPUT_VARIABLE\n");
- }
- if (arguments.RunOutputVariable) {
- tryRunArgs = cmStrCat(tryRunArgs, " RUN_OUTPUT_VARIABLE\n");
- }
- if (arguments.RunOutputStdOutVariable) {
- tryRunArgs = cmStrCat(tryRunArgs, " RUN_OUTPUT_STDOUT_VARIABLE\n");
- }
- if (arguments.RunOutputStdErrVariable) {
- tryRunArgs = cmStrCat(tryRunArgs, " RUN_OUTPUT_STDERR_VARIABLE\n");
- }
- if (arguments.RunWorkingDirectory) {
- tryRunArgs = cmStrCat(tryRunArgs, " WORKING_DIRECTORY\n");
- }
- if (arguments.RunArgs) {
- tryRunArgs = cmStrCat(tryRunArgs, " ARGS\n");
- }
- if (!tryRunArgs.empty()) {
- this->Makefile->IssueMessage(
- MessageType::AUTHOR_WARNING,
- cmStrCat("Ignoring try_run arguments for try_compile:\n", tryRunArgs));
- }
}
return arguments;
}
diff --git a/Tests/RunCMake/try_compile/TryRunArgs-stderr.txt b/Tests/RunCMake/try_compile/TryRunArgs-stderr.txt
index 717c208..2a58e71 100644
--- a/Tests/RunCMake/try_compile/TryRunArgs-stderr.txt
+++ b/Tests/RunCMake/try_compile/TryRunArgs-stderr.txt
@@ -1,13 +1,18 @@
^CMake Warning \(dev\) at TryRunArgs.cmake:[0-9]+ \(try_compile\):
- Ignoring try_run arguments for try_compile:
-
- COMPILE_OUTPUT_VARIABLE
- RUN_OUTPUT_VARIABLE
- RUN_OUTPUT_STDOUT_VARIABLE
- RUN_OUTPUT_STDERR_VARIABLE
- WORKING_DIRECTORY
- ARGS
+ Unknown arguments:
+ "COMPILE_OUTPUT_VARIABLE"
+ "compOutputVar"
+ "RUN_OUTPUT_VARIABLE"
+ "runOutputVar"
+ "RUN_OUTPUT_STDOUT_VARIABLE"
+ "runOutputStdOutVar"
+ "RUN_OUTPUT_STDERR_VARIABLE"
+ "runOutputStdErrVar"
+ "WORKING_DIRECTORY"
+ "runWorkDir"
+ "ARGS"
+ "runArgs"
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.$