CMake/Source/cmBinUtilsWindowsPELinker.h
Brad King 71fbebd1dc IWYU: Fix handling of <memory> standard header
An old workaround for `std::allocator_traits<>::value_type` lints from
IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`.
Convert the workaround to use the same approach we already use for a
workaround of `std::__decay_and_strip<>::::__type` lints.  Then update
the `<memory>` inclusions to follow the now-correct IWYU lints.
2019-07-10 11:48:56 -04:00

34 lines
949 B
C++

/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmBinUtilsWindowsPELinker_h
#define cmBinUtilsWindowsPELinker_h
#include "cmBinUtilsLinker.h"
#include "cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h"
#include "cmStateTypes.h"
#include <memory>
#include <string>
class cmRuntimeDependencyArchive;
class cmBinUtilsWindowsPELinker : public cmBinUtilsLinker
{
public:
cmBinUtilsWindowsPELinker(cmRuntimeDependencyArchive* archive);
bool Prepare() override;
bool ScanDependencies(std::string const& file,
cmStateEnums::TargetType type) override;
private:
std::unique_ptr<cmBinUtilsWindowsPEGetRuntimeDependenciesTool> Tool;
bool ResolveDependency(std::string const& name, std::string const& origin,
std::string& path, bool& resolved);
};
#endif // cmBinUtilsWindowsPELinker_h