I’m trying to add a custom build type for my CMake configuration targeting code coverage.
The method I’ve tried so far is from the FAQ entry about it in the CMake wiki site. However, I can’t make it work.
Here is my code, using CMake 2.8.5:
message("* Adding build types...")
if(CMAKE_CONFIGURATION_TYPES)
list(APPEND CMAKE_CONFIGURATION_TYPES CodeCoverage)
list(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
"Add the configurations that we need"
FORCE)
message(" Available build types are now : ${CMAKE_CONFIGURATION_TYPES}")
else()
message(" XXX custom build types are not allowed...")
endif()
And I get "XXX custom build types are not allowed…"…
Found the problem : there is a confusion between adding custom builds and custom configurations :
So to add a custom build type, there is no need to manipulate the CMAKE_CONFIGURATION_TYPES variable at all. Just set the corresponding variables and start using it, as explained :
We may also want to udate the help string (along with setting the default build type by the way) :
A bit of warning about trying to inherit default options from another build type doing this :
This is a bad idea because the extra options keep being appended every time the config is sourced again (every time you change something in it).