You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
3 years ago
|
/* 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;
|
||
|
};
|