[CMake] Running tests using [C++/Python] modules from the build tree

Marcel Loose loose at astron.nl
Wed Sep 29 04:43:55 EDT 2010


On Tue, 2010-09-28 at 18:42 +0200, Pere Mato Vila wrote:
> Hi,
> 
>   I am seeking for advise. I would like to run some CTest tests from
the build tree, which require C++ or Python modules created in other
project directories (packages). For this I need to build correctly the
LD_LIBRARY_PATH and PYTHONPATH and use the command set_property(TEST xxx
PROPERTY ENVIRONMENT LD_LIBRARY_PATH=yyy PYTHONPATH=xxx). The question
is how to make this the most easy and transparent way as possible, since
the modules I would need in the tests are not easily known a priori.
> 
>    If I could set a global variable in each package that creates a
module, something like <PACKAGE>_MODULE_DIRS and I could collect these
in the package that I want to run the test and build the ENVIRONMENT
property accordingly. The problem is that it is not so easy in CMake to
set global variables. 
> 
>   Another alternative would be to define  a function called 
module_directories(), which behaves like the command 
link_dicrectories(), that I could call every time I create/define a
module. I would then recover the list of directories using a specific
directory property,  as it is done in the case of LINK_DIRECTORIES.
> 
>   Does anybody has a similar problem and has found an elegant
solution? Many thanks  in advance.
> 
> 
Hi Pere,

You could write a wrapper script that sets your environment variables.
Since you don't know the actual values for these variables beforehand,
you should let CMake generate this script, using configure_file().
That's the way I do it, and it works great.

Best regards,
Marcel Loose.



More information about the CMake mailing list