Add support for .rs and .go source files
Change-Id: I917df75ceeebcd5671f4ea6ea4529e1bfd4cb900
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4464
Commit-Queue: Julie Hockett <juliehockett@google.com>
Reviewed-by: Brett Wilson <brettw@google.com>
diff --git a/tools/gn/ninja_binary_target_writer.cc b/tools/gn/ninja_binary_target_writer.cc
index 4cda834..fcbc938 100644
--- a/tools/gn/ninja_binary_target_writer.cc
+++ b/tools/gn/ninja_binary_target_writer.cc
@@ -33,6 +33,14 @@
Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
}
+bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
+ return Get(SOURCE_RS);
+}
+
+bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
+ return Get(SOURCE_GO);
+}
+
NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
std::ostream& out)
: NinjaTargetWriter(target, out),
diff --git a/tools/gn/ninja_binary_target_writer.h b/tools/gn/ninja_binary_target_writer.h
index d450ce2..1db9d81 100644
--- a/tools/gn/ninja_binary_target_writer.h
+++ b/tools/gn/ninja_binary_target_writer.h
@@ -32,6 +32,8 @@
}
bool CSourceUsed();
+ bool RustSourceUsed();
+ bool GoSourceUsed();
private:
bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
diff --git a/tools/gn/source_file_type.cc b/tools/gn/source_file_type.cc
index 48df7f8..fde1cca 100644
--- a/tools/gn/source_file_type.cc
+++ b/tools/gn/source_file_type.cc
@@ -28,6 +28,10 @@
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
index c43b432..d405497 100644
--- a/tools/gn/source_file_type.h
+++ b/tools/gn/source_file_type.h
@@ -22,6 +22,9 @@
SOURCE_O, // Object files can be inputs, too. Also counts .obj.
SOURCE_DEF,
+ SOURCE_RS,
+ SOURCE_GO,
+
// Must be last.
SOURCE_NUMTYPES,
};
diff --git a/tools/gn/tool.cc b/tools/gn/tool.cc
index ef4c94b..51e0bc2 100644
--- a/tools/gn/tool.cc
+++ b/tools/gn/tool.cc
@@ -274,6 +274,8 @@
case SOURCE_H:
case SOURCE_O:
case SOURCE_DEF:
+ case SOURCE_GO:
+ case SOURCE_RS:
return kToolNone;
default:
NOTREACHED();