Hi Brad, I investigated this issue a bit more. I have two conclusions.
[1]
Clang generates clear error messages, and ctest detects such errors without
problem. These errors look like this:
ld: library not found for -lkaboom
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
So the problem is not clang itself.
[2]
The problem is caused by Xcode that intercepts these type of errors, and
instead of printing the original message, prints something like:
Command /Developer/usr/bin/clang++ failed with exit code 1
This type of error is not detected by ctest. This is a problem for those who
invoke xcodebuild in their ctest scripts, e.g.
ctest -S BuildMyXcodeProjectAndSendResultsToDashboard.cmake
I created and attached a patch that adds a regexp to match this type of errors.
It is based on 36ce6e01f8a1e7f2bdb5604c7776a4a91fa36400.
ctest.add.error.regex.patch
Description: Binary data
sincerely, Alex Ciobanu On 2012-03-08, at 3:38 PM, Brad King wrote: > On 3/8/2012 3:34 PM, Alexandru Ciobanu wrote: >> We found a scenario when when ctest does not detect a build error. >> >> This occurs when clang is invoked as a linker and one of the libraries is >> not found: >> >> /Developer/usr/bin/clang++ -LDIR1 -LDIR2 -lib1 -lib2 -lib3 [...] -o >> MyApp >> ld: library not found for -lprofile_rt >> Command /Developer/usr/bin/clang++ failed with exit code 1 >> >> The two lines printed after this invocation are not matched by any of the >> regular expressions defined in Source/CTest/cmCTestBuildHandler.cxx >> >> So, in our case, we have an incomplete build, and the error is not reported >> to the dashboard. >> >> I think lines matching "clang\+* failed with exit code" should be considered >> errors and reported as such. > > Yes. Please format a patch for cmCTestBuildHandler.cxx to update > cmCTestErrorMatches accordingly. > > Meanwhile you can probably work around this by adding the regex to > CTEST_CUSTOM_ERROR_MATCH in CTestCustom at the top of the project. > > Alternatively you should be able to run the dashboards with the > CTEST_USE_LAUNCHERS option. For Makefile builds it instruments > the compiler and linker invocations and checks the return code > and looks at output on stderr. > > -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
