/src/CMake/Source/cmBinUtilsWindowsPELinker.h
Line | Count | Source |
1 | | /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
2 | | file LICENSE.rst or https://cmake.org/licensing for details. */ |
3 | | |
4 | | #pragma once |
5 | | |
6 | | #include <memory> |
7 | | #include <string> |
8 | | |
9 | | #include "cmBinUtilsLinker.h" |
10 | | #include "cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h" |
11 | | |
12 | | class cmRuntimeDependencyArchive; |
13 | | |
14 | | class cmBinUtilsWindowsPELinker : public cmBinUtilsLinker |
15 | | { |
16 | | public: |
17 | | cmBinUtilsWindowsPELinker(cmRuntimeDependencyArchive* archive); |
18 | | |
19 | | bool Prepare() override; |
20 | | |
21 | | bool ScanDependencies(std::string const& file, cm::TargetType type) override; |
22 | | |
23 | | private: |
24 | | std::unique_ptr<cmBinUtilsWindowsPEGetRuntimeDependenciesTool> Tool; |
25 | | |
26 | | struct Dependency |
27 | | { |
28 | 0 | Dependency() = default; |
29 | | Dependency(std::string casedName); |
30 | | std::string CasedName; |
31 | | std::string LowerName; |
32 | | }; |
33 | | |
34 | | bool ResolveDependency(Dependency const& lib, std::string const& origin, |
35 | | Dependency& path, bool& resolved); |
36 | | }; |