diff options
author | Craig Scott <craig.scott@crascit.com> | 2021-03-24 05:35:49 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2021-03-24 05:35:49 (GMT) |
commit | f226a1678fe27817649ec536ad2923a98a7646a3 (patch) | |
tree | 4dcd4542800405850f46d1efafc7a9c260bc5afb /Source/cmComputeLinkInformation.cxx | |
parent | a6a52563955a5a42e1fec856d65479444ba5fbdc (diff) | |
parent | 88060f471766222c54a080900f73abf29586a6f4 (diff) | |
download | CMake-f226a1678fe27817649ec536ad2923a98a7646a3.zip CMake-f226a1678fe27817649ec536ad2923a98a7646a3.tar.gz CMake-f226a1678fe27817649ec536ad2923a98a7646a3.tar.bz2 |
Merge branch 'master' into nsis-branding-trim-position
Diffstat (limited to 'Source/cmComputeLinkInformation.cxx')
-rw-r--r-- | Source/cmComputeLinkInformation.cxx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 6225a4a..5473316 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -701,6 +701,10 @@ void cmComputeLinkInformation::AddItem(BT<std::string> const& item, this->AddTargetItem(lib, tgt); this->AddLibraryRuntimeInfo(lib.Value, tgt); + if (tgt && tgt->GetType() == cmStateEnums::SHARED_LIBRARY && + this->Target->IsDLLPlatform()) { + this->AddRuntimeDLL(tgt); + } } } else { // This is not a CMake target. Use the name given. @@ -728,6 +732,13 @@ void cmComputeLinkInformation::AddItem(BT<std::string> const& item, void cmComputeLinkInformation::AddSharedDepItem(BT<std::string> const& item, const cmGeneratorTarget* tgt) { + // Record dependencies on DLLs. + if (tgt && tgt->GetType() == cmStateEnums::SHARED_LIBRARY && + this->Target->IsDLLPlatform() && + this->SharedDependencyMode != SharedDepModeLink) { + this->AddRuntimeDLL(tgt); + } + // If dropping shared library dependencies, ignore them. if (this->SharedDependencyMode == SharedDepModeNone) { return; @@ -799,6 +810,14 @@ void cmComputeLinkInformation::AddSharedDepItem(BT<std::string> const& item, } } +void cmComputeLinkInformation::AddRuntimeDLL(cmGeneratorTarget const* tgt) +{ + if (std::find(this->RuntimeDLLs.begin(), this->RuntimeDLLs.end(), tgt) == + this->RuntimeDLLs.end()) { + this->RuntimeDLLs.emplace_back(tgt); + } +} + void cmComputeLinkInformation::ComputeLinkTypeInfo() { // Check whether archives may actually be shared libraries. |