mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
37 lines
937 B
C++
37 lines
937 B
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file LICENSE.rst or https://cmake.org/licensing for details. */
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "cmBinUtilsLinker.h"
|
|
#include "cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h"
|
|
|
|
class cmRuntimeDependencyArchive;
|
|
|
|
class cmBinUtilsWindowsPELinker : public cmBinUtilsLinker
|
|
{
|
|
public:
|
|
cmBinUtilsWindowsPELinker(cmRuntimeDependencyArchive* archive);
|
|
|
|
bool Prepare() override;
|
|
|
|
bool ScanDependencies(std::string const& file, cm::TargetType type) override;
|
|
|
|
private:
|
|
std::unique_ptr<cmBinUtilsWindowsPEGetRuntimeDependenciesTool> Tool;
|
|
|
|
struct Dependency
|
|
{
|
|
Dependency() = default;
|
|
Dependency(std::string casedName);
|
|
std::string CasedName;
|
|
std::string LowerName;
|
|
};
|
|
|
|
bool ResolveDependency(Dependency const& lib, std::string const& origin,
|
|
Dependency& path, bool& resolved);
|
|
};
|