Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide automatically generated CTest targets

I'm using CMake and CTest in CLion. Annoyingly, CTest generates a load of targets that I don't care about:

  • Continuous
  • ContinuousBuild
  • ContinuousConfigure
  • ContinuousCoverage
  • ContinuousMemCheck
  • ContinuousStart
  • ContinuousSubmit
  • ContinuousTest
  • ContinuousUpdate
  • Experimental
  • ExperimentalBuild
  • ExperimentalConfigure
  • ExperimentalCoverage
  • ExperimentalMemCheck
  • ExperimentalStart
  • ExperimentalSubmit
  • ExperimentalTest
  • ExperimentalUpdate
  • Nightly
  • NightlyBuild
  • NightlyConfigure
  • NightlyCoverage
  • NightlyMemCheck
  • NightlyStart
  • NightlySubmit
  • NightlyTest
  • NightlyUpdate

These all show up in CLion. Quite annoying as I'm sure you'll agree. Is there solution to remove them? I'm open to any solution:

  1. Get CTest to not generate them in the first place.
  2. Delete the targets after CTest has created them.
  3. A setting in CLion to hide them.
like image 251
Timmmm Avatar asked Jul 06 '17 12:07

Timmmm


2 Answers

Unless you are using CDash, the solution is very simple.

In your CMakefile replace

include(CTest)

with

enable_testing()
like image 106
Juan Leni Avatar answered Nov 16 '22 15:11

Juan Leni


Hack warning - below hack relies on an internal implementation detail (CTestTargets.cmake), and thus not guaranteed to work with any CMake version.

If one cannot avoid include(CTest), since certain CTest functionalities are needed and aren't available by enable_testing(), such as Valgrind integration, generation of the automatic CTest targets could be avoided altogether using the following hack:

set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1) # hack to prevent CTest added targets
include (CTest)

Setting CTEST_TARGETS_ADDED to 1 prior to including CTest will prevent generation of the automatic CTest targets.

I've tested this with CMake 3.6, and it should be working through CMake 3.19.6 (in which the CTEST_TARGETS_ADDED macro is still being used).

like image 5
valiano Avatar answered Nov 16 '22 14:11

valiano