My experiences in line..

On Aug 18, 2008, at 8:38 AM, Steven Dwyer wrote:

I'm looking at moving from scons to cmake, but after reading through the documentation and mailing lists, I'm not sure if it will handle everything that I want to do. In particular:

I want to build three different configurations:  Debug, Release, Test

The input to the three configurations is mostly the same (some differences in compiler switches, etc.). However, the output is different for the test configuration.

The test configuration should build with the following "rules".

1. The test configuration should always link in an additional library that contains its own 'main' function.

Yes this is possible. You would simple list the library as an additional argument to the "target_link_libraries(...)" command. This is common if you use the Boost testing framework as boost supplies its own "main" function.


2. If the Debug/Release configurations build an executable, the test configuration should also build an executable and run it after it is built.

I use the Boost unit testing framework and what I do is add "testing" targets that build my unit tests (optionally) every time I compile. After the compile I run "make test" and all the units tests are executed.

3. If the Debug/Release configurations build a library, the test configuration should build an executable and run it after it is built.

Same idea as #2. There are some pointers in the CMake wiki about setting all this up but just keep asking questions here as you will find the cmake community very willing to help.


Is it possible to do this with cmake, and if so are there any pointers on how to set it up?

Take a look at <http://titanium.imts.us/viewvc/Task_7/MXADataModel/> for my own project that uses some of these ideas. You can also take a look at <http://titanium.imts.us/viewvc/Task_7/hdf5-166/> where I tweaked the HDF5 build system that was included with ParaView to add the necessary testing code.

I'm using the Microsoft Visual Studio 2005 generator and am running on the Windows platform.

Thanks very much,
Steven


--
Mike Jackson   Senior Research Engineer
Innovative Management & Technology Services

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to