diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2021-04-14 14:43:30 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2021-06-04 12:52:02 (GMT) |
commit | ed3633d88cc5faa6fd7eb68fdd774d6d1f9cfdc9 (patch) | |
tree | b99345e45c9645c178601669ecd5d13c18b8ab1e /Source/cmInstallRuntimeDependencySetGenerator.h | |
parent | f2617cf8e6aca6ec0f8c7df6999c1f713c6d7474 (diff) | |
download | CMake-ed3633d88cc5faa6fd7eb68fdd774d6d1f9cfdc9.zip CMake-ed3633d88cc5faa6fd7eb68fdd774d6d1f9cfdc9.tar.gz CMake-ed3633d88cc5faa6fd7eb68fdd774d6d1f9cfdc9.tar.bz2 |
install(TARGETS): Add RUNTIME_DEPENDENCIES option
Diffstat (limited to 'Source/cmInstallRuntimeDependencySetGenerator.h')
-rw-r--r-- | Source/cmInstallRuntimeDependencySetGenerator.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Source/cmInstallRuntimeDependencySetGenerator.h b/Source/cmInstallRuntimeDependencySetGenerator.h new file mode 100644 index 0000000..8e98b57 --- /dev/null +++ b/Source/cmInstallRuntimeDependencySetGenerator.h @@ -0,0 +1,74 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#pragma once + +#include <iosfwd> +#include <string> +#include <vector> + +#include "cmInstallGenerator.h" +#include "cmListFileCache.h" +#include "cmScriptGenerator.h" + +class cmInstallRuntimeDependencySet; +class cmLocalGenerator; + +class cmInstallRuntimeDependencySetGenerator : public cmInstallGenerator +{ +public: + enum class DependencyType + { + Library, + Framework, + }; + + cmInstallRuntimeDependencySetGenerator( + DependencyType type, cmInstallRuntimeDependencySet* dependencySet, + std::vector<std::string> installRPaths, bool noInstallRPath, + std::string installNameDir, bool noInstallName, const char* depsVar, + const char* rpathPrefix, const char* tmpVarPrefix, std::string destination, + std::vector<std::string> const& configurations, std::string component, + std::string permissions, MessageLevel message, bool exclude_from_all, + cmListFileBacktrace backtrace); + + bool Compute(cmLocalGenerator* lg) override; + + DependencyType GetDependencyType() const { return this->Type; } + + cmInstallRuntimeDependencySet* GetRuntimeDependencySet() const + { + return this->DependencySet; + } + + std::string GetDestination(std::string const& config) const; + +protected: + void GenerateScriptForConfig(std::ostream& os, const std::string& config, + Indent indent) override; + +private: + DependencyType Type; + cmInstallRuntimeDependencySet* DependencySet; + std::vector<std::string> InstallRPaths; + bool NoInstallRPath; + std::string InstallNameDir; + bool NoInstallName; + std::string Permissions; + const char* DepsVar; + const char* RPathPrefix; + const char* TmpVarPrefix; + cmLocalGenerator* LocalGenerator = nullptr; + + void GenerateAppleLibraryScript( + std::ostream& os, const std::string& config, + const std::vector<std::string>& evaluatedRPaths, Indent indent); + void GenerateAppleFrameworkScript( + std::ostream& os, const std::string& config, + const std::vector<std::string>& evaluatedRPaths, Indent indent); + void GenerateInstallNameFixup( + std::ostream& os, const std::string& config, + const std::vector<std::string>& evaluatedRPaths, + const std::string& filename, const std::string& depName, Indent indent); + void GenerateStripFixup(std::ostream& os, const std::string& config, + const std::string& depName, Indent indent); +}; |