Add BUILD.gn file for Fuchsia

Change-Id: I09b47bbcd0e492dadbcbc4a5d72030f81c0d3c02
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..dc8a805
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,143 @@
+# Copyright 2017 The Fuchsia Authors
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+static_library("glslang") {
+  cflags_cc = [
+    "-Wno-reorder",
+    "-Wno-inconsistent-missing-override",
+    "-Wno-missing-field-initializers",
+    "-Wno-ignored-qualifiers",
+  ]
+  sources = [
+    "glslang/GenericCodeGen/CodeGen.cpp",
+    "glslang/GenericCodeGen/Link.cpp",
+    "glslang/MachineIndependent/Constant.cpp",
+    "glslang/MachineIndependent/InfoSink.cpp",
+    "glslang/MachineIndependent/Initialize.cpp",
+    "glslang/MachineIndependent/IntermTraverse.cpp",
+    "glslang/MachineIndependent/Intermediate.cpp",
+    "glslang/MachineIndependent/ParseContextBase.cpp",
+    "glslang/MachineIndependent/ParseHelper.cpp",
+    "glslang/MachineIndependent/PoolAlloc.cpp",
+    "glslang/MachineIndependent/RemoveTree.cpp",
+    "glslang/MachineIndependent/Scan.cpp",
+    "glslang/MachineIndependent/ShaderLang.cpp",
+    "glslang/MachineIndependent/SymbolTable.cpp",
+    "glslang/MachineIndependent/Versions.cpp",
+    "glslang/MachineIndependent/glslang_tab.cpp",
+    "glslang/MachineIndependent/intermOut.cpp",
+    "glslang/MachineIndependent/iomapper.cpp",
+    "glslang/MachineIndependent/limits.cpp",
+    "glslang/MachineIndependent/linkValidate.cpp",
+    "glslang/MachineIndependent/parseConst.cpp",
+    "glslang/MachineIndependent/preprocessor/Pp.cpp",
+    "glslang/MachineIndependent/preprocessor/PpAtom.cpp",
+    "glslang/MachineIndependent/preprocessor/PpContext.cpp",
+    "glslang/MachineIndependent/preprocessor/PpMemory.cpp",
+    "glslang/MachineIndependent/preprocessor/PpScanner.cpp",
+    "glslang/MachineIndependent/preprocessor/PpSymbols.cpp",
+    "glslang/MachineIndependent/preprocessor/PpTokens.cpp",
+    "glslang/MachineIndependent/propagateNoContraction.cpp",
+    "glslang/MachineIndependent/reflection.cpp",
+  ]
+  deps = [
+    ":HLSL",
+    ":OGLCompiler",
+    ":OSDependent",
+  ]
+}
+
+static_library("OSDependent") {
+  sources = [
+    "glslang/OSDependent/Unix/ossource.cpp",
+  ]
+}
+
+static_library("OGLCompiler") {
+  sources = [
+    "OGLCompilersDLL/InitializeDll.cpp",
+  ]
+}
+
+static_library("HLSL") {
+  cflags_cc = [
+    "-Wno-reorder",
+    "-Wno-inconsistent-missing-override",
+  ]
+  sources = [
+    "hlsl/hlslAttributes.cpp",
+    "hlsl/hlslGrammar.cpp",
+    "hlsl/hlslOpMap.cpp",
+    "hlsl/hlslParseHelper.cpp",
+    "hlsl/hlslParseables.cpp",
+    "hlsl/hlslScanContext.cpp",
+    "hlsl/hlslTokenStream.cpp",
+  ]
+}
+
+static_library("SPIRV") {
+  cflags_cc = [ "-Wno-reorder" ]
+  sources = [
+    "SPIRV/GlslangToSpv.cpp",
+    "SPIRV/InReadableOrder.cpp",
+    "SPIRV/Logger.cpp",
+    "SPIRV/SpvBuilder.cpp",
+    "SPIRV/disassemble.cpp",
+    "SPIRV/doc.cpp",
+  ]
+}
+
+static_library("SPVRemapper") {
+  sources = [
+    "SPIRV/SPVRemapper.cpp",
+  ]
+}
+
+executable("spirv-remap") {
+  sources = [
+    "StandAlone/spirv-remap.cpp",
+  ]
+  deps = [
+    ":SPVRemapper",
+    ":SPIRV",
+    ":glslang"
+  ]
+}
+
+static_library("glslang-default-resource-limits") {
+  include_dirs = [ "." ]
+  sources = [
+    "StandAlone/ResourceLimits.cpp",
+  ]
+}
+
+executable("glslangValidator") {
+  include_dirs = [ "." ]
+  sources = [
+    "StandAlone/StandAlone.cpp",
+  ]
+  deps = [
+    ":SPIRV",
+    ":SPVRemapper",
+    ":glslang",
+    ":glslang-default-resource-limits",
+  ]
+}