[CMake] TEST Property ENVIRONMENT combined with ctest --build-and-test

David Cole david.cole at kitware.com
Tue Jun 21 13:00:14 EDT 2011


On Tue, Jun 21, 2011 at 12:09 PM, Hugo Heden <heden at foi.se> wrote:

> **
> Good day all,
>
> I am using ADD_TEST like this:
>
>   ADD_TEST(
>     nameOfMyTest
>     ${CMAKE_CTEST_COMMAND}
>     --build-and-test  ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}
>     --build-generator ${CMAKE_GENERATOR}
>     --build-makeprogram ${CMAKE_BUILD_TOOL}
>     --build-nocmake
>     --build-noclean
>     --build-project ${MY_PRODUCT_NAME}
>     --build-target someTestTarget
>     )
>
> -- that is: *ctest --build-and-test* is invoked "from within" the test.*ctest --build-and-test
> * will in turn invoke the build tool:
>
> *make someTestTarget*
>
> (assuming Unix make is the build tool).
>
> That's correct so far, isn't it?
>
> Question:
>
> I would now like to specify an environment variable in this CMakeLists.txt,
> namely "TJO=SAN", that affects the invocation of *make someTestTarget*.
> The result would be that ctest --build-and-test "creates" an invocation
> like:
>
> *TJO=SAN make someTestTarget*
>
> How can I do that? A naïve idea would be to write
>
> SET_PROPERTY(TEST nameOfMyTest PROPERTY ENVIRONMENT "TJO=SAN" )
>
> -- but that will not work (right?) Because it will only set the environment
> variable for the invocation of ctest:
>
> *TJO=SAN ctest --build-and-test ....*
>
> -- but *not* the subsequent call to make.
>
> Any ideas?
>
> *Is there any way to tell ctest --build-and-test to set an environment
> variable for the invocation of the build tool?*
>
> Best,
>
> - Hugo Heden
>
> FOI, Sweden
> www.foi.se
>
>
> _______________________________________________
> 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://www.cmake.org/mailman/listinfo/cmake
>


It should work -- because the "make" runs as a child process of the ctest
--build-and-test call, and the environment set for the outer process should
be inherited by all child processes unless otherwise overridden by a child
process itself.

HTH,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110621/131c927a/attachment.htm>


More information about the CMake mailing list