mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Move supplementary outputs to SupplementaryOutputs in FrontendInputsAndOutputs.
This commit is contained in:
@@ -35,6 +35,7 @@ FrontendInputsAndOutputs::FrontendInputsAndOutputs(
|
||||
for (InputFile input : other.AllInputs)
|
||||
addInput(input);
|
||||
IsSingleThreadedWMO = other.IsSingleThreadedWMO;
|
||||
SupplementaryOutputs = other.SupplementaryOutputs;
|
||||
}
|
||||
|
||||
FrontendInputsAndOutputs &FrontendInputsAndOutputs::
|
||||
@@ -43,6 +44,7 @@ operator=(const FrontendInputsAndOutputs &other) {
|
||||
for (InputFile input : other.AllInputs)
|
||||
addInput(input);
|
||||
IsSingleThreadedWMO = other.IsSingleThreadedWMO;
|
||||
SupplementaryOutputs = other.SupplementaryOutputs;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -284,10 +286,12 @@ void FrontendInputsAndOutputs::forEachInputProducingAMainOutputFile(
|
||||
: hasPrimaryInputs() ? forEachPrimaryInput(fn) : forEachInput(fn);
|
||||
}
|
||||
|
||||
void FrontendInputsAndOutputs::setMainOutputs(
|
||||
ArrayRef<std::string> outputFiles) {
|
||||
assert(countOfInputsProducingMainOutputs() == outputFiles.size());
|
||||
if (hasPrimaryInputs()) {
|
||||
void FrontendInputsAndOutputs::setMainAndSupplementaryOutputs(
|
||||
ArrayRef<std::string> outputFiles,
|
||||
SupplementaryOutputPaths supplementaryOutputs) {
|
||||
if (outputFiles.empty())
|
||||
;
|
||||
else if (hasPrimaryInputs()) {
|
||||
unsigned i = 0;
|
||||
for (auto index : indices(AllInputs)) {
|
||||
InputFile &f = AllInputs[index];
|
||||
@@ -300,6 +304,7 @@ void FrontendInputsAndOutputs::setMainOutputs(
|
||||
for (auto i : indices(AllInputs))
|
||||
AllInputs[i].setOutputFilename(outputFiles[i]);
|
||||
}
|
||||
SupplementaryOutputs = supplementaryOutputs;
|
||||
}
|
||||
|
||||
std::vector<std::string> FrontendInputsAndOutputs::copyOutputFilenames() const {
|
||||
@@ -337,6 +342,12 @@ bool FrontendInputsAndOutputs::hasNamedOutputFile() const {
|
||||
|
||||
// Supplementary outputs
|
||||
|
||||
unsigned
|
||||
FrontendInputsAndOutputs::countOfFilesProducingSupplementaryOutput() const {
|
||||
assertMustNotBeMoreThanOnePrimaryInput();
|
||||
return 1; // will be extended when batch mode is implemented
|
||||
}
|
||||
|
||||
void FrontendInputsAndOutputs::forEachInputProducingSupplementaryOutput(
|
||||
llvm::function_ref<void(const InputFile &)> fn) const {
|
||||
if (hasPrimaryInputs())
|
||||
@@ -344,3 +355,30 @@ void FrontendInputsAndOutputs::forEachInputProducingSupplementaryOutput(
|
||||
else
|
||||
fn(firstInput());
|
||||
}
|
||||
|
||||
bool FrontendInputsAndOutputs::hasDependenciesPath() const {
|
||||
return !supplementaryOutputs().DependenciesFilePath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasReferenceDependenciesPath() const {
|
||||
return !supplementaryOutputs().ReferenceDependenciesFilePath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasObjCHeaderOutputPath() const {
|
||||
return !supplementaryOutputs().ObjCHeaderOutputPath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasLoadedModuleTracePath() const {
|
||||
return !supplementaryOutputs().LoadedModuleTracePath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasModuleOutputPath() const {
|
||||
return !supplementaryOutputs().ModuleOutputPath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasModuleDocOutputPath() const {
|
||||
return !supplementaryOutputs().ModuleDocOutputPath.empty();
|
||||
}
|
||||
bool FrontendInputsAndOutputs::hasTBDPath() const {
|
||||
return !supplementaryOutputs().TBDPath.empty();
|
||||
}
|
||||
|
||||
bool FrontendInputsAndOutputs::hasDependencyTrackerPath() const {
|
||||
return hasDependenciesPath() || hasReferenceDependenciesPath() ||
|
||||
hasLoadedModuleTracePath();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user