On 10/26/2012 10:39 AM, Leif Walsh wrote:
> Sure thing. Can you let me know where to find an example test? I'll pattern 
> match one over the weekend. 

Most CMake tests just verify that binaries build correctly.
The "Tests/BuildDepends" test is the only one that actually
tests rebuild behavior.  It has custom commands to build a
sub-project in its Project subdirectory multiple times while
making modifications in between.

You'll have to modify the inner test project to add a shared
library and an executable that links to it.  Set the new
property on the executable only.  After the first build,
verify that the executable's time is newer than the library
time.  Between builds, modify a the shared library source
(which of course will have to be in the build tree to avoid
modifying CMake's source tree).  After the second build
verify that the library is newer than the executable.

Checking the file times is probably most easily done as a
custom target on the inner project that depends on the
executable.  Its COMMAND should run a cmake script and
pass -Dexe=$<TARGET_FILE:exe> -Dlib=$<TARGET_FILE:lib> to
it.  The script can compare the ${lib} and ${exe} file
times with if(... FILE_IS_NEWER ...).

Thanks,
-Brad
--

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

Reply via email to