[cmake-developers] How to set environment variable for custom command.
Nicolas Desprès
nicolas.despres at gmail.com
Sat Jul 20 06:37:49 EDT 2013
On Fri, Jul 19, 2013 at 8:29 PM, Alan W. Irwin <irwin at beluga.phys.uvic.ca>wrote:
> On 2013-07-19 12:35-0400 Matthew Woehlke wrote:
>
> On 2013-07-19 10:36, Nicolas Desprès wrote:
>>
>>> In Unix shell we can do that:
>>> $ VAR=foo cmd in out
>>>
>>> This way the environment variable is only set in the environment of the
>>> process of the command and not the in current shell like when using the
>>> "export" built-in.
>>>
>>> I would like to be able to do the same for a custom command in CMake.
>>> Ideally I was looking for something like that:
>>>
>>> add_custom_command(
>>> OUTPUT out
>>> COMMAND cmd in out
>>> DEPENDS in
>>> ENVIRONMENT VAR foo
>>> )
>>>
>>> Any idea?
>>>
>>
>> Well, if you only care about UNIX you can always use /bin/env :-).
>>
>
> Actually, using env is not that platform-limiting since it is
> available with MSYS. For those not aware of the env capabilities a
> simple example (setting the PATH in various ways to run different
> cmake varsions) is
>
> COMMAND ${ENV_EXECUTABLE} PATH=<whatever> ${CMAKE_COMMAND} --version
>
> where ENV_EXECUTABLE is the result of "find_program(ENV_EXECUTABLE
> env)". Also note that env can be used to set multiple environment
> variables for a particular command.
>
> I use env a lot for the custom commands in the build_projects project.
> I have found it works fine (with some care) for a number of different
> generators/platforms, e.g., "Unix Makefiles" on Linux, "Ninja" (both
> on Linux and for MinGW/MSYS/Windows), "MSYS Makefiles", "MinGW
> Makefiles", and "NMake Makefiles Jom".
>
>
That's greate. I did not think about it. Actually, like many developpers I
guess, I use env only the she-bang line of my script or to print the
environment.
Thanks!
--
Nicolas Desprès
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20130720/ee6bb815/attachment.html>
More information about the cmake-developers
mailing list