diff --git a/BUILD.gn b/BUILD.gn
index 4ea872f..bec953d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -31,47 +31,28 @@
       "NOMINMAX",
       "_WINDLL",
       "NO_SANITIZE_FUNCTION=",
+      "ANGLE_DISABLE_TRACE",
     ]
-
-    if (is_debug) {
-      cflags += [ "/RTC1" ]  # Run-Time Error Checks
-    } else {
-      defines += [ "ANGLE_DISABLE_TRACE" ]
-    }
   } else {
     cflags = [
       "-std=c++11",
       "-Wall",
       "-fno-exceptions",
       "-fno-operator-names",
+      "-ffunction-sections",
+      "-fdata-sections",
+      "-fomit-frame-pointer",
+      "-Os",
     ]
 
     defines += [
       "__STDC_CONSTANT_MACROS",
       "__STDC_LIMIT_MACROS",
       "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))",
+      "ANGLE_DISABLE_TRACE",
+      "NDEBUG",
     ]
 
-    if (is_debug) {
-      cflags += [
-        "-g",
-        "-g3",
-      ]
-    } else {  # Release
-      # All Release builds use function/data sections to make the shared libraries smaller
-      cflags += [
-        "-ffunction-sections",
-        "-fdata-sections",
-        "-fomit-frame-pointer",
-        "-Os",
-      ]
-
-      defines += [
-        "ANGLE_DISABLE_TRACE",
-        "NDEBUG",
-      ]
-    }
-
     if (target_cpu == "x64") {  # 64 bit version
       cflags += [
         "-m64",
@@ -91,11 +72,10 @@
         "-Wl,--hash-style=both",
         "-Wl,--gc-sections",
       ]
+
       # A bug in the gold linker prevents using ICF on 32-bit (crbug.com/729532)
       if (use_gold && target_cpu == "x86") {
-        ldflags += [
-          "-Wl,--icf=none",
-        ]
+        ldflags += [ "-Wl,--icf=none" ]
       }
     }
   }
diff --git a/src/Common/BUILD.gn b/src/Common/BUILD.gn
index eb610c0..6b23321 100644
--- a/src/Common/BUILD.gn
+++ b/src/Common/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_common_private_config") {
   if (is_win) {
@@ -24,7 +26,7 @@
   }
 }
 
-source_set("swiftshader_common") {
+swiftshader_source_set("swiftshader_common") {
   sources = [
     "CPUID.cpp",
     "Configurator.cpp",
@@ -38,5 +40,5 @@
     "Timer.cpp",
   ]
 
-  configs += [ ":swiftshader_common_private_config" ]
+  configs = [ ":swiftshader_common_private_config" ]
 }
diff --git a/src/Main/BUILD.gn b/src/Main/BUILD.gn
index 17df175..dd85696 100644
--- a/src/Main/BUILD.gn
+++ b/src/Main/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_main_private_config") {
   if (is_win) {
@@ -28,11 +30,12 @@
     }
   } else {
     cflags = [ "-msse2" ]
-    defines = [ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
+    defines =
+        [ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
   }
 }
 
-source_set("swiftshader_main") {
+swiftshader_source_set("swiftshader_main") {
   deps = [
     "../Common:swiftshader_common",
   ]
@@ -59,11 +62,10 @@
   }
 
   if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
     libs = [ "dxguid.lib" ]  # For FrameBufferDD
   }
 
-  configs += [ ":swiftshader_main_private_config" ]
+  configs = [ ":swiftshader_main_private_config" ]
 
   include_dirs = [
     "..",
diff --git a/src/OpenGL/common/BUILD.gn b/src/OpenGL/common/BUILD.gn
index 752f830..9cc22bf 100644
--- a/src/OpenGL/common/BUILD.gn
+++ b/src/OpenGL/common/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_opengl_common_private_config") {
   if (is_win) {
@@ -23,7 +25,7 @@
   }
 }
 
-source_set("swiftshader_opengl_common") {
+swiftshader_source_set("swiftshader_opengl_common") {
   sources = [
     "Image.cpp",
     "MatrixStack.cpp",
@@ -31,7 +33,7 @@
     "debug.cpp",
   ]
 
-  configs += [ ":swiftshader_opengl_common_private_config" ]
+  configs = [ ":swiftshader_opengl_common_private_config" ]
 
   include_dirs = [
     "..",
diff --git a/src/OpenGL/compiler/BUILD.gn b/src/OpenGL/compiler/BUILD.gn
index 5660317..3341e1e 100644
--- a/src/OpenGL/compiler/BUILD.gn
+++ b/src/OpenGL/compiler/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_opengl_compiler_private_config") {
   if (is_win) {
@@ -35,7 +37,7 @@
   }
 }
 
-source_set("swiftshader_opengl_compiler") {
+swiftshader_source_set("swiftshader_opengl_compiler") {
   deps = [
     "preprocessor:swiftshader_opengl_preprocessor",
   ]
@@ -72,7 +74,7 @@
     sources += [ "ossource_win.cpp" ]
   }
 
-  configs += [ ":swiftshader_opengl_compiler_private_config" ]
+  configs = [ ":swiftshader_opengl_compiler_private_config" ]
 
   include_dirs = [
     "..",
diff --git a/src/OpenGL/compiler/preprocessor/BUILD.gn b/src/OpenGL/compiler/preprocessor/BUILD.gn
index 42cabd9..7c8c2e4 100644
--- a/src/OpenGL/compiler/preprocessor/BUILD.gn
+++ b/src/OpenGL/compiler/preprocessor/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_opengl_preprocessor_private_config") {
   if (is_win) {
@@ -23,7 +25,7 @@
   }
 }
 
-source_set("swiftshader_opengl_preprocessor") {
+swiftshader_source_set("swiftshader_opengl_preprocessor") {
   sources = [
     "Diagnostics.cpp",
     "DirectiveHandler.cpp",
@@ -38,5 +40,5 @@
     "Tokenizer.cpp",
   ]
 
-  configs += [ ":swiftshader_opengl_preprocessor_private_config" ]
+  configs = [ ":swiftshader_opengl_preprocessor_private_config" ]
 }
diff --git a/src/OpenGL/libEGL/BUILD.gn b/src/OpenGL/libEGL/BUILD.gn
index 83974d6..543c9cc 100644
--- a/src/OpenGL/libEGL/BUILD.gn
+++ b/src/OpenGL/libEGL/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_libEGL_private_config") {
   defines = [ "EGL_EGLEXT_PROTOTYPES" ]
@@ -23,22 +25,18 @@
       "/wd5030",  # attribute is not recognized
     ]
 
-    defines += [
-      "EGLAPI=",
-    ]
+    defines += [ "EGLAPI=" ]
   } else {
     cflags = [ "-Wno-sign-compare" ]
     if (!is_clang) {
       cflags += [ "-Wno-unused-but-set-variable" ]
     }
 
-    defines += [
-      "EGLAPI=__attribute__((visibility(\"default\"))) __attribute__((no_sanitize(\"function\")))",
-    ]
+    defines += [ "EGLAPI=__attribute__((visibility(\"default\"))) __attribute__((no_sanitize(\"function\")))" ]
   }
 }
 
-shared_library("swiftshader_libEGL") {
+swiftshader_shared_library("swiftshader_libEGL") {
   if (!is_mac) {
     output_name = "libEGL"
     output_dir = "$root_out_dir/swiftshader"
@@ -60,10 +58,6 @@
     "resource.h",
   ]
 
-  if (is_debug) {
-    sources += [ "../common/debug.cpp" ]
-  }
-
   if (is_mac) {
     sources += [ "OSXUtils.mm" ]
     libs = [
@@ -72,7 +66,6 @@
     ]
     ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libEGL.dylib" ]
   } else if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
     ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ]
   } else if (is_linux) {
     sources += [ "../../Main/libX11.cpp" ]
@@ -80,12 +73,7 @@
         [ "-Wl,--version-script=" + rebase_path("exports.map", root_build_dir) ]
   }
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [
-    "//build/config/compiler:no_chromium_code",
-    "//third_party/swiftshader:swiftshader_config",
-    ":swiftshader_libEGL_private_config",
-  ]
+  configs = [ ":swiftshader_libEGL_private_config" ]
 
   include_dirs = [
     "../../../include",
diff --git a/src/OpenGL/libGLESv2/BUILD.gn b/src/OpenGL/libGLESv2/BUILD.gn
index 403deb6..a917cfd 100644
--- a/src/OpenGL/libGLESv2/BUILD.gn
+++ b/src/OpenGL/libGLESv2/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_libGLESv2_private_config") {
   defines = [
@@ -26,9 +28,7 @@
       "/wd5030",  # attribute is not recognized
     ]
 
-    defines += [
-      "GL_APICALL=",
-    ]
+    defines += [ "GL_APICALL=" ]
 
     if (is_clang) {
       defines += [
@@ -50,7 +50,7 @@
   }
 }
 
-shared_library("swiftshader_libGLESv2") {
+swiftshader_shared_library("swiftshader_libGLESv2") {
   if (!is_mac) {
     output_name = "libGLESv2"
     output_dir = "$root_out_dir/swiftshader"
@@ -89,7 +89,6 @@
   ]
 
   if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
     ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ]
   } else if (is_mac) {
     ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libGLESv2.dylib" ]
@@ -98,12 +97,7 @@
         [ "-Wl,--version-script=" + rebase_path("exports.map", root_build_dir) ]
   }
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [
-    "//build/config/compiler:no_chromium_code",
-    "//third_party/swiftshader:swiftshader_config",
-    ":swiftshader_libGLESv2_private_config",
-  ]
+  configs = [ ":swiftshader_libGLESv2_private_config" ]
 
   include_dirs = [
     "../../../include",
diff --git a/src/Reactor/BUILD.gn b/src/Reactor/BUILD.gn
index d1b8efa..b7dca6d 100644
--- a/src/Reactor/BUILD.gn
+++ b/src/Reactor/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../swiftshader.gni")
+
 declare_args() {
   # Currently, Subzero is not used by default
   # LLVM is still the default backend
@@ -153,7 +155,7 @@
 }
 
 if (use_swiftshader_with_subzero) {
-  source_set("swiftshader_subzero") {
+  swiftshader_source_set("swiftshader_subzero") {
     subzero_dir = "../../third_party/subzero"
     subzero_llvm_dir = "../../third_party/llvm-subzero"
 
@@ -240,17 +242,14 @@
       ]
     }
 
-    if (is_win) {
-      configs -= [ "//build/config/win:unicode" ]
-    }
-    configs += [
+    configs = [
       ":swiftshader_subzero_common_private_config",
       ":swiftshader_subzero_private_config",
     ]
   }
 }
 
-source_set("swiftshader_reactor") {
+swiftshader_source_set("swiftshader_reactor") {
   deps = [
     "../OpenGL/common:swiftshader_opengl_common",
   ]
@@ -267,7 +266,7 @@
       "SubzeroReactor.cpp",
     ]
 
-    configs += [
+    configs = [
       ":swiftshader_subzero_common_private_config",
       ":swiftshader_reactor_with_subzero_private_config",
     ]
@@ -280,7 +279,7 @@
       "LLVMRoutineManager.cpp",
     ]
 
-    configs += [ ":swiftshader_reactor_private_config" ]
+    configs = [ ":swiftshader_reactor_private_config" ]
 
     include_dirs = [
       "..",
@@ -288,8 +287,4 @@
       "../../third_party/LLVM/include/",
     ]
   }
-
-  if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
-  }
 }
diff --git a/src/Renderer/BUILD.gn b/src/Renderer/BUILD.gn
index 461f15c..a8ad847 100644
--- a/src/Renderer/BUILD.gn
+++ b/src/Renderer/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_renderer_private_config") {
   if (is_win) {
@@ -28,7 +30,7 @@
   }
 }
 
-source_set("swiftshader_renderer") {
+swiftshader_source_set("swiftshader_renderer") {
   deps = [
     "../Shader:swiftshader_shader",
   ]
@@ -53,11 +55,7 @@
     "VertexProcessor.cpp",
   ]
 
-  if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
-  }
-
-  configs += [ ":swiftshader_renderer_private_config" ]
+  configs = [ ":swiftshader_renderer_private_config" ]
 
   include_dirs = [
     ".",
diff --git a/src/Shader/BUILD.gn b/src/Shader/BUILD.gn
index 54bfa8d..3b19766 100644
--- a/src/Shader/BUILD.gn
+++ b/src/Shader/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_shader_private_config") {
   if (is_win) {
@@ -27,7 +29,7 @@
   }
 }
 
-source_set("swiftshader_shader") {
+swiftshader_source_set("swiftshader_shader") {
   deps = [
     "../Main:swiftshader_main",
   ]
@@ -48,7 +50,7 @@
     "VertexShader.cpp",
   ]
 
-  configs += [ ":swiftshader_shader_private_config" ]
+  configs = [ ":swiftshader_shader_private_config" ]
 
   include_dirs = [
     ".",
diff --git a/src/swiftshader.gni b/src/swiftshader.gni
new file mode 100644
index 0000000..333ef80
--- /dev/null
+++ b/src/swiftshader.gni
@@ -0,0 +1,57 @@
+# Copyright (c) 2017 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.
+
+# This file contains configs that need to be added or removed to all
+# SwiftShader libraries
+
+configs_to_add = []
+configs_to_delete = []
+
+if (is_win) {
+  configs_to_delete += [ "//build/config/win:unicode" ]
+}
+
+if (is_debug) {
+  # always build release version of SwiftShader for performance reasons
+  configs_to_delete += [
+    "//build/config:debug",
+    "//build/config/compiler:default_optimization",
+  ]
+  configs_to_add += [
+    "//build/config:release",
+    "//build/config/compiler:optimize_max",
+  ]
+  if (is_win) {
+    configs_to_delete += [ "//build/config/win:default_crt" ]
+    configs_to_add += [ "//build/config/win:release_crt" ]
+  }
+}
+
+configs_to_delete += [ "//build/config/compiler:chromium_code" ]
+configs_to_add += [
+  "//build/config/compiler:no_chromium_code",
+  "//third_party/swiftshader:swiftshader_config",
+]
+
+template("swiftshader_source_set") {
+  source_set(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    if (defined(invoker.configs)) {
+      configs += invoker.configs
+    }
+    configs -= configs_to_delete
+    configs += configs_to_add
+  }
+}
+
+template("swiftshader_shared_library") {
+  shared_library(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    if (defined(invoker.configs)) {
+      configs += invoker.configs
+    }
+    configs -= configs_to_delete
+    configs += configs_to_add
+  }
+}
diff --git a/third_party/LLVM/BUILD.gn b/third_party/LLVM/BUILD.gn
index db8d05d..4099e6d 100644
--- a/third_party/LLVM/BUILD.gn
+++ b/third_party/LLVM/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../src/swiftshader.gni")
+
 # Need a separate config to ensure the warnings are added to the end.
 config("swiftshader_llvm_private_config") {
   cflags = []
@@ -73,7 +75,7 @@
   ]
 }
 
-source_set("swiftshader_llvm") {
+swiftshader_source_set("swiftshader_llvm") {
   sources = [
     "lib/Analysis/AliasAnalysis.cpp",
     "lib/Analysis/AliasSetTracker.cpp",
@@ -449,10 +451,7 @@
     "lib/VMCore/Verifier.cpp",
   ]
 
-  if (is_win) {
-    configs -= [ "//build/config/win:unicode" ]
-  }
-  configs += [ ":swiftshader_llvm_private_config" ]
+  configs = [ ":swiftshader_llvm_private_config" ]
 
   include_dirs = [ "lib/Target/X86" ]
 
