Ninja Multi-Config: Don't include MinSizeRel by default

This commit is contained in:
Kyle Edwards 2020-02-05 13:32:04 -05:00
parent 13ef3285df
commit 9e219de4fb
7 changed files with 30 additions and 9 deletions

View File

@ -735,7 +735,7 @@ void cmGlobalNinjaGenerator::EnableLanguage(
if (this->IsMultiConfig()) { if (this->IsMultiConfig()) {
if (!mf->GetDefinition("CMAKE_CONFIGURATION_TYPES")) { if (!mf->GetDefinition("CMAKE_CONFIGURATION_TYPES")) {
mf->AddCacheDefinition( mf->AddCacheDefinition(
"CMAKE_CONFIGURATION_TYPES", "Debug;Release;MinSizeRel;RelWithDebInfo", "CMAKE_CONFIGURATION_TYPES", "Debug;Release;RelWithDebInfo",
"Semicolon separated list of supported configuration types, only " "Semicolon separated list of supported configuration types, only "
"supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything " "supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything "
"else will be ignored", "else will be ignored",

View File

@ -6,7 +6,7 @@ set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}")
include(CheckStructHasMember) include(CheckStructHasMember)
foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) foreach(_config_type Release RelWithDebInfo Debug)
set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type})
unset(CSHM_RESULT_S1_${_config_type} CACHE) unset(CSHM_RESULT_S1_${_config_type} CACHE)
unset(CSHM_RESULT_S2_${_config_type} CACHE) unset(CSHM_RESULT_S2_${_config_type} CACHE)
@ -26,7 +26,7 @@ foreach(_config_type Release RelWithDebInfo MinSizeRel Debug)
endif() endif()
endforeach() endforeach()
foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) foreach(_config_type Release RelWithDebInfo Debug)
set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type})
unset(CSHM_RESULT_S1_${_config_type}_C CACHE) unset(CSHM_RESULT_S1_${_config_type}_C CACHE)
unset(CSHM_RESULT_S2_${_config_type}_C CACHE) unset(CSHM_RESULT_S2_${_config_type}_C CACHE)
@ -46,7 +46,7 @@ foreach(_config_type Release RelWithDebInfo MinSizeRel Debug)
endif() endif()
endforeach() endforeach()
foreach(_config_type Release RelWithDebInfo MinSizeRel Debug) foreach(_config_type Release RelWithDebInfo Debug)
set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type}) set(CMAKE_TRY_COMPILE_CONFIGURATION ${_config_type})
unset(CSHM_RESULT_S1_${_config_type}_CXX CACHE) unset(CSHM_RESULT_S1_${_config_type}_CXX CACHE)
unset(CSHM_RESULT_S2_${_config_type}_CXX CACHE) unset(CSHM_RESULT_S2_${_config_type}_CXX CACHE)

View File

@ -7,6 +7,13 @@ if(make_program)
set(maybe_make_program "-DCMAKE_MAKE_PROGRAM=${make_program}") set(maybe_make_program "-DCMAKE_MAKE_PROGRAM=${make_program}")
endif() endif()
set(_isMultiConfig "@_isMultiConfig@")
if(_isMultiConfig)
set(cfg_opts "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;RelWithDebInfo")
else()
set(cfg_opts)
endif()
set(source_dir "@CMAKE_CURRENT_SOURCE_DIR@/${TEST_SOURCE}") set(source_dir "@CMAKE_CURRENT_SOURCE_DIR@/${TEST_SOURCE}")
set(binary_dir "@CMAKE_CURRENT_BINARY_DIR@/${TEST}-build") set(binary_dir "@CMAKE_CURRENT_BINARY_DIR@/${TEST}-build")
file(REMOVE_RECURSE "${binary_dir}") file(REMOVE_RECURSE "${binary_dir}")
@ -16,6 +23,7 @@ execute_process(
"${source_dir}" -G "@CMAKE_GENERATOR@" "${source_dir}" -G "@CMAKE_GENERATOR@"
-A "@CMAKE_GENERATOR_PLATFORM@" -A "@CMAKE_GENERATOR_PLATFORM@"
-T "@CMAKE_GENERATOR_TOOLSET@" -T "@CMAKE_GENERATOR_TOOLSET@"
${cfg_opts}
${maybe_make_program} ${maybe_make_program}
WORKING_DIRECTORY "${binary_dir}" WORKING_DIRECTORY "${binary_dir}"
RESULT_VARIABLE result RESULT_VARIABLE result

View File

@ -13,6 +13,8 @@ message("CMAKE_CTEST_COMMAND='${CMAKE_CTEST_COMMAND}'")
set(arg "") set(arg "")
if(NOT _isMultiConfig) if(NOT _isMultiConfig)
set(arg "-DCMAKE_BUILD_TYPE:STRING=@cfg@") set(arg "-DCMAKE_BUILD_TYPE:STRING=@cfg@")
else()
set(arg "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo")
endif() endif()
message("cmake initial configure") message("cmake initial configure")

View File

@ -6,7 +6,14 @@ set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestConfig/@cfg@-script")
ctest_start(Experimental) ctest_start(Experimental)
ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE rv) set(_isMultiConfig "@_isMultiConfig@")
if(_isMultiConfig)
set(cfg_opts "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo")
else()
set(cfg_opts)
endif()
ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS "${cfg_opts}" RETURN_VALUE rv)
if(NOT rv STREQUAL 0) if(NOT rv STREQUAL 0)
message(FATAL_ERROR "*** error in ctest_configure ***") message(FATAL_ERROR "*** error in ctest_configure ***")
endif() endif()

View File

@ -34,6 +34,10 @@ function(check_python case)
endif() endif()
endfunction() endfunction()
if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo")
endif()
run_cmake(Nothing) run_cmake(Nothing)
run_cmake(Empty) run_cmake(Empty)
run_cmake(EmptyClient) run_cmake(EmptyClient)

View File

@ -81,7 +81,7 @@ endfunction()
set(RunCMake_TEST_NO_CLEAN 1) set(RunCMake_TEST_NO_CLEAN 1)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Simple-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Simple-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all") set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all")
run_cmake_configure(Simple) run_cmake_configure(Simple)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
@ -113,7 +113,7 @@ run_ninja(Simple default-build-file-clean-minsizerel build.ninja clean:MinSizeRe
run_ninja(Simple default-build-file-all build.ninja all) run_ninja(Simple default-build-file-all build.ninja all)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SimpleDefaultBuildAlias-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SimpleDefaultBuildAlias-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release;-DCMAKE_NMC_DEFAULT_CONFIGS=all;-DCMAKE_NMC_CROSS_CONFIGS=all") set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_DEFAULT_BUILD_FILE_CONFIG=Release;-DCMAKE_NMC_DEFAULT_CONFIGS=all;-DCMAKE_NMC_CROSS_CONFIGS=all")
run_cmake_configure(SimpleDefaultBuildAlias) run_cmake_configure(SimpleDefaultBuildAlias)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
@ -188,7 +188,7 @@ include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
run_cmake_build(Framework framework Debug all) run_cmake_build(Framework framework Debug all)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandGenerator-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CustomCommandGenerator-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_CROSS_CONFIGS=all") set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all")
run_cmake_configure(CustomCommandGenerator) run_cmake_configure(CustomCommandGenerator)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake) include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)
@ -236,7 +236,7 @@ run_ninja(Clean release-notall build-Release.ninja exenotall)
run_cmake_build(Clean release-clean Release clean) run_cmake_build(Clean release-clean Release clean)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AdditionalCleanFiles-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AdditionalCleanFiles-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_NMC_CROSS_CONFIGS=all") set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo;-DCMAKE_NMC_CROSS_CONFIGS=all")
run_cmake_configure(AdditionalCleanFiles) run_cmake_configure(AdditionalCleanFiles)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
run_cmake_build(AdditionalCleanFiles release-clean Release clean) run_cmake_build(AdditionalCleanFiles release-clean Release clean)