View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002468 | Slicer4 | Core: Building (CMake, Superbuild) | public | 2012-09-04 06:21 | 2014-03-06 04:51 |
Reporter | jcfr | Assigned To | jcfr | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Slicer 4.2.0 | Fixed in Version | Slicer 4.2.0 | ||
Summary | 0002468: Not all error are reported on CDash | ||||
Description | Some element copied from the email thread: // ------------------------ // ------------------------ I don't mind changing the way our dashboard driver script is running. Which approach do you suggest ? I could also associate a label to each dependency (VTK, ITKv3, etc ...), build them in the topological order. The last project to be built would be Slicer itself. Or I could have:
// ------------------------ This is what Bill meant about CTEST_USE_LAUNCHERS and superbuild not working Build command: /usr/bin/make -i -j5 The launchers are only used at the superbuild level, not on every compile ctest --launch ... -- $(MAKE) The $(MAKE) expands to the above build command again, including "-i". If you take out the "-i" it will show errors as errors. // ------------------------ Seems the CTEST_USE_LAUNCHER expects BUILD_TESTING to be enabled and since I want the external projects to build with Testing disabled .. passing the option CTEST_USE_LAUNCHER alone won't work. What I need to do so is to pass an updated CMAKE_MODULE_PATH with a directory containing my custom CTest module that would ensure CTESTLAUNCH{COMPILE, LINK, CUSTOM} to be defined and the associated property set also when BUILD_TESTING isn't set. For non-CMake based project like Python, Tcl .. I could enforce to have "-j1". | ||||
Tags | No tags attached. | ||||
Feb 2012: Hi Folks, The experiment I conducted wasn't successful. No errors or warnings were reported. See here. What I did: That said, I will create a small test case allowing us to easily work on the issue. Thanks |
|
I created a small toy project to investigate if the strategy proposed by CMake folks would work. // ------ The project is composed of:
Two build errors have been voluntarily introduced:
// ------ // ------ 1) WithoutCTestUseLauncher 2) WithCTestUseLauncherAtTopLevel-UnpatchedCTest 3) WithCTestUseLauncherInSubProject (PatchedCTest)
4) WithCTestUseLauncherAllLevel-PatchedCTest-TopLevelWarning-TopLevelBuildError
// ------ Code specific to Launcher existing in CTest.cmake should probably be moved into a file named "CTestLauncher.cmake". This should probably be included by default in every project independently of CTest ExternalProject.cmake should be patched to automatically pass CTEST_USE_LAUNCHERS |
|
Email sent to CMake folks: Hi Folks, I finally took the time to put together a small project and did some experiments. The details are reported here:
// ------------- Code: https://github.com/jcfr/2468-TestCTestErrorReportingWithSuperbuild/commits/master // ------------- 1) Code specific to Launcher existing in CTest.cmake should probably be moved into a file named "CTestLauncher.cmake". This file should probably be included by default in every project independently of CTest 2) ExternalProject.cmake should be patched to automatically pass CTEST_USE_LAUNCHERS Knowing where would "CTestLauncher.cmake" could be included so that it's always considered, I could work on a patch. Let me know what you all think. Thanks |
|
Hi Dave, Here is a topic with the proposed change: https://github.com/jcfr/CMake/tree/fix-ctest-use-launchers-for-superbuild I still think that enabling CTEST_USE_LAUNCHERS within a ctest script should allow the project and sub projects to report errors properly. If instead of patching ExternalProject to pass the variable, there is an other mechanism allowing to achieve the same goal. I would be happy to help implementing it. Currently, if the proposed topic, I still have to make sure every sub project is: 1) Including CTest: Project like DCMTK are not including CTest at all, this project simply call "enable_testing()" 2) Properly passing CTEST_USE_LAUNCHERS in case of a superbuild setup used in the sub project itself. example: Slicer is a superbuild depending on CTK which is also a superbuild. Having a smarter mechanism to enable the launcher would be very very helpful for us. Thanks for your help, |
|
Hi Dave,
Having a built-in mechanism allowing to enable the launcher would avoid to manually edit each project. The idea would be to automatically have "CTestUseLaunchers" included. Each time the project command is invoked for example. Would such an approach be something possible ?
Combined with the approach described earlier, enabling the launcher through ENV var would be great. How should we proceed ? Thanks |
|
Topic pushed for CMake and CTK: Currently testing locally |
|
Fixed in r21112 //-------------------- Setting the variable CTEST_USE_LAUNCHERS_DEFAULT in the environment In the mean time, your local installation of CMake can be modified based on |
|
Installation of CMake 2.8.8 have been updated on:
|
|
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21151 |
|
Hi Dave, The patch has been updated and tested on the factory. See https://github.com/jcfr/CMake/tree/fix-ctest-use-launchers-for-superbuild http://slicer.cdash.org/viewBuildError.php?buildid=42565 To enable the launcher the following line have been added to the dashboard scripts: https://github.com/Slicer/Slicer/blob/master/CMake/SlicerDashboardDriverScript.cmake#L108-113 Let me know how you would like to proceed to get the patch integrated in the coming version of CMake. Thanks for all your help, |
|
Closing resolved issues that have not been updated in more than 3 months |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-09-04 06:21 | jcfr | New Issue | |
2012-09-04 06:21 | jcfr | Status | new => assigned |
2012-09-04 06:21 | jcfr | Assigned To | => jcfr |
2012-09-04 06:22 | jcfr | Target Version | => Slicer 4.2.0 - Feature freeze Sept 1st 2012 |
2012-09-04 06:23 | jcfr | Note Added: 0005938 | |
2012-09-04 11:47 | jcfr | Note Edited: 0005938 | |
2012-09-04 11:47 | jcfr | Assigned To | jcfr => sankhesh |
2012-09-04 11:49 | jcfr | Assigned To | sankhesh => crmullin |
2012-09-04 11:49 | jcfr | Assigned To | crmullin => jcfr |
2012-09-27 14:35 | jcfr | Note Added: 0006258 | |
2012-09-27 14:42 | jcfr | Note Added: 0006259 | |
2012-09-27 14:42 | jcfr | Status | assigned => feedback |
2012-10-01 06:46 | jcfr | Note Added: 0006290 | |
2012-10-01 06:46 | jcfr | Note Added: 0006291 | |
2012-10-04 13:45 | jcfr | Note Added: 0006391 | |
2012-10-05 06:57 | jcfr | Note Added: 0006395 | |
2012-10-05 06:57 | jcfr | Status | feedback => resolved |
2012-10-05 06:57 | jcfr | Fixed in Version | => Slicer 4.2.0 - coming release |
2012-10-05 06:57 | jcfr | Resolution | open => fixed |
2012-10-05 06:57 | jcfr | Note Edited: 0006395 | |
2012-10-05 07:34 | jcfr | Note Added: 0006399 | |
2012-10-10 12:35 | jcfr | Note Added: 0006491 | |
2012-10-11 15:03 | jcfr | Note Added: 0006503 | |
2014-03-06 04:50 | jcfr | Note Added: 0010732 | |
2014-03-06 04:51 | jcfr | Status | resolved => closed |