/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmRuntimeDependencyArchive_h #define cmRuntimeDependencyArchive_h #include "cmBinUtilsLinker.h" #include "cmsys/RegularExpression.hxx" #include #include // IWYU pragma: keep #include #include #include class cmCommand; class cmMakefile; class cmRuntimeDependencyArchive { public: explicit cmRuntimeDependencyArchive( cmCommand* command, std::vector searchDirectories, std::string bundleExecutable, const std::vector& preIncludeRegexes, const std::vector& preExcludeRegexes, const std::vector& postIncludeRegexes, const std::vector& postExcludeRegexes); bool Prepare(); bool GetRuntimeDependencies(const std::vector& executables, const std::vector& libraries, const std::vector& modules); void SetError(const std::string& e); std::string GetBundleExecutable(); const std::vector& GetSearchDirectories(); std::string GetGetRuntimeDependenciesTool(); bool GetGetRuntimeDependenciesCommand(const std::string& search, std::vector& command); bool IsPreExcluded(const std::string& name); bool IsPostExcluded(const std::string& name); void AddResolvedPath(const std::string& name, const std::string& path, bool& unique); void AddUnresolvedPath(const std::string& name); cmMakefile* GetMakefile(); const std::map>& GetResolvedPaths(); const std::set& GetUnresolvedPaths(); private: cmCommand* Command; std::unique_ptr Linker; std::string GetRuntimeDependenciesTool; std::vector GetRuntimeDependenciesCommand; std::vector SearchDirectories; std::string BundleExecutable; std::vector PreIncludeRegexes; std::vector PreExcludeRegexes; std::vector PostIncludeRegexes; std::vector PostExcludeRegexes; std::map> ResolvedPaths; std::set UnresolvedPaths; }; #endif // cmRuntimeDependencyArchive_h