Re: [CMake] How to set environment variable for custom command

2013-07-20 Thread Nicolas Desprès
Thank you all for your suggestion. I will go with the script shell wrapper
trick even if I am not a big fan of it. I don't like the burden of
generating a wrapper just to set environment variable. Luckily CMake will
provides such a feature in the future.

Cheers,
Nico

On Fri, Jul 19, 2013 at 5:39 PM, Dan Kegel  wrote:

> On Fri, Jul 19, 2013 at 8:21 AM, Andreas Pakulat  wrote:
> >> In Unix shell we can do that:
> >> $ VAR=foo cmd in out
> >> I would like to be able to do the same for a custom command in CMake.
>
> See http://public.kitware.com/Bug/view.php?id=5145
> for previous discussion.
>
> >> add_custom_command(
> >>   OUTPUT out
> >>   COMMAND cmd in out
> >>   DEPENDS in
> >>   ENVIRONMENT VAR foo
> >>   )
> >
> > I can see two options to achieve this: ...
> > b) let cmake generate a shell script (using configure_file) and set the
> > envvar in there, it would also contain the command executable and pass on
> > any arguments using $@. Then use the script as custom command instead of
> the
> > real command.
>
> c) On Mac and Linux, you can do it inline something like this:
>
>  add_custom_command(
>OUTPUT out
>COMMAND "FOO=${bar}" my_cmd.sh"
>DEPENDS in
>)
>
> On Windows, you might be able to do it inline like this:
>
>  add_custom_command(
>OUTPUT out
>COMMAND "set FOO=${bar}" & my_cmd.bat"
>DEPENDS in
>)
>
> (although I haven't tried it, so in both cases you might need to
> coax cmake into using a shell by prefixing the command with sh -c
> or cmd /c or something.)
>



-- 
Nicolas Desprès
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] How to set environment variable for custom command

2013-07-19 Thread Andreas Pakulat
Hi,


On Fri, Jul 19, 2013 at 4:37 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
>   )
>

I can see two options to achieve this:

a) set the environment variable when calling make in the same way as above.
Custom commands are actually executed by make and get the envvars from the
make environment

b) let cmake generate a shell script (using configure_file) and set the
envvar in there, it would also contain the command executable and pass on
any arguments using $@. Then use the script as custom command instead of
the real command.

Andreas
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

[CMake] How to set environment variable for custom command

2013-07-19 Thread Nicolas Desprès
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
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake