resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmBinUtilsWindowsPELinker.h
1 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2    file Copyright.txt 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 #include "cmStateTypes.h"
12
13 class cmRuntimeDependencyArchive;
14
15 class cmBinUtilsWindowsPELinker : public cmBinUtilsLinker
16 {
17 public:
18   cmBinUtilsWindowsPELinker(cmRuntimeDependencyArchive* archive);
19
20   bool Prepare() override;
21
22   bool ScanDependencies(std::string const& file,
23                         cmStateEnums::TargetType type) override;
24
25 private:
26   std::unique_ptr<cmBinUtilsWindowsPEGetRuntimeDependenciesTool> Tool;
27
28   bool ResolveDependency(std::string const& name, std::string const& origin,
29                          std::string& path, bool& resolved);
30 };