Updates will be applied on October 27th between 12pm - 12:45pm EDT (UTC-0400). Gitlab may be slow during the maintenance window.

Commit cb01b8c8 authored by Taylor holberton's avatar Taylor holberton Committed by Brad King
Browse files

set: warn of extra arguments after ENV value.

Fixes: #18842
parent d5263270
......@@ -86,7 +86,7 @@ Set Environment Variable
.. code-block:: cmake
set(ENV{<variable>} <value>...)
set(ENV{<variable>} [<value>])
Sets an :manual:`Environment Variable <cmake-env-variables(7)>`
to the given value.
......@@ -95,3 +95,10 @@ Subsequent calls of ``$ENV{<variable>}`` will return this new value.
This command affects only the current CMake process, not the process
from which CMake was called, nor the system environment at large,
nor the environment of subsequent build or test processes.
If no argument is given after ``ENV{<variable>}`` or if ``<value>`` is
an empty string, then this command will clear any existing value of the
environment variable.
Arguments after ``<value>`` are ignored. If extra arguments are found,
then an author warning is issued.
......@@ -38,6 +38,14 @@ bool cmSetCommand::InitialPass(std::vector<std::string> const& args,
putEnvArg += args[1];
cmSystemTools::PutEnv(putEnvArg);
}
// if there's extra arguments, warn user
// that they are ignored by this command.
if (args.size() > 2) {
std::string m = "Only the first value argument is used when setting "
"an environment variable. Argument '" +
args[2] + "' and later are unused.";
this->Makefile->IssueMessage(MessageType::AUTHOR_WARNING, m);
}
return true;
}
......
CMake Warning \(dev\) at ExtraEnvValue.cmake:1 \(set\):
Only the first value argument is used when setting an environment variable.
Argument 'value_2' and later are unused.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
set (ENV{sample_key} value_1 value_2)
......@@ -4,3 +4,4 @@ run_cmake(ParentScope)
run_cmake(ParentPulling)
run_cmake(ParentPullingRecursive)
run_cmake(UnknownCacheType)
run_cmake(ExtraEnvValue)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment