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
_______________________________________________
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