Handle hpp11 file extension.

Some projects use a `hpp11` extension to signify a c++11 header file.
Recognize the extension in gn.

Bug: 42440217
Change-Id: I16e45b88c904fb40b9e1b6a89f352571c0e44866
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18780
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Petr Hosek <phosek@google.com>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
diff --git a/src/gn/source_file.cc b/src/gn/source_file.cc
index 319adde..3a9198b 100644
--- a/src/gn/source_file.cc
+++ b/src/gn/source_file.cc
@@ -101,6 +101,9 @@
   }
 
   // Other cases
+  if (EndsWithExtension(file, "hpp11"))
+    return SourceFile::SOURCE_H;
+
   if (EndsWithExtension(file, "swift"))
     return SourceFile::SOURCE_SWIFT;
 
diff --git a/src/gn/source_file_unittest.cc b/src/gn/source_file_unittest.cc
index 6c409b1..998fae4 100644
--- a/src/gn/source_file_unittest.cc
+++ b/src/gn/source_file_unittest.cc
@@ -33,6 +33,7 @@
       {"foo.h", SourceFile::SOURCE_H},
       {"foo.hh", SourceFile::SOURCE_H},
       {"foo.hpp", SourceFile::SOURCE_H},
+      {"foo.hpp11", SourceFile::SOURCE_H},
       {"foo.inc", SourceFile::SOURCE_H},
       {"foo.inl", SourceFile::SOURCE_H},
       {"foo.ipp", SourceFile::SOURCE_H},