Commit dc4a2749 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'set-env-warning'

cb01b8c8

 set: warn of extra arguments after ENV value.
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !2903
parents d401c10d cb01b8c8
Pipeline #129269 passed with stage
in 0 seconds
......@@ -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