問題が見つかりました:カスタムビルドとカスタム構成の追加の間に混乱があります:
- 構成は、VisualStudioやXCodeなどの特別なツール用です
- ビルドタイプははるかに生々しい機能です
したがって、カスタムビルドタイプを追加するために、CMAKE_CONFIGURATION_TYPES変数を操作する必要はまったくありません。説明されているように、対応する変数を設定して使用を開始するだけです。
SET(GCC_DEBUG_FLAGS "-g -Wall")
# Add new build types
message("* Adding build types...")
SET(CMAKE_CXX_FLAGS_COVERAGE
"${GCC_DEBUG_FLAGS} -fprofile-arcs -ftest-coverage"
CACHE STRING "Flags used by the C++ compiler during coverage builds."
FORCE )
SET(CMAKE_C_FLAGS_COVERAGE
"${GCC_DEBUG_FLAGS} -fprofile-arcs -ftest-coverage"
CACHE STRING "Flags used by the C compiler during coverage builds."
FORCE )
SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE
""
CACHE STRING "Flags used for linking binaries during coverage builds."
FORCE )
SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
""
CACHE STRING "Flags used by the shared libraries linker during coverage builds."
FORCE )
MARK_AS_ADVANCED(
CMAKE_CXX_FLAGS_COVERAGE
CMAKE_C_FLAGS_COVERAGE
CMAKE_EXE_LINKER_FLAGS_COVERAGE
CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
ヘルプ文字列を更新することもできます(ちなみに、デフォルトのビルドタイプを設定するとともに):
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Debug
CACHE STRING "Choose the type of build : None Debug Release RelWithDebInfo MinSizeRel Coverage."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
message("* Current build type is : ${CMAKE_BUILD_TYPE}")
これを行う別のビルドタイプからデフォルトオプションを継承しようとすることについての少しの警告:
SET(CMAKE_CXX_FLAGS_COVERAGE
"${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage"
CACHE STRING "Flags used by the C++ compiler during coverage builds."
FORCE )
構成が再度ソースされるたびに(何かを変更するたびに)追加のオプションが追加され続けるため、これは 悪い考えです。