mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-02 04:09:33 -05:00
@@ -1567,6 +1567,15 @@ bool cmGlobalGenerator::AddAutomaticSources()
|
|||||||
lg->AddPchDependencies(gt);
|
lg->AddPchDependencies(gt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// The above transformations may have changed the classification of sources.
|
||||||
|
// Clear the source list and classification cache (KindedSources) of all
|
||||||
|
// targets so that it will be recomputed correctly by the generators later
|
||||||
|
// now that the above transformations are done for all targets.
|
||||||
|
for (cmLocalGenerator* lg : this->LocalGenerators) {
|
||||||
|
for (cmGeneratorTarget* gt : lg->GetGeneratorTargets()) {
|
||||||
|
gt->ClearSourcesCache();
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2307,6 +2307,7 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target)
|
|||||||
}
|
}
|
||||||
const std::string buildType = cmSystemTools::UpperCase(config);
|
const std::string buildType = cmSystemTools::UpperCase(config);
|
||||||
|
|
||||||
|
// 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, buildType);
|
||||||
|
|
||||||
@@ -2469,6 +2470,7 @@ void cmLocalGenerator::AddUnityBuild(cmGeneratorTarget* target)
|
|||||||
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.
|
||||||
std::vector<cmSourceFile*> sources;
|
std::vector<cmSourceFile*> sources;
|
||||||
target->GetSourceFiles(sources, buildType);
|
target->GetSourceFiles(sources, buildType);
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,10 @@
|
|||||||
Call Stack \(most recent call first\):
|
Call Stack \(most recent call first\):
|
||||||
CMakeLists.txt:[0-9]+ \(include\)
|
CMakeLists.txt:[0-9]+ \(include\)
|
||||||
+
|
+
|
||||||
|
CMake Error at OwnSources.cmake:[0-9]+ \(add_library\):
|
||||||
|
The SOURCES of "A" use a generator expression that depends on the SOURCES
|
||||||
|
themselves.
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:[0-9]+ \(include\)
|
||||||
|
+
|
||||||
CMake Generate step failed\. Build files cannot be regenerated correctly\.$
|
CMake Generate step failed\. Build files cannot be regenerated correctly\.$
|
||||||
|
|||||||
@@ -21,3 +21,4 @@ function(run_test name)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
run_test(unitybuild_runtest)
|
run_test(unitybuild_runtest)
|
||||||
|
run_test(unitybuild_object_library)
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
project(unitybuild_object_library C)
|
||||||
|
|
||||||
|
set(CMAKE_UNITY_BUILD ON) # This tests that the variable works in addition to the property
|
||||||
|
|
||||||
|
add_library(lib OBJECT func.c)
|
||||||
|
|
||||||
|
add_library(other-lib STATIC func.c)
|
||||||
|
|
||||||
|
add_executable(main main.c)
|
||||||
|
target_link_libraries(main PRIVATE lib)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_test(NAME main COMMAND main)
|
||||||
Reference in New Issue
Block a user