1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
6 #include "cmConfigure.h" // IWYU pragma: keep
13 #include "cmBinUtilsLinker.h"
14 #include "cmBinUtilsLinuxELFGetRuntimeDependenciesTool.h"
15 #include "cmLDConfigTool.h"
16 #include "cmStateTypes.h"
18 class cmRuntimeDependencyArchive;
20 class cmBinUtilsLinuxELFLinker : public cmBinUtilsLinker
23 cmBinUtilsLinuxELFLinker(cmRuntimeDependencyArchive* archive);
25 bool Prepare() override;
27 bool ScanDependencies(std::string const& file,
28 cmStateEnums::TargetType type) override;
31 std::unique_ptr<cmBinUtilsLinuxELFGetRuntimeDependenciesTool> Tool;
32 std::unique_ptr<cmLDConfigTool> LDConfigTool;
33 bool HaveLDConfigPaths = false;
34 std::vector<std::string> LDConfigPaths;
35 std::uint16_t Machine = 0;
37 bool ScanDependencies(std::string const& file,
38 std::vector<std::string> const& parentRpaths);
40 bool ResolveDependency(std::string const& name,
41 std::vector<std::string> const& searchPaths,
42 std::string& path, bool& resolved);
44 bool GetLDConfigPaths();