Separate dependency tracking from Make-style .d file generation.

This refactoring is groundwork for saving the cross-module dependencies
in the swiftdeps files as well, so that we know to rebuild files if an
outside file changes (such as a bridging header, another framework's
headers, or another framework's swiftmodule).

Part of rdar://problem/19270920

Swift SVN r24258
This commit is contained in:
Jordan Rose
2015-01-08 03:02:17 +00:00
parent c87a359107
commit 1d3bdfae7f
6 changed files with 62 additions and 111 deletions

View File

@@ -1,34 +0,0 @@
//===- DependencyFileGenerator.h - .d file generation -----------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_FRONTEND_DEPENDENCYFILEGENERATOR_H
#define SWIFT_FRONTEND_DEPENDENCYFILEGENERATOR_H
#include "swift/AST/ModuleLoader.h"
#include "swift/Basic/LLVM.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringSet.h"
#include <vector>
namespace swift {
class DependencyFileGenerator : public DependencyTracker {
std::vector<std::string> targets;
llvm::SetVector<std::string, std::vector<std::string>> paths;
public:
virtual void addDependency(StringRef file) override;
void addTarget(StringRef targetName);
void writeToStream(llvm::raw_ostream &os) const;
};
}
#endif