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",
+  ]
+}
diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp
index 24b77e1..1e690af 100644
--- a/glslang/OSDependent/Unix/ossource.cpp
+++ b/glslang/OSDependent/Unix/ossource.cpp
@@ -67,7 +67,8 @@
 //
 void OS_CleanupThreadData(void)
 {
-#ifdef __ANDROID__
+    // Fuchsia does not have a meaningful pthread_cancel.
+#if defined(__Fuchsia__) || defined(__ANDROID__)
     DetachThreadLinux(NULL);
 #else
     int old_cancel_state, old_cancel_type;
