[CMake] Determine active config in a ctest-invoked script?

David Wolfe dwolfe at gforcetech.com
Thu Dec 27 13:37:46 EST 2007


I have a python script I'm using with ADD_TEST as follows:

   ADD_TEST( cone ${PYTHON_EXECUTABLE} convertAndCompare.py cone.osg )

My problem is: this python script invokes an EXE built by CMake, and I
haven't figured out a way to tell it whether it should invoke the
Release or Debug version of the executable.

My first stab at this was:

   GET_TARGET_PROPERTY(GRAB_SCREEN_EXE grabScreen LOCATION)

   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/convertAndCompare.py.in
                  ${CMAKE_CURRENT_BINARY_DIR}/convertAndCompare.py
                  @ONLY)

In convertAndCompare.py.in, I have:

   grabScreenPath = '@GRAB_SCREEN_EXE@'.replace('$(OutDir)', 'Release')

I did this after discovering that the above GET_TARGET_PROPERTY call is
setting GRAB_SCREEN_EXE to something like:

   C:\projects\Build\ofw\bin\$(OutDir)\grabScreen.exe

Hard-coding it to always replace '$(OutDir)' with 'Release' sorta works,
but I'd like it to run the Debug version if I build 'RUN_TESTS' from
Visual Studio with the 'Debug' configuration active.

Is there some way I can get ctest to communicate to my script what
configuration it's running?  That way, I could conditionally replace
'$(OutDir)' with the right thing instead of hard-coding it to
'Release'.

Any help much appreciated! :-)

- Dave W.




More information about the CMake mailing list