| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <functional>
- #include <iosfwd>
- #include <string>
- #include <vector>
- #include "cmDepends.h"
- class cmLocalUnixMakefileGenerator3;
- /** \class cmDepends
- * \brief Dependencies files manager.
- *
- * This class is responsible for maintaining a compiler_depends.make file in
- * the build tree corresponding to an object file.
- */
- class cmDependsCompiler
- {
- public:
- cmDependsCompiler() = default;
- ~cmDependsCompiler() = default;
- /** should this be verbose in its output */
- void SetVerbose(bool verb) { this->Verbose = verb; }
- /** Set the local generator for the directory in which we are
- scanning dependencies. This is not a full local generator; it
- has been setup to do relative path conversions for the current
- directory. */
- void SetLocalGenerator(cmLocalUnixMakefileGenerator3* lg)
- {
- this->LocalGenerator = lg;
- }
- /** Read dependencies for the target file. Return true if
- dependencies didn't changed and false if not.
- Up-to-date Dependencies will be stored in deps. */
- bool CheckDependencies(
- const std::string& internalDepFile,
- const std::vector<std::string>& depFiles,
- cmDepends::DependencyMap& dependencies,
- const std::function<bool(const std::string&)>& isValidPath);
- /** Write dependencies for the target file. */
- void WriteDependencies(const cmDepends::DependencyMap& dependencies,
- std::ostream& makeDepends,
- std::ostream& internalDepends);
- /** Clear dependencies for the target so they will be regenerated. */
- void ClearDependencies(const std::vector<std::string>& depFiles);
- private:
- bool Verbose = false;
- cmLocalUnixMakefileGenerator3* LocalGenerator = nullptr;
- };
|