|
@@ -509,6 +509,16 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
|
|
|
return false;
|
|
|
};
|
|
|
|
|
|
+ auto ToolchainLambda = [&](std::string const& path, cmake* state) -> bool {
|
|
|
+ const std::string var = "CMAKE_TOOLCHAIN_FILE";
|
|
|
+ cmStateEnums::CacheEntryType type = cmStateEnums::FILEPATH;
|
|
|
+#ifndef CMAKE_BOOTSTRAP
|
|
|
+ state->UnprocessedPresetVariables.erase(var);
|
|
|
+#endif
|
|
|
+ state->ProcessCacheArg(var, path, type);
|
|
|
+ return true;
|
|
|
+ };
|
|
|
+
|
|
|
std::vector<CommandArgument> arguments = {
|
|
|
CommandArgument{ "-D", "-D must be followed with VAR=VALUE.",
|
|
|
CommandArgument::Values::One, DefineLambda },
|
|
@@ -530,6 +540,8 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
|
|
|
|
|
|
CommandArgument{ "-P", "-P must be followed by a file name.",
|
|
|
CommandArgument::Values::One, ScriptLambda },
|
|
|
+ CommandArgument{ "--toolchain", "No file specified for --toolchain",
|
|
|
+ CommandArgument::Values::One, ToolchainLambda },
|
|
|
CommandArgument{ "--install-prefix",
|
|
|
"No install directory specified for --install-prefix",
|
|
|
CommandArgument::Values::One, PrefixLambda },
|
|
@@ -835,6 +847,8 @@ void cmake::SetArgs(const std::vector<std::string>& args)
|
|
|
CommandArgument::Values::One, PlatformLambda },
|
|
|
CommandArgument{ "-T", "No toolset specified for -T",
|
|
|
CommandArgument::Values::One, ToolsetLamda },
|
|
|
+ CommandArgument{ "--toolchain", "No file specified for --toolchain",
|
|
|
+ CommandArgument::Values::One, IgnoreAndTrueLambda },
|
|
|
CommandArgument{ "--install-prefix",
|
|
|
"No install directory specified for --install-prefix",
|
|
|
CommandArgument::Values::One, IgnoreAndTrueLambda },
|