[CMake] Bug? A failure in add_custom_command/POST_BUILD does not propagate to target.
Hugo Heden
hugoheden at gmail.com
Fri Apr 17 08:06:30 EDT 2009
The following example illustrates a possible bug.
Consider the following CMakeLists.txt code. This little "project" should
fail when the target MyTarget is built (because one of the POST_BUILD custom
commands fails).
===========================
cmake_minimum_required(VERSION 2.6)
PROJECT( test )
ADD_CUSTOM_TARGET( MyTarget
COMMENT "This is MyTarget"
)
ADD_CUSTOM_COMMAND(
TARGET MyTarget
POST_BUILD
COMMAND cmake -E blablablahh # Error (intentional error, to illustrate
buggy behaviour.)
VERBATIM
)
ADD_CUSTOM_COMMAND(
TARGET MyTarget
POST_BUILD
COMMAND cmake -E echo "hello there" # Success.
VERBATIM
)
=============================
However, running
> cmake -G "Visual Studio 9 2008" ..\source
> devenv test.sln /Build Debug /Project MyTarget.vcproj
succeeds, which is not expected. (Right?).
The problem seems to be that a succeeding custom command comes after the
failing one, and this sort of *hides* the failure somehow.. The fact that
failures are hidden like this is of course dangerous. (We have tests that
have been failing like this for a while that have not shown up as error in
our nightly builds.) When using other Generators and build tools (I have
tested with "NMake Makefiles" -- nmake on Windows and "Unix Makefiles" --
Gnu-make on Linux) the build phase fails as expected.
> cmake --version
cmake version 2.6-patch 2
Any comments?
Thanks
Hugo Heden
Swedish Defence Research Agency
Stockholm, Sweden
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090417/a9c44350/attachment.htm>
More information about the CMake
mailing list