Cache source file type in SourceFile
This is in preparation for fixing bug 77. Reduces the number of calls to
GetSourceFileType() from ~2 million to ~500 thousand when generating Chromium's
build files.
BUG=77
R=brettw
Change-Id: I044e5b5ebf41ce70769ae3818ea5989206f44453
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4960
Reviewed-by: Brett Wilson <brettw@google.com>
Commit-Queue: Brett Wilson <brettw@google.com>
diff --git a/build/gen.py b/build/gen.py
index 874ecba..97e5adb 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -520,7 +520,6 @@
'tools/gn/setup.cc',
'tools/gn/source_dir.cc',
'tools/gn/source_file.cc',
- 'tools/gn/source_file_type.cc',
'tools/gn/standard_out.cc',
'tools/gn/string_utils.cc',
'tools/gn/substitution_list.cc',
diff --git a/tools/gn/c_tool.h b/tools/gn/c_tool.h
index 129a733..07dfcbe 100644
--- a/tools/gn/c_tool.h
+++ b/tools/gn/c_tool.h
@@ -12,7 +12,6 @@
#include "tools/gn/label.h"
#include "tools/gn/label_ptr.h"
#include "tools/gn/scope.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/substitution_list.h"
#include "tools/gn/substitution_pattern.h"
#include "tools/gn/tool.h"
diff --git a/tools/gn/compile_commands_writer.cc b/tools/gn/compile_commands_writer.cc
index e4a1a19..208952d 100644
--- a/tools/gn/compile_commands_writer.cc
+++ b/tools/gn/compile_commands_writer.cc
@@ -122,7 +122,7 @@
const CompileFlags& flags,
std::vector<OutputFile>& tool_outputs,
PathOutput& path_output,
- SourceFileType source_type,
+ SourceFile::Type source_type,
const char* tool_name,
EscapeOptions opts,
std::string* compile_commands) {
@@ -144,16 +144,16 @@
} else if (range.type == &CSubstitutionCFlags) {
command_out << flags.cflags;
} else if (range.type == &CSubstitutionCFlagsC) {
- if (source_type == SOURCE_C)
+ if (source_type == SourceFile::SOURCE_C)
command_out << flags.cflags_c;
} else if (range.type == &CSubstitutionCFlagsCc) {
- if (source_type == SOURCE_CPP)
+ if (source_type == SourceFile::SOURCE_CPP)
command_out << flags.cflags_cc;
} else if (range.type == &CSubstitutionCFlagsObjC) {
- if (source_type == SOURCE_M)
+ if (source_type == SourceFile::SOURCE_M)
command_out << flags.cflags_objc;
} else if (range.type == &CSubstitutionCFlagsObjCc) {
- if (source_type == SOURCE_MM)
+ if (source_type == SourceFile::SOURCE_MM)
command_out << flags.cflags_objcc;
} else if (range.type == &SubstitutionLabel ||
range.type == &SubstitutionLabelName ||
@@ -222,9 +222,11 @@
for (const auto& source : target->sources()) {
// If this source is not a C/C++/ObjC/ObjC++ source (not header) file,
// continue as it does not belong in the compilation database.
- SourceFileType source_type = GetSourceFileType(source);
- if (source_type != SOURCE_CPP && source_type != SOURCE_C &&
- source_type != SOURCE_M && source_type != SOURCE_MM)
+ SourceFile::Type source_type = source.type();
+ if (source_type != SourceFile::SOURCE_CPP &&
+ source_type != SourceFile::SOURCE_C &&
+ source_type != SourceFile::SOURCE_M &&
+ source_type != SourceFile::SOURCE_MM)
continue;
const char* tool_name = Tool::kToolNone;
@@ -322,4 +324,4 @@
VisitDeps(pair.ptr, visited);
}
}
-}
\ No newline at end of file
+}
diff --git a/tools/gn/general_tool.h b/tools/gn/general_tool.h
index b6e1af0..827a48d 100644
--- a/tools/gn/general_tool.h
+++ b/tools/gn/general_tool.h
@@ -11,7 +11,6 @@
#include "base/macros.h"
#include "tools/gn/label.h"
#include "tools/gn/label_ptr.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/substitution_list.h"
#include "tools/gn/substitution_pattern.h"
#include "tools/gn/tool.h"
diff --git a/tools/gn/header_checker.cc b/tools/gn/header_checker.cc
index 8407bd0..dca7302 100644
--- a/tools/gn/header_checker.cc
+++ b/tools/gn/header_checker.cc
@@ -18,7 +18,6 @@
#include "tools/gn/err.h"
#include "tools/gn/filesystem_utils.h"
#include "tools/gn/scheduler.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/target.h"
#include "tools/gn/trace.h"
#include "util/worker_pool.h"
@@ -152,9 +151,10 @@
for (const auto& file : files) {
// Only check C-like source files (RC files also have includes).
- SourceFileType type = GetSourceFileType(file.first);
- if (type != SOURCE_CPP && type != SOURCE_H && type != SOURCE_C &&
- type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC)
+ SourceFile::Type type = file.first.type();
+ if (type != SourceFile::SOURCE_CPP && type != SourceFile::SOURCE_H &&
+ type != SourceFile::SOURCE_C && type != SourceFile::SOURCE_M &&
+ type != SourceFile::SOURCE_MM && type != SourceFile::SOURCE_RC)
continue;
if (!check_generated_) {
diff --git a/tools/gn/ninja_binary_target_writer.cc b/tools/gn/ninja_binary_target_writer.cc
index aca3a24..bf3ee35 100644
--- a/tools/gn/ninja_binary_target_writer.cc
+++ b/tools/gn/ninja_binary_target_writer.cc
@@ -23,22 +23,23 @@
#include "tools/gn/ninja_utils.h"
#include "tools/gn/scheduler.h"
#include "tools/gn/settings.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/string_utils.h"
#include "tools/gn/substitution_writer.h"
#include "tools/gn/target.h"
bool NinjaBinaryTargetWriter::SourceFileTypeSet::CSourceUsed() {
- return Get(SOURCE_CPP) || Get(SOURCE_H) || Get(SOURCE_C) || Get(SOURCE_M) ||
- Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
+ return Get(SourceFile::SOURCE_CPP) || Get(SourceFile::SOURCE_H) ||
+ Get(SourceFile::SOURCE_C) || Get(SourceFile::SOURCE_M) ||
+ Get(SourceFile::SOURCE_MM) || Get(SourceFile::SOURCE_RC) ||
+ Get(SourceFile::SOURCE_S);
}
bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
- return Get(SOURCE_RS);
+ return Get(SourceFile::SOURCE_RS);
}
bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
- return Get(SOURCE_GO);
+ return Get(SourceFile::SOURCE_GO);
}
NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
@@ -49,10 +50,6 @@
NinjaBinaryTargetWriter::~NinjaBinaryTargetWriter() = default;
void NinjaBinaryTargetWriter::Run() {
- SourceFileTypeSet used_types;
- for (const auto& source : target_->sources())
- used_types.Set(GetSourceFileType(source));
-
NinjaCBinaryTargetWriter writer(target_, out_);
writer.Run();
}
diff --git a/tools/gn/ninja_binary_target_writer.h b/tools/gn/ninja_binary_target_writer.h
index 1db9d81..24d7ef1 100644
--- a/tools/gn/ninja_binary_target_writer.h
+++ b/tools/gn/ninja_binary_target_writer.h
@@ -23,11 +23,12 @@
class SourceFileTypeSet {
public:
SourceFileTypeSet() {
- memset(flags_, 0, sizeof(bool) * static_cast<int>(SOURCE_NUMTYPES));
+ memset(flags_, 0,
+ sizeof(bool) * static_cast<int>(SourceFile::SOURCE_NUMTYPES));
}
- void Set(SourceFileType type) { flags_[static_cast<int>(type)] = true; }
- bool Get(SourceFileType type) const {
+ void Set(SourceFile::Type type) { flags_[static_cast<int>(type)] = true; }
+ bool Get(SourceFile::Type type) const {
return flags_[static_cast<int>(type)];
}
@@ -36,7 +37,7 @@
bool GoSourceUsed();
private:
- bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
+ bool flags_[static_cast<int>(SourceFile::SOURCE_NUMTYPES)];
};
NinjaBinaryTargetWriter(const Target* target, std::ostream& out);
diff --git a/tools/gn/ninja_c_binary_target_writer.cc b/tools/gn/ninja_c_binary_target_writer.cc
index f6ffd15..4e8217b 100644
--- a/tools/gn/ninja_c_binary_target_writer.cc
+++ b/tools/gn/ninja_c_binary_target_writer.cc
@@ -24,7 +24,6 @@
#include "tools/gn/ninja_utils.h"
#include "tools/gn/scheduler.h"
#include "tools/gn/settings.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/string_utils.h"
#include "tools/gn/substitution_writer.h"
#include "tools/gn/target.h"
@@ -67,27 +66,27 @@
if (source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
obj_files->push_back(tool_outputs[0]);
- used_types.Set(GetSourceFileType(source));
+ used_types.Set(source.type());
}
// Add MSVC precompiled header object files. GCC .gch files are not object
// files so they are omitted.
if (source_set->config_values().has_precompiled_headers()) {
- if (used_types.Get(SOURCE_C)) {
+ if (used_types.Get(SourceFile::SOURCE_C)) {
const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCc);
if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
GetPCHOutputFiles(source_set, CTool::kCToolCc, &tool_outputs);
obj_files->Append(tool_outputs.begin(), tool_outputs.end());
}
}
- if (used_types.Get(SOURCE_CPP)) {
+ if (used_types.Get(SourceFile::SOURCE_CPP)) {
const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCxx);
if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
GetPCHOutputFiles(source_set, CTool::kCToolCxx, &tool_outputs);
obj_files->Append(tool_outputs.begin(), tool_outputs.end());
}
}
- if (used_types.Get(SOURCE_M)) {
+ if (used_types.Get(SourceFile::SOURCE_M)) {
const CTool* tool =
source_set->toolchain()->GetToolAsC(CTool::kCToolObjC);
if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
@@ -95,7 +94,7 @@
obj_files->Append(tool_outputs.begin(), tool_outputs.end());
}
}
- if (used_types.Get(SOURCE_MM)) {
+ if (used_types.Get(SourceFile::SOURCE_MM)) {
const CTool* tool =
source_set->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
@@ -119,7 +118,7 @@
// Figure out what source types are needed.
SourceFileTypeSet used_types;
for (const auto& source : target_->sources())
- used_types.Set(GetSourceFileType(source));
+ used_types.Set(source.type());
WriteCompilerVars(used_types);
@@ -235,31 +234,34 @@
target_->config_values().has_precompiled_headers();
EscapeOptions opts = GetFlagOptions();
- if (used_types.Get(SOURCE_S) || used_types.Get(SOURCE_ASM)) {
+ if (used_types.Get(SourceFile::SOURCE_S) ||
+ used_types.Get(SourceFile::SOURCE_ASM)) {
WriteOneFlag(target_, &CSubstitutionAsmFlags, false, Tool::kToolNone,
&ConfigValues::asmflags, opts, path_output_, out_);
}
- if (used_types.Get(SOURCE_C) || used_types.Get(SOURCE_CPP) ||
- used_types.Get(SOURCE_M) || used_types.Get(SOURCE_MM)) {
+ if (used_types.Get(SourceFile::SOURCE_C) ||
+ used_types.Get(SourceFile::SOURCE_CPP) ||
+ used_types.Get(SourceFile::SOURCE_M) ||
+ used_types.Get(SourceFile::SOURCE_MM)) {
WriteOneFlag(target_, &CSubstitutionCFlags, false, Tool::kToolNone,
&ConfigValues::cflags, opts, path_output_, out_);
}
- if (used_types.Get(SOURCE_C)) {
+ if (used_types.Get(SourceFile::SOURCE_C)) {
WriteOneFlag(target_, &CSubstitutionCFlagsC, has_precompiled_headers,
CTool::kCToolCc, &ConfigValues::cflags_c, opts, path_output_,
out_);
}
- if (used_types.Get(SOURCE_CPP)) {
+ if (used_types.Get(SourceFile::SOURCE_CPP)) {
WriteOneFlag(target_, &CSubstitutionCFlagsCc, has_precompiled_headers,
CTool::kCToolCxx, &ConfigValues::cflags_cc, opts, path_output_,
out_);
}
- if (used_types.Get(SOURCE_M)) {
+ if (used_types.Get(SourceFile::SOURCE_M)) {
WriteOneFlag(target_, &CSubstitutionCFlagsObjC, has_precompiled_headers,
CTool::kCToolObjC, &ConfigValues::cflags_objc, opts,
path_output_, out_);
}
- if (used_types.Get(SOURCE_MM)) {
+ if (used_types.Get(SourceFile::SOURCE_MM)) {
WriteOneFlag(target_, &CSubstitutionCFlagsObjCc, has_precompiled_headers,
CTool::kCToolObjCxx, &ConfigValues::cflags_objcc, opts,
path_output_, out_);
@@ -319,14 +321,14 @@
const CTool* tool_c = target_->toolchain()->GetToolAsC(CTool::kCToolCc);
if (tool_c && tool_c->precompiled_header_type() != CTool::PCH_NONE &&
- used_types.Get(SOURCE_C)) {
+ used_types.Get(SourceFile::SOURCE_C)) {
WritePCHCommand(&CSubstitutionCFlagsC, CTool::kCToolCc,
tool_c->precompiled_header_type(), input_dep,
order_only_deps, object_files, other_files);
}
const CTool* tool_cxx = target_->toolchain()->GetToolAsC(CTool::kCToolCxx);
if (tool_cxx && tool_cxx->precompiled_header_type() != CTool::PCH_NONE &&
- used_types.Get(SOURCE_CPP)) {
+ used_types.Get(SourceFile::SOURCE_CPP)) {
WritePCHCommand(&CSubstitutionCFlagsCc, CTool::kCToolCxx,
tool_cxx->precompiled_header_type(), input_dep,
order_only_deps, object_files, other_files);
@@ -334,7 +336,7 @@
const CTool* tool_objc = target_->toolchain()->GetToolAsC(CTool::kCToolObjC);
if (tool_objc && tool_objc->precompiled_header_type() == CTool::PCH_GCC &&
- used_types.Get(SOURCE_M)) {
+ used_types.Get(SourceFile::SOURCE_M)) {
WritePCHCommand(&CSubstitutionCFlagsObjC, CTool::kCToolObjC,
tool_objc->precompiled_header_type(), input_dep,
order_only_deps, object_files, other_files);
@@ -343,7 +345,7 @@
const CTool* tool_objcxx =
target_->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
if (tool_objcxx && tool_objcxx->precompiled_header_type() == CTool::PCH_GCC &&
- used_types.Get(SOURCE_MM)) {
+ used_types.Get(SourceFile::SOURCE_MM)) {
WritePCHCommand(&CSubstitutionCFlagsObjCc, CTool::kCToolObjCxx,
tool_objcxx->precompiled_header_type(), input_dep,
order_only_deps, object_files, other_files);
@@ -476,7 +478,7 @@
deps.resize(0);
const char* tool_name = Tool::kToolNone;
if (!target_->GetOutputFilesForSource(source, &tool_name, &tool_outputs)) {
- if (GetSourceFileType(source) == SOURCE_DEF)
+ if (source.type() == SourceFile::SOURCE_DEF)
other_files->push_back(source);
continue; // No output for this source.
}
@@ -597,7 +599,7 @@
const SourceFile* optional_def_file = nullptr;
if (!other_files.empty()) {
for (const SourceFile& src_file : other_files) {
- if (GetSourceFileType(src_file) == SOURCE_DEF) {
+ if (src_file.type() == SourceFile::SOURCE_DEF) {
optional_def_file = &src_file;
implicit_deps.push_back(
OutputFile(settings_->build_settings(), src_file));
diff --git a/tools/gn/source_file.cc b/tools/gn/source_file.cc
index 79c6eb0..7c860d4 100644
--- a/tools/gn/source_file.cc
+++ b/tools/gn/source_file.cc
@@ -21,18 +21,48 @@
DCHECK(!EndsWithSlash(s)) << s;
}
+SourceFile::Type GetSourceFileType(const std::string& file) {
+ base::StringPiece extension = FindExtension(&file);
+ if (extension == "cc" || extension == "cpp" || extension == "cxx")
+ return SourceFile::SOURCE_CPP;
+ if (extension == "h" || extension == "hpp" || extension == "hxx" ||
+ extension == "hh" || extension == "inc")
+ return SourceFile::SOURCE_H;
+ if (extension == "c")
+ return SourceFile::SOURCE_C;
+ if (extension == "m")
+ return SourceFile::SOURCE_M;
+ if (extension == "mm")
+ return SourceFile::SOURCE_MM;
+ if (extension == "rc")
+ return SourceFile::SOURCE_RC;
+ if (extension == "S" || extension == "s" || extension == "asm")
+ return SourceFile::SOURCE_S;
+ if (extension == "o" || extension == "obj")
+ return SourceFile::SOURCE_O;
+ if (extension == "def")
+ return SourceFile::SOURCE_DEF;
+ if (extension == "rs")
+ return SourceFile::SOURCE_RS;
+ if (extension == "go")
+ return SourceFile::SOURCE_GO;
+
+ return SourceFile::SOURCE_UNKNOWN;
+}
+
} // namespace
-SourceFile::SourceFile() = default;
+SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
SourceFile::SourceFile(const base::StringPiece& p)
- : value_(p.data(), p.size()) {
+ : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
DCHECK(!value_.empty());
AssertValueSourceFileString(value_);
NormalizePath(&value_);
}
-SourceFile::SourceFile(SwapIn, std::string* value) {
+SourceFile::SourceFile(SwapIn, std::string* value)
+ : type_(GetSourceFileType(*value)) {
value_.swap(*value);
DCHECK(!value_.empty());
AssertValueSourceFileString(value_);
diff --git a/tools/gn/source_file.h b/tools/gn/source_file.h
index f033987..bcf5f42 100644
--- a/tools/gn/source_file.h
+++ b/tools/gn/source_file.h
@@ -20,6 +20,28 @@
// ends in one.
class SourceFile {
public:
+ // This should be sequential integers starting from 0 so they can be used as
+ // array indices.
+ enum Type {
+ SOURCE_UNKNOWN = 0,
+ SOURCE_ASM,
+ SOURCE_C,
+ SOURCE_CPP,
+ SOURCE_H,
+ SOURCE_M,
+ SOURCE_MM,
+ SOURCE_S,
+ SOURCE_RC,
+ SOURCE_O, // Object files can be inputs, too. Also counts .obj.
+ SOURCE_DEF,
+
+ SOURCE_RS,
+ SOURCE_GO,
+
+ // Must be last.
+ SOURCE_NUMTYPES,
+ };
+
enum SwapIn { SWAP_IN };
SourceFile();
@@ -36,6 +58,7 @@
bool is_null() const { return value_.empty(); }
const std::string& value() const { return value_; }
+ Type type() const { return type_; }
// Returns everything after the last slash.
std::string GetName() const;
@@ -80,6 +103,7 @@
friend class SourceDir;
std::string value_;
+ Type type_;
// Copy & assign supported.
};
diff --git a/tools/gn/source_file_type.cc b/tools/gn/source_file_type.cc
deleted file mode 100644
index fde1cca..0000000
--- a/tools/gn/source_file_type.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "tools/gn/source_file_type.h"
-
-#include "tools/gn/filesystem_utils.h"
-#include "tools/gn/source_file.h"
-
-SourceFileType GetSourceFileType(const SourceFile& file) {
- base::StringPiece extension = FindExtension(&file.value());
- if (extension == "cc" || extension == "cpp" || extension == "cxx")
- return SOURCE_CPP;
- if (extension == "h" || extension == "hpp" || extension == "hxx" ||
- extension == "hh")
- return SOURCE_H;
- if (extension == "c")
- return SOURCE_C;
- if (extension == "m")
- return SOURCE_M;
- if (extension == "mm")
- return SOURCE_MM;
- if (extension == "rc")
- return SOURCE_RC;
- if (extension == "S" || extension == "s" || extension == "asm")
- return SOURCE_S;
- if (extension == "o" || extension == "obj")
- return SOURCE_O;
- if (extension == "def")
- return SOURCE_DEF;
- if (extension == "rs")
- return SOURCE_RS;
- if (extension == "go")
- return SOURCE_GO;
-
- return SOURCE_UNKNOWN;
-}
diff --git a/tools/gn/source_file_type.h b/tools/gn/source_file_type.h
deleted file mode 100644
index d405497..0000000
--- a/tools/gn/source_file_type.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef TOOLS_GN_SOURCE_FILE_TYPE_H_
-#define TOOLS_GN_SOURCE_FILE_TYPE_H_
-
-class SourceFile;
-
-// This should be sequential integers starting from 0 so they can be used as
-// array indices.
-enum SourceFileType {
- SOURCE_UNKNOWN = 0,
- SOURCE_ASM,
- SOURCE_C,
- SOURCE_CPP,
- SOURCE_H,
- SOURCE_M,
- SOURCE_MM,
- SOURCE_S,
- SOURCE_RC,
- SOURCE_O, // Object files can be inputs, too. Also counts .obj.
- SOURCE_DEF,
-
- SOURCE_RS,
- SOURCE_GO,
-
- // Must be last.
- SOURCE_NUMTYPES,
-};
-
-SourceFileType GetSourceFileType(const SourceFile& file);
-
-#endif // TOOLS_GN_SOURCE_FILE_TYPE_H_
diff --git a/tools/gn/target.cc b/tools/gn/target.cc
index 6272b44..1afd22b 100644
--- a/tools/gn/target.cc
+++ b/tools/gn/target.cc
@@ -16,7 +16,6 @@
#include "tools/gn/filesystem_utils.h"
#include "tools/gn/functions.h"
#include "tools/gn/scheduler.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/substitution_writer.h"
#include "tools/gn/tool.h"
#include "tools/gn/toolchain.h"
@@ -487,10 +486,10 @@
outputs->clear();
*computed_tool_type = Tool::kToolNone;
- SourceFileType file_type = GetSourceFileType(source);
- if (file_type == SOURCE_UNKNOWN)
+ SourceFile::Type file_type = source.type();
+ if (file_type == SourceFile::SOURCE_UNKNOWN)
return false;
- if (file_type == SOURCE_O) {
+ if (file_type == SourceFile::SOURCE_O) {
// Object files just get passed to the output and not compiled.
outputs->push_back(OutputFile(settings()->build_settings(), source));
return true;
diff --git a/tools/gn/tool.cc b/tools/gn/tool.cc
index 7a06b03..b040ac2 100644
--- a/tools/gn/tool.cc
+++ b/tools/gn/tool.cc
@@ -261,27 +261,27 @@
}
// static
-const char* Tool::GetToolTypeForSourceType(SourceFileType type) {
+const char* Tool::GetToolTypeForSourceType(SourceFile::Type type) {
switch (type) {
- case SOURCE_C:
+ case SourceFile::SOURCE_C:
return CTool::kCToolCc;
- case SOURCE_CPP:
+ case SourceFile::SOURCE_CPP:
return CTool::kCToolCxx;
- case SOURCE_M:
+ case SourceFile::SOURCE_M:
return CTool::kCToolObjC;
- case SOURCE_MM:
+ case SourceFile::SOURCE_MM:
return CTool::kCToolObjCxx;
- case SOURCE_ASM:
- case SOURCE_S:
+ case SourceFile::SOURCE_ASM:
+ case SourceFile::SOURCE_S:
return CTool::kCToolAsm;
- case SOURCE_RC:
+ case SourceFile::SOURCE_RC:
return CTool::kCToolRc;
- case SOURCE_UNKNOWN:
- case SOURCE_H:
- case SOURCE_O:
- case SOURCE_DEF:
- case SOURCE_GO:
- case SOURCE_RS:
+ case SourceFile::SOURCE_UNKNOWN:
+ case SourceFile::SOURCE_H:
+ case SourceFile::SOURCE_O:
+ case SourceFile::SOURCE_DEF:
+ case SourceFile::SOURCE_GO:
+ case SourceFile::SOURCE_RS:
return kToolNone;
default:
NOTREACHED();
diff --git a/tools/gn/tool.h b/tools/gn/tool.h
index ec2eb94..a6f177d 100644
--- a/tools/gn/tool.h
+++ b/tools/gn/tool.h
@@ -12,7 +12,7 @@
#include "tools/gn/label.h"
#include "tools/gn/label_ptr.h"
#include "tools/gn/scope.h"
-#include "tools/gn/source_file_type.h"
+#include "tools/gn/source_file.h"
#include "tools/gn/substitution_list.h"
#include "tools/gn/substitution_pattern.h"
@@ -171,7 +171,7 @@
Toolchain* toolchain,
Err* err);
- static const char* GetToolTypeForSourceType(SourceFileType type);
+ static const char* GetToolTypeForSourceType(SourceFile::Type type);
static const char* GetToolTypeForTargetFinalOutput(const Target* target);
protected:
diff --git a/tools/gn/toolchain.cc b/tools/gn/toolchain.cc
index b718052..0d6cbaf 100644
--- a/tools/gn/toolchain.cc
+++ b/tools/gn/toolchain.cc
@@ -88,16 +88,16 @@
setup_complete_ = true;
}
-const Tool* Toolchain::GetToolForSourceType(SourceFileType type) const {
+const Tool* Toolchain::GetToolForSourceType(SourceFile::Type type) const {
return GetTool(Tool::GetToolTypeForSourceType(type));
}
-const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFileType type) const {
+const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFile::Type type) const {
return GetToolAsC(Tool::GetToolTypeForSourceType(type));
}
const GeneralTool* Toolchain::GetToolForSourceTypeAsGeneral(
- SourceFileType type) const {
+ SourceFile::Type type) const {
return GetToolAsGeneral(Tool::GetToolTypeForSourceType(type));
}
diff --git a/tools/gn/toolchain.h b/tools/gn/toolchain.h
index e36475d..cc93de5 100644
--- a/tools/gn/toolchain.h
+++ b/tools/gn/toolchain.h
@@ -12,7 +12,6 @@
#include "tools/gn/item.h"
#include "tools/gn/label_ptr.h"
#include "tools/gn/scope.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/substitution_type.h"
#include "tools/gn/tool.h"
#include "tools/gn/value.h"
@@ -88,9 +87,9 @@
}
// Returns the tool for compiling the given source file type.
- const Tool* GetToolForSourceType(SourceFileType type) const;
- const CTool* GetToolForSourceTypeAsC(SourceFileType type) const;
- const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFileType type) const;
+ const Tool* GetToolForSourceType(SourceFile::Type type) const;
+ const CTool* GetToolForSourceTypeAsC(SourceFile::Type type) const;
+ const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFile::Type type) const;
// Returns the tool that produces the final output for the given target type.
// This isn't necessarily the tool you would expect. For copy target, this
diff --git a/tools/gn/visual_studio_writer.cc b/tools/gn/visual_studio_writer.cc
index f804b44..9dbd4b3 100644
--- a/tools/gn/visual_studio_writer.cc
+++ b/tools/gn/visual_studio_writer.cc
@@ -24,7 +24,6 @@
#include "tools/gn/label_pattern.h"
#include "tools/gn/parse_tree.h"
#include "tools/gn/path_output.h"
-#include "tools/gn/source_file_type.h"
#include "tools/gn/standard_out.h"
#include "tools/gn/target.h"
#include "tools/gn/variables.h"