cmake: command arguments which use '=' behave consistently

Fixes: #21351

The `profiling-format`, `profiling-output`, and `preset` all would
crash when invoked without a trailing `=`.
This commit is contained in:
Robert Maynard 2020-10-23 09:12:43 -04:00
parent 0b0df2d063
commit afac7482d2

View File

@ -941,19 +941,19 @@ void cmake::SetArgs(const std::vector<std::string>& args)
return;
}
#if !defined(CMAKE_BOOTSTRAP)
} else if (cmHasLiteralPrefix(arg, "--profiling-format")) {
} else if (cmHasLiteralPrefix(arg, "--profiling-format=")) {
profilingFormat = arg.substr(strlen("--profiling-format="));
if (profilingFormat.empty()) {
cmSystemTools::Error("No format specified for --profiling-format");
}
} else if (cmHasLiteralPrefix(arg, "--profiling-output")) {
} else if (cmHasLiteralPrefix(arg, "--profiling-output=")) {
profilingOutput = arg.substr(strlen("--profiling-output="));
profilingOutput = cmSystemTools::CollapseFullPath(profilingOutput);
cmSystemTools::ConvertToUnixSlashes(profilingOutput);
if (profilingOutput.empty()) {
cmSystemTools::Error("No path specified for --profiling-output");
}
} else if (cmHasLiteralPrefix(arg, "--preset")) {
} else if (cmHasLiteralPrefix(arg, "--preset=")) {
presetName = arg.substr(strlen("--preset="));
if (presetName.empty()) {
cmSystemTools::Error("No preset specified for --preset");