Re: [cmake-developers] How to set environment variable for custom command.
On Fri, Jul 19, 2013 at 8:29 PM, Alan W. Irwin 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= ${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 -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] How to set environment variable for custom command.
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= ${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". Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] How to set environment variable for custom command.
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 :-). I'm not sure if build tools on Windows are able to support setting environment variables. If you need to do it portably (and can't use the code Brad mentioned), you may need to use cmake's -P mode with a script that wraps your command (using execute_process) after first setting up the desired environment. -- Matthew -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] How to set environment variable for custom command.
On 07/19/2013 10:36 AM, Nicolas Desprès wrote: > Hi, > > 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 > ) There has been some progress here: https://github.com/Kitware/CMake/pull/31 -Brad -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] How to set environment variable for custom command.
Sorry wrong ML :(. On Fri, Jul 19, 2013 at 4:36 PM, Nicolas Desprès wrote: > Hi, > > 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? > > Cheers, > > -- > Nicolas Desprès > -- Nicolas Desprès -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers