Merge topic 'fix-CheckTargetsForMissingSources'

25995b2b30 cmGlobalGenerator: Fix CheckTargetsForMissingSources after refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4747
This commit is contained in:
Brad King
2020-05-18 16:20:42 +00:00
committed by Kitware Robot
2 changed files with 15 additions and 1 deletions
+1 -1
View File
@@ -320,7 +320,7 @@ bool cmGlobalGenerator::CheckTargetsForMissingSources() const
} else {
for (std::string const& config : configs) {
target->GetSourceFiles(srcs, config);
if (srcs.empty()) {
if (!srcs.empty()) {
break;
}
}
+14
View File
@@ -1,4 +1,8 @@
cmake_minimum_required(VERSION 3.0)
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT _isMultiConfig AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build")
endif()
project(ConfigSources CXX)
# Per-config sources via INTERFACE_SOURCES.
@@ -55,3 +59,13 @@ target_compile_definitions(ConfigSourcesLinkIface PRIVATE
"$<$<NOT:$<CONFIG:Debug>>:CFG_OTHER>"
)
target_link_libraries(ConfigSourcesLinkIface ConfigSourcesIface)
# A target with sources in only one configuration that is not the
# first in CMAKE_CONFIGURATION_TYPES.
if(CMAKE_CONFIGURATION_TYPES MATCHES ";([^;]+)")
set(one_config "${CMAKE_MATCH_1}")
else()
set(one_config "${CMAKE_BUILD_TYPE}")
endif()
add_library(OneConfigOnly OBJECT "$<$<CONFIG:${one_config}>:${CMAKE_CURRENT_SOURCE_DIR}/iface_src.cpp>")
set_property(TARGET OneConfigOnly PROPERTY LINKER_LANGUAGE CXX)