mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-30 02:59:22 -05:00
Merge topic 'link-libs-config-case'
2af18704fdMerge branch 'backport-3.16-link-libs-config-case'3f976bf201target_link_libraries: Fix regression in case of $<CONFIG> genex5a95b5e091target_link_libraries: Fix regression in case of $<CONFIG> genex Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4544
This commit is contained in:
@@ -2432,11 +2432,9 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (std::string const& config : configsList) {
|
for (std::string const& config : configsList) {
|
||||||
const std::string buildType = cmSystemTools::UpperCase(config);
|
|
||||||
|
|
||||||
// FIXME: Refactor collection of sources to not evaluate object libraries.
|
// FIXME: Refactor collection of sources to not evaluate object libraries.
|
||||||
std::vector<cmSourceFile*> sources;
|
std::vector<cmSourceFile*> sources;
|
||||||
target->GetSourceFiles(sources, buildType);
|
target->GetSourceFiles(sources, config);
|
||||||
|
|
||||||
for (const std::string& lang : { "C", "CXX", "OBJC", "OBJCXX" }) {
|
for (const std::string& lang : { "C", "CXX", "OBJC", "OBJCXX" }) {
|
||||||
auto langSources = std::count_if(
|
auto langSources = std::count_if(
|
||||||
@@ -2605,15 +2603,13 @@ void cmLocalGenerator::AddUnityBuild(cmGeneratorTarget* target)
|
|||||||
config = this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
|
config = this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string buildType = cmSystemTools::UpperCase(config);
|
|
||||||
|
|
||||||
std::string filename_base =
|
std::string filename_base =
|
||||||
cmStrCat(this->GetCurrentBinaryDirectory(), "/CMakeFiles/",
|
cmStrCat(this->GetCurrentBinaryDirectory(), "/CMakeFiles/",
|
||||||
target->GetName(), ".dir/Unity/");
|
target->GetName(), ".dir/Unity/");
|
||||||
|
|
||||||
// FIXME: Refactor collection of sources to not evaluate object libraries.
|
// FIXME: Refactor collection of sources to not evaluate object libraries.
|
||||||
std::vector<cmSourceFile*> sources;
|
std::vector<cmSourceFile*> sources;
|
||||||
target->GetSourceFiles(sources, buildType);
|
target->GetSourceFiles(sources, config);
|
||||||
|
|
||||||
auto batchSizeString = target->GetProperty("UNITY_BUILD_BATCH_SIZE");
|
auto batchSizeString = target->GetProperty("UNITY_BUILD_BATCH_SIZE");
|
||||||
const size_t unityBatchSize =
|
const size_t unityBatchSize =
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
^CMake Error at ConfigCase.cmake:[0-9]+ \(add_library\):
|
||||||
|
Target "impl" links to target "config::impl-Debug" but the target was not
|
||||||
|
found. Perhaps a find_package\(\) call is missing for an IMPORTED target, or
|
||||||
|
an ALIAS target is missing\?
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:[0-9]+ \(include\)
|
||||||
|
+
|
||||||
|
CMake Error at ConfigCase.cmake:[0-9]+ \(add_library\):
|
||||||
|
Target "impl" links to target "config::iface-Debug" but the target was not
|
||||||
|
found. Perhaps a find_package\(\) call is missing for an IMPORTED target, or
|
||||||
|
an ALIAS target is missing\?
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:[0-9]+ \(include\)
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
cmake_policy(VERSION 3.15)
|
||||||
|
enable_language(C)
|
||||||
|
add_library(iface INTERFACE)
|
||||||
|
target_link_libraries(iface INTERFACE "config::iface-$<CONFIG>")
|
||||||
|
add_library(impl empty.c)
|
||||||
|
target_link_libraries(impl PRIVATE "config::impl-$<CONFIG>" iface)
|
||||||
@@ -1,5 +1,13 @@
|
|||||||
include(RunCMake)
|
include(RunCMake)
|
||||||
|
|
||||||
|
if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
set(RunCMake_TEST_OPTIONS -DCMAKE_CONFIGURATION_TYPES=Debug)
|
||||||
|
else()
|
||||||
|
set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
|
||||||
|
endif()
|
||||||
|
run_cmake(ConfigCase)
|
||||||
|
unset(RunCMake_TEST_OPTIONS)
|
||||||
|
|
||||||
run_cmake(CMP0023-WARN)
|
run_cmake(CMP0023-WARN)
|
||||||
run_cmake(CMP0023-NEW)
|
run_cmake(CMP0023-NEW)
|
||||||
run_cmake(CMP0023-WARN-2)
|
run_cmake(CMP0023-WARN-2)
|
||||||
|
|||||||
Reference in New Issue
Block a user