Update Marl to 59068ee4

Contains:
59068ee4c examples/fractal.cpp: Don't use rand()
7df53dd16 Add primes example
ded37ceb8 Update README.md with build instructions
b80c797df CMakeLists.txt: Don't default to building tests.
d89fe34b6 CMakeLists.txt: Use explicit file lists
757566df0 Update README.md
8c98371e5 Presubmits: Enable warnings-as-errors.
0025389a1 CMakeLists: Add option to treat warnings as errors
eeb070293 Fix all compiler warnings

Commands:
git subtree pull --prefix third_party/marl https://github.com/google/marl 59068ee4cf1f5ff5e691ff010c8d83b5f862c4fa --squash

Bug: b/140546382
Change-Id: Ie37d6e1ce315aaeabeee5e006c5e1f6a7a5ca184
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000..fe208a4
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,165 @@
+;;; Directory Local Variables
+;;; See Info node `(emacs) Directory Variables' for more information.
+
+((c++-mode
+  (tab-width . 4)
+  (indent-tabs-mode . t)
+  (c-basic-offset . 4)
+  (show-trailing-whitespace . t)
+  (indicate-empty-lines . t)
+  (c-offsets-alist
+   (inexpr-class . +)
+   (inexpr-statement . +)
+   (lambda-intro-cont . +)
+   (inlambda . c-lineup-inexpr-block)
+   (template-args-cont c-lineup-template-args +)
+   (incomposition . +)
+   (inmodule . +)
+   (innamespace . +)
+   (inextern-lang . 0)
+   (composition-close . 0)
+   (module-close . 0)
+   (namespace-close . 0)
+   (extern-lang-close . 0)
+   (composition-open . 0)
+   (module-open . 0)
+   (namespace-open . 0)
+   (extern-lang-open . 0)
+   (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call +)
+   (objc-method-args-cont . c-lineup-ObjC-method-args)
+   (objc-method-intro .
+                      [0])
+   (friend . 0)
+   (cpp-define-intro c-lineup-cpp-define +)
+   (cpp-macro-cont . +)
+   (cpp-macro .
+              [0])
+   (inclass . +)
+   (stream-op . c-lineup-streamop)
+   (arglist-cont-nonempty c-lineup-gcc-asm-reg c-lineup-arglist)
+   (arglist-cont c-lineup-gcc-asm-reg 0)
+   (comment-intro . 0)
+   (catch-clause . 0)
+   (else-clause . 0)
+   (do-while-closure . 0)
+   (access-label . -)
+   (case-label . +)
+   (substatement . +)
+   (statement-case-intro . +)
+   (statement . 0)
+   (brace-entry-open . 0)
+   (brace-list-entry . 0)
+   (brace-list-intro . +)
+   (brace-list-close . 0)
+   (block-close . 0)
+   (block-open . 0)
+   (inher-cont . c-lineup-multi-inher)
+   (inher-intro . ++)
+   (member-init-cont . c-lineup-multi-inher)
+   (member-init-intro . ++)
+   (annotation-var-cont . +)
+   (annotation-top-cont . 0)
+   (topmost-intro . 0)
+   (knr-argdecl . 0)
+   (func-decl-cont . ++)
+   (inline-close . 0)
+   (class-close . 0)
+   (class-open . 0)
+   (defun-block-intro . +)
+   (defun-close . 0)
+   (defun-open . 0)
+   (c . c-lineup-C-comments)
+   (string . c-lineup-dont-change)
+   (topmost-intro-cont . c-lineup-topmost-intro-cont)
+   (brace-list-open . 0)
+   (inline-open . 0)
+   (arglist-close . c-lineup-arglist)
+   (arglist-intro google-c-lineup-expression-plus-4)
+   (statement-cont nil nil ++)
+   (statement-case-open . +)
+   (label . /)
+   (substatement-label . 2)
+   (substatement-open . 0)
+   (knr-argdecl-intro . +)
+   (statement-block-intro . +)))
+(c-mode
+  (tab-width . 4)
+  (indent-tabs-mode . t)
+  (c-basic-offset . 4)
+  (show-trailing-whitespace . t)
+  (indicate-empty-lines . t)
+  (c-offsets-alist
+   (inexpr-class . +)
+   (inexpr-statement . +)
+   (lambda-intro-cont . +)
+   (inlambda . c-lineup-inexpr-block)
+   (template-args-cont c-lineup-template-args +)
+   (incomposition . +)
+   (inmodule . +)
+   (innamespace . +)
+   (inextern-lang . 0)
+   (composition-close . 0)
+   (module-close . 0)
+   (namespace-close . 0)
+   (extern-lang-close . 0)
+   (composition-open . 0)
+   (module-open . 0)
+   (namespace-open . 0)
+   (extern-lang-open . 0)
+   (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call +)
+   (objc-method-args-cont . c-lineup-ObjC-method-args)
+   (objc-method-intro .
+                      [0])
+   (friend . 0)
+   (cpp-define-intro c-lineup-cpp-define +)
+   (cpp-macro-cont . +)
+   (cpp-macro .
+              [0])
+   (inclass . +)
+   (stream-op . c-lineup-streamop)
+   (arglist-cont-nonempty c-lineup-gcc-asm-reg c-lineup-arglist)
+   (arglist-cont c-lineup-gcc-asm-reg 0)
+   (comment-intro . 0)
+   (catch-clause . 0)
+   (else-clause . 0)
+   (do-while-closure . 0)
+   (access-label . -)
+   (case-label . +)
+   (substatement . +)
+   (statement-case-intro . +)
+   (statement . 0)
+   (brace-entry-open . 0)
+   (brace-list-entry . 0)
+   (brace-list-intro . +)
+   (brace-list-close . 0)
+   (block-close . 0)
+   (block-open . 0)
+   (inher-cont . c-lineup-multi-inher)
+   (inher-intro . ++)
+   (member-init-cont . c-lineup-multi-inher)
+   (member-init-intro . ++)
+   (annotation-var-cont . +)
+   (annotation-top-cont . 0)
+   (topmost-intro . 0)
+   (knr-argdecl . 0)
+   (func-decl-cont . ++)
+   (inline-close . 0)
+   (class-close . 0)
+   (class-open . 0)
+   (defun-block-intro . +)
+   (defun-close . 0)
+   (defun-open . 0)
+   (c . c-lineup-C-comments)
+   (string . c-lineup-dont-change)
+   (topmost-intro-cont . c-lineup-topmost-intro-cont)
+   (brace-list-open . 0)
+   (inline-open . 0)
+   (arglist-close . c-lineup-arglist)
+   (arglist-intro google-c-lineup-expression-plus-4)
+   (statement-cont nil nil ++)
+   (statement-case-open . +)
+   (label . /)
+   (substatement-label . 2)
+   (substatement-open . 0)
+   (knr-argdecl-intro . +)
+   (statement-block-intro . +))))
diff --git a/.gitignore b/.gitignore
index c99ccc1..bdd8dfc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,49 @@
-/.vscode/
-/build/
\ No newline at end of file
+# Ignored folders #
+/cache/
+/lib/
+/obj/
+/bin/
+/out/
+.vs
+.vscode/ipch
+CMakeFiles/
+
+# Per user vscode config files.
+.vscode/launch.json
+.vscode/settings.json
+
+# The /build/ directory is recommended for CMake build output and should be
+# ignored, except for Visual Studio project files that we check into the
+# repository and regenerate with build/cmake.sh
+!/build
+/build/*
+!/build/cmake.sh
+!/build/Visual Studio 15 2017 Win64/
+
+# Boost is downloaded and extracted to /third_party
+/third_party/boost*
+
+# Ignored files #
+*.obj
+*.lib
+*.log
+*.tlog
+*.exe
+*.ilk
+*.pdb
+*.sbr
+*.bsc
+*.dll
+*.res
+*.idb
+*.sdf
+*.suo
+*.o
+*.depend
+*.layout
+*.opensdf
+*.aps
+*.opendb
+*.db
+*~
+CMakeCache.txt
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 5a4e85a..4fe1ebb 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,7 @@
 [submodule "third_party/googletest"]
 	path = third_party/googletest
 	url = https://github.com/google/googletest.git
+
+[submodule "third_party/libbacktrace/src"]
+	path = third_party/libbacktrace/src
+	url = https://github.com/ianlancetaylor/libbacktrace.git
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..a4a5d5c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,44 @@
+language: cpp
+
+os:
+  - linux
+  - osx
+
+dist: trusty
+osx_image: xcode8
+sudo: false
+
+compiler:
+  - clang
+  - gcc
+
+env:
+  - REACTOR_BACKEND=Subzero
+  - REACTOR_BACKEND=LLVM SWIFTSHADER_LLVM_VERSION=3
+  - REACTOR_BACKEND=LLVM SWIFTSHADER_LLVM_VERSION=7
+
+script:
+  - $CXX --version
+  - mkdir -p build && cd build
+  - cmake -DREACTOR_BACKEND=$REACTOR_BACKEND ..
+  - make -j2
+  - ./gles-unittests
+  - ./ReactorUnitTests
+
+notifications:
+  email:
+    recipients:
+      - swiftshader-team@google.com
+    on_success: never
+    on_failure: always
+
+deploy:
+  provider: gcs
+  access_key_id: GOOGUX6FX5STNWQ5LHZ5
+  secret_access_key:
+    secure: MuHxqjCzr11tS9t2I4XWZRrSn13wbW3xTViG4V+oA/w2hTfDUlw1i8LpUXZmpJMvheC9xxeEhsST4rSKxrfNX4GawmFhO8pDbOVeSK5vCy9Gn1DQ/udEZnwEJcOwy1SOIAyxo8dqJeniZ9om78oqOB3AhBWYd8YBjSgF6iarD8gIrmHkyC9/eSmhb3OdAFYvrdG02aImh7svjkhQsRV4YJSDuog/bg/TrG+uyU02+Eer7xn8skLtCcPrvHREV/DX459FiPXFGEgBPfEnFSBkTz/yUXlLom47Kf2HnRnBI985oNGlVeaY7DGRa5dwB33tuhyYudP21mSyNu02mP7RE+VPZtL3K1TdeC7bPdoUpjoP+zyoSw2VPkBkfqU0GXdmUkYAwiECKZ/erF3/Wz0404P1Ad8N9ouoYZuw0G5S61PMG4QlyOQhTnpCJLIkenXuN+PSN/2/rIypd0C0RpPKrOQZ2S5vm4xS9ns4UX/d58evRSKTYP5hFPVv0z0P4RQTTNWhv0rdEIvfq4jRX3nMAvCM+/Xf/tUxWwzxEb/HXFupXwg90LHHluiD0O0vcBF38rvpGfGXrpPSwq9lU+bDWoKeOc6VLVk+/J/3b5baqkljOhfv0a1rkRyreU00rDmo0miqY97aCS9V0phH0cGjSk/jKIKUdsPUdXl2bh7N0PM=
+  bucket: swiftshader-binaries
+  skip_cleanup: true
+  acl: public-read
+  upload-dir: OpenGL_ES/Latest
+  local-dir: $TRAVIS_BUILD_DIR/out
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000..656379e
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,59 @@
+{
+    "configurations": [
+        {
+            "name": "Linux",
+            "defines": [
+                "ENABLE_RR_DEBUG_INFO=1",
+                "VERIFY_LLVM_IR=1"
+            ],
+            "includePath": [
+                "${workspaceFolder}/src",
+                "${workspaceFolder}/include",
+                "${workspaceFolder}/third_party/marl/include",
+                "${workspaceFolder}/third_party/SPIRV-Headers/include",
+                "${workspaceFolder}/third_party/llvm-7.0/llvm/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/common/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/linux/include"
+            ],
+            "cStandard": "c11",
+            "cppStandard": "c++11"
+        },
+        {
+            "name": "Mac",
+            "defines": [
+                "ENABLE_RR_DEBUG_INFO=1",
+                "VERIFY_LLVM_IR=1"
+            ],
+            "includePath": [
+                "${workspaceFolder}/src",
+                "${workspaceFolder}/include",
+                "${workspaceFolder}/third_party/marl/include",
+                "${workspaceFolder}/third_party/SPIRV-Headers/include",
+                "${workspaceFolder}/third_party/llvm-7.0/llvm/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/common/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/darwin/include"
+            ],
+            "cStandard": "c11",
+            "cppStandard": "c++11"
+        },
+        {
+            "name": "Win32",
+            "defines": [
+                "ENABLE_RR_DEBUG_INFO=1",
+                "VERIFY_LLVM_IR=1"
+            ],
+            "includePath": [
+                "${workspaceFolder}/src",
+                "${workspaceFolder}/include",
+                "${workspaceFolder}/third_party/marl/include",
+                "${workspaceFolder}/third_party/SPIRV-Headers/include",
+                "${workspaceFolder}/third_party/llvm-7.0/llvm/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/common/include",
+                "${workspaceFolder}/third_party/llvm-7.0/configs/windows/include"
+            ],
+            "cStandard": "c11",
+            "cppStandard": "c++11"
+        }
+    ],
+    "version": 4
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..2a7e260
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,109 @@
+{
+    // See https://go.microsoft.com/fwlink/?LinkId=733558
+    // for the documentation about the tasks.json format
+    // Available variables which can be used inside of strings.
+    // ${workspaceRoot}: the root folder of the team
+    // ${file}: the current opened file
+    // ${fileBasename}: the current opened file's basename
+    // ${fileDirname}: the current opened file's dirname
+    // ${fileExtname}: the current opened file's extension
+    // ${cwd}: the current working directory of the spawned process
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "label": "make",
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            },
+            "type": "shell",
+            "command": "sh",
+            "osx": {
+                "args": [
+                    "-c",
+                    "cmake --build . && echo Done"
+                ]
+            },
+            "linux": {
+                "args": [
+                    "-c",
+                    "cmake --build . && echo Done"
+                ]
+            },
+            "windows": {
+                "args": [
+                    "-c",
+                    "cmake --build . && echo Done"
+                ]
+            },
+            "options": {
+                "cwd": "${workspaceRoot}/build",
+            },
+            "presentation": {
+                "echo": false,
+                "reveal": "always",
+                "focus": false,
+                "panel": "shared",
+                "showReuseMessage": false,
+                "clear": true,
+            },
+            "problemMatcher": {
+                "owner": "cpp",
+                "fileLocation": "absolute",
+                "pattern": {
+                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
+                    "file": 1,
+                    "line": 2,
+                    "column": 3,
+                    "severity": 4,
+                    "message": 5
+                }
+            }
+        },
+        {
+            "label": "cmake",
+            "type": "shell",
+            "command": "cmake",
+            "args": [
+                "..",
+                "-GNinja",
+                "-DCMAKE_BUILD_TYPE=${input:buildType}",
+                "-DWARNINGS_AS_ERRORS=1",
+                "-DDCHECK_ALWAYS_ON=1",
+                "-DREACTOR_VERIFY_LLVM_IR=1",
+            ],
+            "options": {
+                "cwd": "${workspaceRoot}/build"
+            },
+            "problemMatcher": [],
+        },
+        {
+            "label": "Push branch for review",
+            "type": "shell",
+            "command": "git",
+            "args": [
+                "push",
+                "origin",
+                "HEAD:refs/for/master"
+            ],
+            "options": {
+                "cwd": "${workspaceRoot}"
+            },
+            "problemMatcher": [],
+        }
+    ],
+    "inputs": [
+        {
+            "id": "buildType",
+            "type": "pickString",
+            "options": [
+                "Debug",
+                "Release",
+                "MinSizeRel",
+                "RelWithDebInfo",
+            ],
+            "default": "Debug",
+            "description": "The type of build",
+        },
+    ]
+}
\ No newline at end of file
diff --git a/AUTHORS.txt b/AUTHORS.txt
new file mode 100644
index 0000000..faa8822
--- /dev/null
+++ b/AUTHORS.txt
@@ -0,0 +1,9 @@
+# This is the official list of SwiftShader authors for copyright purposes.

+# This file is distinct from the CONTRIBUTORS files.

+# See the latter for an explanation.

+# Names should be added to this file as:

+# Name or Organization <email address>

+# The email address is not required for organizations.

+

+Google Inc.

+The ANGLE Project Authors <angleproject@googlegroups.com>
\ No newline at end of file
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..a48bb4f
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,91 @@
+//
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+cc_defaults {
+    name: "swiftshader_common",
+
+    gnu_extensions: false,
+
+    cflags: [
+        "-Xclang", "-fuse-init-array",
+        "-fno-operator-names",
+        "-msse2",
+        "-Werror",
+        "-Wwrite-strings",
+    ],
+
+    cppflags: [
+        "-Woverloaded-virtual",
+        "-DVK_USE_PLATFORM_ANDROID_KHR",
+	"-DVK_EXPORT= ",
+    ],
+    cpp_std: "c++11",
+
+    target: {
+        host: {
+            cppflags: [
+                "-fno-rtti",
+                "-fno-exceptions",
+            ],
+            compile_multilib: "64",
+        },
+
+        // We don't need Darwin host-side builds
+        darwin: {
+            enabled: false,
+        },
+    },
+}
+
+cc_defaults {
+    name: "swiftshader_common_release",
+
+    defaults: [ "swiftshader_common" ],
+
+    cflags: [
+        "-Os",
+        "-fomit-frame-pointer",
+        "-ffunction-sections",
+        "-fdata-sections",
+    ],
+}
+
+cc_defaults {
+    name: "swiftshader_common_debug",
+
+    defaults: [ "swiftshader_common" ],
+
+    cflags: [
+        "-O0",
+        "-g",
+        "-UNDEBUG",
+    ],
+}
+
+cc_library_headers {
+    name: "swiftshader_platform_headers",
+    host_supported: true,
+    device_supported: true,
+    vendor_available: true,
+    export_include_dirs: ["include"],
+}
+
+cc_library_headers {
+    name: "swiftshader_host_headers",
+    device_supported: false,
+    host_supported: true,
+    export_include_dirs: ["include/Android"],
+}
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..8dd0a2b
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,208 @@
+# Copyright 2016 The SwiftShader Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//build/config/c++/c++.gni")
+import("//build/config/compiler/compiler.gni")
+import("//build/config/mips.gni")
+
+config("swiftshader_config") {
+  defines = []
+
+  if (is_win) {
+    cflags = [
+      "/GS",  # Detects some buffer overruns
+      "/Zc:wchar_t",
+      "/EHs-c-",  # Disable C++ exceptions
+      "/nologo",
+      "/Gd",  # Default calling convention
+      # Disable MSVC warnings about std::aligned_storage being broken before VS 2017 15.8
+      "/D_ENABLE_EXTENDED_ALIGNED_STORAGE",
+    ]
+
+    if (!use_custom_libcxx) {
+      # Disable EH usage in STL headers.
+      # libc++ uses a predefined macro to control whether to use exceptions, so
+      # defining this macro is unnecessary. Defining _HAS_EXCEPTIONS to 0 also
+      # breaks libc++ because it depends on MSVC headers that only provide
+      # certain declarations if _HAS_EXCEPTIONS is 1.
+      defines += [
+        "_HAS_EXCEPTIONS=0",
+      ]
+    }
+
+    defines += [
+      "_CRT_SECURE_NO_DEPRECATE",
+      "NOMINMAX",
+      "_WINDLL",
+      "NO_SANITIZE_FUNCTION=",
+    ]
+
+    if (!is_debug) {
+      defines += [ "ANGLE_DISABLE_TRACE" ]
+    }
+
+    # Diable some MSVC warnings.
+    if (!is_clang) {
+      cflags += [
+        "/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts of signed shorts.
+      ]
+
+      if (target_cpu == "x86") {
+        cflags += [
+          # TODO(b/140575360): Fix when posssible.
+          "/wd4316", # object allocated on the heap may not be aligned. See Renderer and Pool.
+        ]
+      }
+    }
+  } else {
+    cflags = [
+      "-std=c++11",
+      "-fno-exceptions",
+      "-fno-operator-names",
+    ]
+
+    defines += [
+      "__STDC_CONSTANT_MACROS",
+      "__STDC_LIMIT_MACROS",
+      "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))",
+    ]
+
+    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",
+        "-fPIC",
+        "-march=x86-64",
+        "-mtune=generic",
+      ]
+    } else if (target_cpu == "x86") {  # 32 bit version
+      cflags += [
+        "-m32",
+        "-msse2",
+        "-mfpmath=sse",
+        "-march=pentium4",
+        "-mtune=generic",
+      ]
+    } else if (target_cpu == "mipsel" && current_cpu == target_cpu) {
+      cflags += [
+        "-march=mipsel",
+        "-fPIC",
+        "-mhard-float",
+        "-mfp32",
+      ]
+      if (mips_arch_variant == "r1") {
+        cflags += [
+          "-mcpu=mips32",
+        ]
+      } else {
+        cflags += [
+          "-mcpu=mips32r2",
+        ]
+      }
+    } else if (target_cpu == "mips64el" && current_cpu == target_cpu) {
+      cflags += [
+        "-march=mips64el",
+        "-mcpu=mips64r2",
+        "-mabi=64",
+        "-fPIC",
+      ]
+    }
+
+    if (is_linux) {
+      ldflags = [ "-Wl,--gc-sections" ]
+
+      if (target_cpu == "mipsel") {
+        ldflags += [
+          "-Wl,--hash-style=sysv",
+        ]
+        if (mips_arch_variant == "r1") {
+          ldflags += [
+            "-mips32",
+          ]
+        } else {
+          ldflags += [
+            "-mips32r2",
+          ]
+        }
+      } else if (target_cpu == "mips64el") {
+        ldflags += [
+          "-Wl,--hash-style=sysv",
+          "-mips64r2",
+        ]
+      } else {
+        ldflags += [ "-Wl,--hash-style=both" ]
+      }
+
+      # A bug in the gold linker prevents using ICF on 32-bit (crbug.com/729532)
+      if (use_gold && (target_cpu == "x86" || target_cpu == "mipsel")) {
+        ldflags += [ "-Wl,--icf=none" ]
+      }
+    }
+  }
+}
+
+source_set("vertex_routine_fuzzer") {
+  sources = [
+    "tests/fuzzers/VertexRoutineFuzzer.cpp"
+  ]
+  if (is_win) {
+    cflags = [
+      "/wd4201",  # nameless struct/union
+      "/wd4065",  # switch statement contains 'default' but no 'case' labels
+      "/wd5030",  # attribute is not recognized
+    ]
+  }
+  include_dirs = [
+    "src/",
+  ]
+  deps = [
+    "src/OpenGL/libGLESv2:swiftshader_libGLESv2_static",
+  ]
+}
+
+group("swiftshader") {
+  data_deps = [
+    "src/OpenGL/libGLESv2:swiftshader_libGLESv2",
+    "src/OpenGL/libEGL:swiftshader_libEGL",
+  ]
+}
+
+if (build_with_chromium) {
+    group("swiftshader_tests") {
+      testonly = true
+
+      data_deps = [
+        "tests/GLESUnitTests:swiftshader_unittests",
+      ]
+    }
+}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3ab6d9..9fc93a5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,190 +1,2227 @@
-# Copyright 2019 The Marl Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+cmake_minimum_required(VERSION 2.8)
 
-cmake_minimum_required(VERSION 2.8)
+project(SwiftShader C CXX ASM)
 
-set (CMAKE_CXX_STANDARD 11)
+# On Windows we use custom solution and project files, except for certain third-
+# party projects which use CMake-generated ones. They are manually (re)generated
+# and made path relative using build/cmake.sh, so they can be checked into the
+# repository. Therefore they should not be auto-regenerated and left using
+# absolute paths by CMake's ZERO_CHECK.
+if(WIN32)
+    # Disable automatically regenerating project files on CMakeLists.txt changes.
+    set(CMAKE_SUPPRESS_REGENERATION true)
+endif()
 
-project(Marl C CXX ASM)
+###########################################################
+# Detect system
+###########################################################
+
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+    set(LINUX ON)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
+    set(ANDROID ON)
+    set(CMAKE_CXX_FLAGS "-DANDROID_NDK_BUILD")
+elseif(WIN32)
+elseif(APPLE)
+else()
+    message(FATAL_ERROR "Platform is not supported")
+endif()
+
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch")
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+        set(ARCH "aarch64")
+    else()
+        set(ARCH "arm")
+    endif()
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips*")
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+        set(ARCH "mips64el")
+    else()
+        set(ARCH "mipsel")
+    endif()
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc*")
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+        set(ARCH "ppc64le")
+    else()
+        message(FATAL_ERROR "Architecture is not supported")
+    endif()
+else()
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+        set(ARCH "x86_64")
+    else()
+        set(ARCH "x86")
+    endif()
+endif()
+
+set(CMAKE_MACOSX_RPATH ON)
+
+if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))
+  message(WARNING "Visual Studio generators use the x86 host compiler by "
+                  "default, even for 64-bit targets. This can result in linker "
+                  "instability and out of memory errors. To use the 64-bit "
+                  "host compiler, pass -Thost=x64 on the CMake command line.")
+endif()
+
+# Use CCache if available
+find_program(CCACHE_FOUND ccache)
+if(CCACHE_FOUND)
+    message(STATUS "Using ccache")
+    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+    set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+endif(CCACHE_FOUND)
+
+###########################################################
+# Host libraries
+###########################################################
+
+find_library(X11 X11)
+find_library(XCB xcb)
 
 ###########################################################
 # Options
 ###########################################################
-option(MARL_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)
-option(MARL_BUILD_EXAMPLES "Build example applications" OFF)
-option(MARL_BUILD_TESTS "Build tests" OFF)
-option(MARL_ASAN "Build marl with address sanitizer" OFF)
-option(MARL_TSAN "Build marl with thread sanitizer" OFF)
 
-if(MARL_ASAN AND MARL_TSAN)
-    message(FATAL_ERROR "MARL_ASAN and MARL_TSAN are mutually exclusive")
-endif(MARL_ASAN AND MARL_TSAN)
+if(NOT CMAKE_BUILD_TYPE)
+    set(CMAKE_BUILD_TYPE "Release" CACHE STRING "The type of build: Debug Release MinSizeRel RelWithDebInfo." FORCE)
+endif()
+set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release MinSizeRel RelWithDebInfo)
+
+option(BUILD_EGL "Build the EGL library" 1)
+option(BUILD_GLESv2 "Build the OpenGL ES 2 library" 1)
+option(BUILD_GLES_CM "Build the OpenGL ES 1.1 library" 1)
+option(BUILD_VULKAN "Build the Vulkan library" 1)
+
+option(USE_GROUP_SOURCES "Group the source files in a folder tree for Visual Studio" 1)
+
+option(BUILD_SAMPLES "Build sample programs" 1)
+option(BUILD_TESTS "Build test programs" 1)
+
+option(MSAN "Build with memory sanitizer" 0)
+option(ASAN "Build with address sanitizer" 0)
+option(TSAN "Build with thread sanitizer" 0)
+option(UBSAN "Build with undefined behavior sanitizer" 0)
+option(WARNINGS_AS_ERRORS "Treat all warnings as errors" 1)
+option(DCHECK_ALWAYS_ON "Check validation macros even in release builds" 0)
+option(REACTOR_EMIT_DEBUG_INFO "Emit debug info for JIT functions" 0)
+option(REACTOR_EMIT_PRINT_LOCATION "Emit printing of location info for JIT functions" 0)
+option(REACTOR_VERIFY_LLVM_IR "Check reactor-generated LLVM IR is valid even in release builds" 0)
+
+set(BUILD_MARL ${BUILD_VULKAN})
+
+set(DEFAULT_REACTOR_BACKEND "LLVM")
+
+set(REACTOR_BACKEND ${DEFAULT_REACTOR_BACKEND} CACHE STRING "JIT compiler back-end used by Reactor")
+set_property(CACHE REACTOR_BACKEND PROPERTY STRINGS LLVM Subzero)
+
+# LLVM disallows calling cmake . from the main LLVM dir, the reason is that
+# it builds header files that could overwrite the orignal ones. Here we
+# want to include LLVM as a subdirectory and even though it wouldn't cause
+# the problem, if cmake . is called from the main dir, the condition that
+# LLVM checkes, "CMAKE_CURRENT_SOURCE_DIR == CMAKE_CURRENT_BINARY_DIR" will be true. So we
+# disallow it ourselves too to. In addition if there are remining CMakeFiles
+# and CMakeCache in the directory, cmake .. from a subdirectory will still
+# try to build from the main directory so we instruct users to delete these
+# files when they get the error.
+if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+    message(FATAL_ERROR "In source builds are not allowed by LLVM, please create a build/ directory and build from there. You may have to delete the CMakeCache.txt file and CMakeFiles directory that are next to the CMakeLists.txt.")
+endif()
+
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+###########################################################
+# Initialize submodules
+###########################################################
+
+if (NOT TARGET gtest)
+    if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/.git)
+        message(WARNING "
+      third_party/googletest submodule missing.
+      Running 'git submodule update --init' to download it:
+        ")
+
+        execute_process(COMMAND git submodule update --init)
+    endif()
+endif()
+
+if (NOT TARGET libbacktrace)
+    if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace/src/.git)
+        message(WARNING "
+      third_party/libbacktrace/src submodule missing.
+      Running 'git submodule update --init' to download it:
+        ")
+
+        execute_process(COMMAND git submodule update --init)
+    endif()
+endif()
+
+# Boost is downloaded if necessary
+
+# From https://www.boost.org/users/download/
+set(BOOST_VER 1.70.0)
+set(BOOST_HASH_TARGZ "882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9")
+set(BOOST_HASH_ZIP   "48f379b2e90dd1084429aae87d6bdbde9670139fa7569ee856c8c86dd366039d")
+
+string(REPLACE "." "_" BOOST_VER_FNAME ${BOOST_VER})
+set(BOOST_THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/boost_${BOOST_VER_FNAME})
+
+function(DownloadBoost)
+    if (LINUX)
+        set(BOOST_EXT "tar.gz")
+        set(BOOST_HASH ${BOOST_HASH_TARGZ})
+    else()
+        set(BOOST_EXT "zip")
+        set(BOOST_HASH ${BOOST_HASH_ZIP})
+    endif()
+
+    # Note: bintray.com has rate limiting, so use the sourceforge mirror
+    # set(BOOST_URL https://dl.bintray.com/boostorg/release/${BOOST_VER}/source/boost_${BOOST_VER_FNAME}.${BOOST_EXT})
+    set(BOOST_URL https://iweb.dl.sourceforge.net/project/boost/boost/${BOOST_VER}/boost_${BOOST_VER_FNAME}.${BOOST_EXT})
+
+    if (NOT TARGET Boost::boost)
+        if(NOT EXISTS ${BOOST_THIRD_PARTY_DIR})
+            message(WARNING "
+          third_party/boost is missing.
+          Downloading and extracting boost:
+            ")
+
+            set(BOOST_ARCHIVE ${CMAKE_BINARY_DIR}/temp/boost_archive)
+            message(STATUS "Downloading ${BOOST_URL} to ${BOOST_ARCHIVE}...")
+            file(DOWNLOAD ${BOOST_URL} ${BOOST_ARCHIVE} EXPECTED_HASH SHA256=${BOOST_HASH})
+            message(STATUS "Extracting ${BOOST_ARCHIVE} to ${BOOST_THIRD_PARTY_DIR}...")
+            execute_process(
+                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/third_party
+                COMMAND cmake -E tar xf ${BOOST_ARCHIVE}
+            )
+        endif()
+    endif()
+endfunction()
+
+###########################################################
+# Convenience macros
+###########################################################
+
+# Recursively calls source_group on the files of the directory
+# so that Visual Studio has the files in a folder tree
+macro(group_all_sources directory)
+    file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${directory} ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/*)
+    foreach(file ${files})
+        if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
+            group_all_sources(${directory}/${file})
+        else()
+            string(REPLACE "/" "\\" groupname ${directory})
+            source_group(${groupname} FILES ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
+        endif()
+    endforeach()
+endmacro()
+
+# Takes target library and a directory where the export map is
+# and add the linker options so that only the API symbols are
+# exported.
+macro(set_shared_library_export_map TARGET DIR)
+    if(MSVC)
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " /DEF:\"${DIR}/${TARGET}.def\"")
+    elseif(APPLE)
+        # The exported symbols list only exports the API functions and
+        # hides all the others.
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS "-exported_symbols_list ${DIR}/${TARGET}.exports")
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_DEPENDS "${DIR}/${TARGET}.exports;")
+        # Don't allow undefined symbols, unless it's a Sanitizer build.
+        if(NOT MSAN AND NOT ASAN AND NOT TSAN AND NOT UBSAN)
+            set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-undefined,error")
+        endif()
+    elseif(LINUX)
+        # The version script only exports the API functions and
+        # hides all the others.
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${DIR}/${TARGET}.lds")
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_DEPENDS "${DIR}/${TARGET}.lds;")
+
+        # Don't allow symbols to be overridden by another module.
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -fvisibility=protected")
+
+        if(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
+          # MIPS supports sysv hash-style only.
+          set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=sysv")
+        else()
+          # Both hash-style are needed, because we want both gold and
+          # GNU ld to be able to read our libraries.
+          set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=both")
+        endif()
+
+        # Gc sections is used in combination with each functions being
+        # in its own section, to reduce the binary size.
+        set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--gc-sections")
+
+        # Don't allow undefined symbols, unless it's a Sanitizer build.
+        if(NOT MSAN AND NOT ASAN AND NOT TSAN AND NOT UBSAN)
+            set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
+        endif()
+    endif()
+endmacro()
+
+if(USE_GROUP_SOURCES)
+    group_all_sources(src)
+endif()
 
 ###########################################################
 # Directories
 ###########################################################
-set(MARL_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
-set(MARL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
-set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
-set(GOOGLETEST_DIR ${THIRD_PARTY_DIR}/googletest)
+
+set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
+set(OPENGL_DIR ${SOURCE_DIR}/OpenGL)
+set(OPENGL_COMPILER_DIR ${OPENGL_DIR}/compiler)
+set(VULKAN_DIR ${SOURCE_DIR}/Vulkan)
+set(LLVM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-7.0/llvm)
+set(LLVM_CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-7.0/configs)
+set(LIBBACKTRACE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace/src)
+set(LIBBACKTRACE_CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace/config)
+set(LIBBACKTRACE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace/src)
+set(MARL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/marl/include)
+set(SUBZERO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/subzero)
+set(SUBZERO_LLVM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-subzero)
+set(TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
+set(HELLO2_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/PowerVR_SDK/Examples/Beginner/01_HelloAPI/OGLES2)
 
 ###########################################################
-# Submodules
+# Compile flags
 ###########################################################
-if(MARL_BUILD_TESTS)
-    if(NOT EXISTS ${THIRD_PARTY_DIR}/googletest/.git)
-        message(WARNING "third_party/googletest submodule missing.")
-        message(WARNING "Run: `git submodule update --init` to build tests.")
-        set(MARL_BUILD_TESTS OFF)
+
+# Flags for project code (non 3rd party)
+set(SWIFTSHADER_COMPILE_OPTIONS "")
+
+macro(set_cpp_flag FLAG)
+    if(${ARGC} GREATER 1)
+        set(CMAKE_CXX_FLAGS_${ARGV1} "${CMAKE_CXX_FLAGS_${ARGV1}} ${FLAG}")
+    else()
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
     endif()
-endif(MARL_BUILD_TESTS)
+endmacro()
 
-###########################################################
-# File lists
-###########################################################
-file(GLOB MARL_LIST
-    ${MARL_SRC_DIR}/debug.cpp
-    ${MARL_SRC_DIR}/scheduler.cpp
-    ${MARL_SRC_DIR}/thread.cpp
-    ${MARL_SRC_DIR}/trace.cpp
-    ${MARL_SRC_DIR}/osfiber_aarch64.c
-    ${MARL_SRC_DIR}/osfiber_arm.c
-    ${MARL_SRC_DIR}/osfiber_ppc64.c
-    ${MARL_SRC_DIR}/osfiber_x64.c
-    ${MARL_SRC_DIR}/osfiber_x86.c
-)
-if(NOT MSVC)
-    list(APPEND MARL_LIST
-        ${MARL_SRC_DIR}/osfiber_asm_aarch64.S
-        ${MARL_SRC_DIR}/osfiber_asm_arm.S
-        ${MARL_SRC_DIR}/osfiber_asm_ppc64.S
-        ${MARL_SRC_DIR}/osfiber_asm_x64.S
-        ${MARL_SRC_DIR}/osfiber_asm_x86.S
+macro(set_linker_flag FLAG)
+    if(${ARGC} GREATER 1)
+        set(CMAKE_EXE_LINKER_FLAGS ${ARGV1} "${CMAKE_EXE_LINKER_FLAGS ${ARGV1}} ${FLAG}")
+    else()
+        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG}")
+    endif()
+endmacro()
+
+if(MSVC)
+    set_cpp_flag("/MP")
+    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+    add_definitions(-D_SCL_SECURE_NO_WARNINGS)
+    add_definitions(-D_SBCS)  # Single Byte Character Set (ASCII)
+    add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE)  # Disable MSVC warnings about std::aligned_storage being broken before VS 2017 15.8
+
+    if(WARNINGS_AS_ERRORS)
+        set_cpp_flag("/WX") # Treat all warnings as errors
+    endif()
+
+    # Disable specific warnings
+    # TODO: Not all of these should be disabled, but for now, we want a warning-free msvc build. Remove these one by one
+    #       and fix the actual warnings in code.
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+        "/wd4005" # 'identifier' : macro redefinition
+        "/wd4018" # 'expression' : signed/unsigned mismatch
+        "/wd4065" # switch statement contains 'default' but no 'case' labels
+        "/wd4141" # 'modifier' : used more than once
+        "/wd4146" # unary minus operator applied to unsigned type, result still unsigned
+        "/wd4244" # 'conversion' conversion from 'type1' to 'type2', possible loss of data
+        "/wd4267" # 'var' : conversion from 'size_t' to 'type', possible loss of data
+        "/wd4291" # 'void X new(size_t,unsigned int,unsigned int)': no matching operator delete found; memory will not be freed if initialization throws an exception
+        "/wd4309" # 'conversion' : truncation of constant value
+        "/wd4624" # 'derived class' : destructor was implicitly defined as deleted because a base class destructor is inaccessible or deleted
+        "/wd4800" # 'type' : forcing value to bool 'true' or 'false' (performance warning)
+        "/wd4838" # conversion from 'type_1' to 'type_2' requires a narrowing conversion
+        "/wd5030" # attribute 'attribute' is not recognized
+        "/wd5038" # data member 'member1' will be initialized after data member 'member2' data member 'member' will be initialized after base class 'base_class'
     )
-endif(NOT MSVC)
 
-file(GLOB MARL_TEST_LIST
-    ${MARL_SRC_DIR}/blockingcall_test.cpp
-    ${MARL_SRC_DIR}/conditionvariable_test.cpp
-    ${MARL_SRC_DIR}/containers_test.cpp
-    ${MARL_SRC_DIR}/defer_test.cpp
-    ${MARL_SRC_DIR}/marl_test.cpp
-    ${MARL_SRC_DIR}/marl_test.h
-    ${MARL_SRC_DIR}/osfiber_test.cpp
-    ${MARL_SRC_DIR}/pool_test.cpp
-    ${MARL_SRC_DIR}/scheduler_test.cpp
-    ${MARL_SRC_DIR}/ticket_test.cpp
-    ${MARL_SRC_DIR}/waitgroup_test.cpp
-)
+    # Treat specific warnings as errors
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+        "/we4018" # 'expression' : signed/unsigned mismatch
+        "/we4471" # 'enumeration': a forward declaration of an unscoped enumeration must have an underlying type (int assumed)
+        "/we4838" # conversion from 'type_1' to 'type_2' requires a narrowing conversion
+        "/we5038" # data member 'member1' will be initialized after data member 'member2' data member 'member' will be initialized after base class 'base_class'
+    )
 
-###########################################################
-# OS libraries
-###########################################################
-if(CMAKE_SYSTEM_NAME MATCHES "Windows")
-    set(MARL_OS_LIBS Kernel32)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
-    set(MARL_OS_LIBS pthread)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
-    set(MARL_OS_LIBS)
+else()
+    set_cpp_flag("--std=c++11")
+    set_cpp_flag("-fno-exceptions")
+
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+        "-Wall"
+        "-Wreorder"
+        "-Wsign-compare"
+        "-Wmissing-braces"
+    )
+
+    if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+        list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+            "-Wunused-lambda-capture"
+            "-Wstring-conversion"
+            "-Wextra-semi"
+            "-Wignored-qualifiers"
+            # Silence errors caused by unknown warnings when building with older
+            # versions of Clang. This demands checking that warnings added above
+            # are spelled correctly and work as intended!
+            "-Wno-unknown-warning-option"
+        )
+    endif()
+
+    # Remove xor, and, or and friends from the list of keywords, they are used
+    # by Reactor
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+        "-fno-operator-names"
+    )
+
+    # LLVM headers requires these flags to be set
+    set_cpp_flag("-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")
+
+    if(ARCH STREQUAL "x86")
+        set_cpp_flag("-m32")
+        set_cpp_flag("-msse2")
+        set_cpp_flag("-mfpmath=sse")
+        set_cpp_flag("-march=pentium4")
+        set_cpp_flag("-mtune=generic")
+    endif()
+    if(ARCH STREQUAL "x86_64")
+        set_cpp_flag("-m64")
+        set_cpp_flag("-fPIC")
+        set_cpp_flag("-march=x86-64")
+        set_cpp_flag("-mtune=generic")
+    endif()
+    if(ARCH STREQUAL "mipsel")
+        set_cpp_flag("-march=mips32r2")
+        set_cpp_flag("-fPIC")
+        set_cpp_flag("-mhard-float")
+        set_cpp_flag("-mfp32")
+    endif()
+    if(ARCH STREQUAL "mips64el")
+        set_cpp_flag("-march=mips64r2")
+        set_cpp_flag("-mabi=64")
+        set_cpp_flag("-fPIC")
+    endif()
+
+    # Use -g3 to have even more debug info
+    set_cpp_flag("-g -g3" DEBUG)
+    set_cpp_flag("-g -g3" RELWITHDEBINFO)
+    if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+        # Treated as an unused argument with clang
+        set_cpp_flag("-s" RELEASE)
+    endif()
+
+    if(WARNINGS_AS_ERRORS)
+        set_cpp_flag("-Werror") # Treat all warnings as errors
+    endif()
+
+    if(DCHECK_ALWAYS_ON)
+        list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DDCHECK_ALWAYS_ON")
+    endif()
+
+    # Disable pedanitc warnings
+    if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+        list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+            "-Wno-ignored-attributes"   # ignoring attributes on template argument 'X'
+            "-Wno-attributes"           # 'X' attribute ignored
+            "-Wno-strict-aliasing"      # dereferencing type-punned pointer will break strict-aliasing rules
+            "-Wno-comment"              # multi-line comment
+        )
+    elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+        list(APPEND SWIFTSHADER_COMPILE_OPTIONS
+            "-Wno-unneeded-internal-declaration"  # function 'X' is not needed and will not be emitted
+            "-Wno-unused-private-field"           # private field 'offset' is not used - TODO: Consider enabling this once Vulkan is further implemented.
+            "-Wno-comment"                        # multi-line comment
+            "-Wno-undefined-var-template"         # instantiation of variable 'X' required here, but no definition is available
+        )
+    endif()
+
+    # For distribution it is more important to be slim than super optimized
+    set_cpp_flag("-Os" RELEASE)
+    set_cpp_flag("-Os" RELWITHDEBINFO)
+
+    set_cpp_flag("-DNDEBUG" RELEASE)
+    set_cpp_flag("-DNDEBUG" RELWITHDEBINFO)
+    set_cpp_flag("-DANGLE_DISABLE_TRACE" RELEASE)
+    set_cpp_flag("-DANGLE_DISABLE_TRACE" RELWITHDEBINFO)
+
+    # Put each variable and function in its own section so that when linking
+    # with -gc-sections unused functions and variables are removed.
+    set_cpp_flag("-ffunction-sections" RELEASE)
+    set_cpp_flag("-fdata-sections" RELEASE)
+    set_cpp_flag("-fomit-frame-pointer" RELEASE)
+
+    if(MSAN)
+        set_cpp_flag("-fsanitize=memory")
+        set_linker_flag("-fsanitize=memory")
+    elseif(ASAN)
+        set_cpp_flag("-fsanitize=address")
+        set_linker_flag("-fsanitize=address")
+    elseif(TSAN)
+        set_cpp_flag("-fsanitize=thread")
+        set_linker_flag("-fsanitize=thread")
+    elseif(UBSAN)
+        set_cpp_flag("-fsanitize=undefined")
+        set_linker_flag("-fsanitize=undefined")
+    endif()
+endif()
+
+if(REACTOR_EMIT_PRINT_LOCATION)
+    # This feature depends on REACTOR_EMIT_DEBUG_INFO, so enable it
+    set(REACTOR_EMIT_DEBUG_INFO "On")
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_EMIT_PRINT_LOCATION")
+endif()
+
+if(REACTOR_EMIT_DEBUG_INFO)
+    message(WARNING "REACTOR_EMIT_DEBUG_INFO is enabled. This will likely affect performance.")
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_DEBUG_INFO")
+endif()
+
+if(REACTOR_VERIFY_LLVM_IR)
+    list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_LLVM_IR_VERIFICATION")
+endif()
+
+if(WIN32)
+    add_definitions(-DWINVER=0x501 -DNOMINMAX -DSTRICT)
+    set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "" "lib")
 endif()
 
 ###########################################################
-# Functions
+# LLVM
 ###########################################################
 
-function(marl_set_target_options target)
-    # Enable all warnings
-    if(NOT MSVC)
-        target_compile_options(${target} PRIVATE "-Wall")
-    endif()
-
-    # Disable specific, pedantic warnings
-    if(MSVC)
-        target_compile_options(${target} PRIVATE "-D_CRT_SECURE_NO_WARNINGS")
-    endif()
-
-    # Treat all warnings as errors
-    if(MARL_WARNINGS_AS_ERRORS)
-        if(MSVC)
-            target_compile_options(${target} PRIVATE "/WX")
-        else()
-            target_compile_options(${target} PRIVATE "-Werror")
-        endif()
-    endif(MARL_WARNINGS_AS_ERRORS)
-
-    if(MARL_ASAN)
-        target_compile_options(${target} PUBLIC "-fsanitize=address")
-        target_link_libraries(${target} "-fsanitize=address")
-    elseif(MARL_MSAN)
-        target_compile_options(${target} PUBLIC "-fsanitize=memory")
-        target_link_libraries(${target} "-fsanitize=memory")
-    endif()
-
-    target_include_directories(${target} PRIVATE ${MARL_INCLUDE_DIR})
-endfunction(marl_set_target_options)
-
-###########################################################
-# Targets
-###########################################################
-
-# marl
-add_library(marl STATIC ${MARL_LIST})
-set_target_properties(marl PROPERTIES
-    POSITION_INDEPENDENT_CODE 1
+set(LLVM_LIST
+    ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/AliasAnalysisSummary.cpp
+    ${LLVM_DIR}/lib/Analysis/AliasSetTracker.cpp
+    ${LLVM_DIR}/lib/Analysis/AssumptionCache.cpp
+    ${LLVM_DIR}/lib/Analysis/BasicAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfoImpl.cpp
+    ${LLVM_DIR}/lib/Analysis/BranchProbabilityInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/CallGraph.cpp
+    ${LLVM_DIR}/lib/Analysis/CallGraphSCCPass.cpp
+    ${LLVM_DIR}/lib/Analysis/CaptureTracking.cpp
+    ${LLVM_DIR}/lib/Analysis/CFG.cpp
+    ${LLVM_DIR}/lib/Analysis/CFLAndersAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/CFLSteensAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/CmpInstAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/CodeMetrics.cpp
+    ${LLVM_DIR}/lib/Analysis/ConstantFolding.cpp
+    ${LLVM_DIR}/lib/Analysis/DemandedBits.cpp
+    ${LLVM_DIR}/lib/Analysis/DependenceAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/DivergenceAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/DominanceFrontier.cpp
+    ${LLVM_DIR}/lib/Analysis/EHPersonalities.cpp
+    ${LLVM_DIR}/lib/Analysis/GlobalsModRef.cpp
+    ${LLVM_DIR}/lib/Analysis/InlineCost.cpp
+    ${LLVM_DIR}/lib/Analysis/InstructionSimplify.cpp
+    ${LLVM_DIR}/lib/Analysis/IteratedDominanceFrontier.cpp
+    ${LLVM_DIR}/lib/Analysis/IVUsers.cpp
+    ${LLVM_DIR}/lib/Analysis/LazyBlockFrequencyInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/LazyBranchProbabilityInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/LazyValueInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/Loads.cpp
+    ${LLVM_DIR}/lib/Analysis/LoopAnalysisManager.cpp
+    ${LLVM_DIR}/lib/Analysis/LoopInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/LoopPass.cpp
+    ${LLVM_DIR}/lib/Analysis/MemoryBuiltins.cpp
+    ${LLVM_DIR}/lib/Analysis/MemoryDependenceAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/MemoryLocation.cpp
+    ${LLVM_DIR}/lib/Analysis/MemorySSA.cpp
+    ${LLVM_DIR}/lib/Analysis/MemorySSAUpdater.cpp
+    ${LLVM_DIR}/lib/Analysis/MustExecute.cpp
+    ${LLVM_DIR}/lib/Analysis/ObjCARCAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/ObjCARCAnalysisUtils.cpp
+    ${LLVM_DIR}/lib/Analysis/ObjCARCInstKind.cpp
+    ${LLVM_DIR}/lib/Analysis/OptimizationRemarkEmitter.cpp
+    ${LLVM_DIR}/lib/Analysis/OrderedBasicBlock.cpp
+    ${LLVM_DIR}/lib/Analysis/PHITransAddr.cpp
+    ${LLVM_DIR}/lib/Analysis/PhiValues.cpp
+    ${LLVM_DIR}/lib/Analysis/PostDominators.cpp
+    ${LLVM_DIR}/lib/Analysis/ProfileSummaryInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/PtrUseVisitor.cpp
+    ${LLVM_DIR}/lib/Analysis/ScalarEvolution.cpp
+    ${LLVM_DIR}/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/ScalarEvolutionExpander.cpp
+    ${LLVM_DIR}/lib/Analysis/ScalarEvolutionNormalization.cpp
+    ${LLVM_DIR}/lib/Analysis/ScopedNoAliasAA.cpp
+    ${LLVM_DIR}/lib/Analysis/TargetLibraryInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/TargetTransformInfo.cpp
+    ${LLVM_DIR}/lib/Analysis/TypeBasedAliasAnalysis.cpp
+    ${LLVM_DIR}/lib/Analysis/ValueLattice.cpp
+    ${LLVM_DIR}/lib/Analysis/ValueLatticeUtils.cpp
+    ${LLVM_DIR}/lib/Analysis/ValueTracking.cpp
+    ${LLVM_DIR}/lib/Analysis/VectorUtils.cpp
+    ${LLVM_DIR}/lib/AsmParser/LLLexer.cpp
+    ${LLVM_DIR}/lib/AsmParser/LLParser.cpp
+    ${LLVM_DIR}/lib/AsmParser/Parser.cpp
+    ${LLVM_DIR}/lib/BinaryFormat/Dwarf.cpp
+    ${LLVM_DIR}/lib/BinaryFormat/Magic.cpp
+    ${LLVM_DIR}/lib/BinaryFormat/Wasm.cpp
+    ${LLVM_DIR}/lib/Bitcode/Reader/BitcodeReader.cpp
+    ${LLVM_DIR}/lib/Bitcode/Reader/BitstreamReader.cpp
+    ${LLVM_DIR}/lib/Bitcode/Reader/MetadataLoader.cpp
+    ${LLVM_DIR}/lib/Bitcode/Reader/ValueList.cpp
+    ${LLVM_DIR}/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+    ${LLVM_DIR}/lib/CodeGen/AllocationOrder.cpp
+    ${LLVM_DIR}/lib/CodeGen/Analysis.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AccelTable.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AddressPool.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/ARMException.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugLocStream.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIE.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIEHash.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfFile.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/EHStreamer.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
+    ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinException.cpp
+    ${LLVM_DIR}/lib/CodeGen/AtomicExpandPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/BasicTargetTransformInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/BranchFolding.cpp
+    ${LLVM_DIR}/lib/CodeGen/BranchRelaxation.cpp
+    ${LLVM_DIR}/lib/CodeGen/BreakFalseDeps.cpp
+    ${LLVM_DIR}/lib/CodeGen/CalcSpillWeights.cpp
+    ${LLVM_DIR}/lib/CodeGen/CallingConvLower.cpp
+    ${LLVM_DIR}/lib/CodeGen/CFIInstrInserter.cpp
+    ${LLVM_DIR}/lib/CodeGen/CodeGen.cpp
+    ${LLVM_DIR}/lib/CodeGen/CodeGenPrepare.cpp
+    ${LLVM_DIR}/lib/CodeGen/CriticalAntiDepBreaker.cpp
+    ${LLVM_DIR}/lib/CodeGen/DeadMachineInstructionElim.cpp
+    ${LLVM_DIR}/lib/CodeGen/DetectDeadLanes.cpp
+    ${LLVM_DIR}/lib/CodeGen/DFAPacketizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/DwarfEHPrepare.cpp
+    ${LLVM_DIR}/lib/CodeGen/EarlyIfConversion.cpp
+    ${LLVM_DIR}/lib/CodeGen/EdgeBundles.cpp
+    ${LLVM_DIR}/lib/CodeGen/ExecutionDomainFix.cpp
+    ${LLVM_DIR}/lib/CodeGen/ExpandISelPseudos.cpp
+    ${LLVM_DIR}/lib/CodeGen/ExpandMemCmp.cpp
+    ${LLVM_DIR}/lib/CodeGen/ExpandPostRAPseudos.cpp
+    ${LLVM_DIR}/lib/CodeGen/ExpandReductions.cpp
+    ${LLVM_DIR}/lib/CodeGen/FaultMaps.cpp
+    ${LLVM_DIR}/lib/CodeGen/FEntryInserter.cpp
+    ${LLVM_DIR}/lib/CodeGen/FuncletLayout.cpp
+    ${LLVM_DIR}/lib/CodeGen/GCMetadata.cpp
+    ${LLVM_DIR}/lib/CodeGen/GCMetadataPrinter.cpp
+    ${LLVM_DIR}/lib/CodeGen/GCRootLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/GCStrategy.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/CallLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/GlobalISel.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelector.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/IRTranslator.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/Legalizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/Localizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBank.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/GlobalISel/Utils.cpp
+    ${LLVM_DIR}/lib/CodeGen/IfConversion.cpp
+    ${LLVM_DIR}/lib/CodeGen/ImplicitNullChecks.cpp
+    ${LLVM_DIR}/lib/CodeGen/IndirectBrExpandPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/InlineSpiller.cpp
+    ${LLVM_DIR}/lib/CodeGen/InterferenceCache.cpp
+    ${LLVM_DIR}/lib/CodeGen/InterleavedAccessPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/IntrinsicLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/LatencyPriorityQueue.cpp
+    ${LLVM_DIR}/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/LexicalScopes.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveDebugValues.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveDebugVariables.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveInterval.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveIntervals.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveIntervalUnion.cpp
+    ${LLVM_DIR}/lib/CodeGen/LivePhysRegs.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveRangeCalc.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveRangeEdit.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveRangeShrink.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveRegMatrix.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveRegUnits.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveStacks.cpp
+    ${LLVM_DIR}/lib/CodeGen/LiveVariables.cpp
+    ${LLVM_DIR}/lib/CodeGen/LLVMTargetMachine.cpp
+    ${LLVM_DIR}/lib/CodeGen/LocalStackSlotAllocation.cpp
+    ${LLVM_DIR}/lib/CodeGen/LoopTraversal.cpp
+    ${LLVM_DIR}/lib/CodeGen/LowerEmuTLS.cpp
+    ${LLVM_DIR}/lib/CodeGen/LowLevelType.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineBasicBlock.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineBlockFrequencyInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineBlockPlacement.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineBranchProbabilityInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineCombiner.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineCopyPropagation.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineCSE.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineDominanceFrontier.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineDominators.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineFrameInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineFunction.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineFunctionPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineFunctionPrinterPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineInstr.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineInstrBundle.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineLICM.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineLoopInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineModuleInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineModuleInfoImpls.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineOperand.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineOutliner.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachinePassRegistry.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachinePipeliner.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachinePostDominators.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineRegionInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineRegisterInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineScheduler.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineSink.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineSSAUpdater.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineTraceMetrics.cpp
+    ${LLVM_DIR}/lib/CodeGen/MachineVerifier.cpp
+    ${LLVM_DIR}/lib/CodeGen/MacroFusion.cpp
+    ${LLVM_DIR}/lib/CodeGen/MIRCanonicalizerPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/MIRPrinter.cpp
+    ${LLVM_DIR}/lib/CodeGen/MIRPrintingPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/OptimizePHIs.cpp
+    ${LLVM_DIR}/lib/CodeGen/PatchableFunction.cpp
+    ${LLVM_DIR}/lib/CodeGen/PeepholeOptimizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/PHIElimination.cpp
+    ${LLVM_DIR}/lib/CodeGen/PHIEliminationUtils.cpp
+    ${LLVM_DIR}/lib/CodeGen/PostRAHazardRecognizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/PostRASchedulerList.cpp
+    ${LLVM_DIR}/lib/CodeGen/PreISelIntrinsicLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/ProcessImplicitDefs.cpp
+    ${LLVM_DIR}/lib/CodeGen/PrologEpilogInserter.cpp
+    ${LLVM_DIR}/lib/CodeGen/PseudoSourceValue.cpp
+    ${LLVM_DIR}/lib/CodeGen/ReachingDefAnalysis.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegAllocBase.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegAllocBasic.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegAllocFast.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegAllocGreedy.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegisterClassInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegisterCoalescer.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegisterPressure.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegisterScavenging.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegisterUsageInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegUsageInfoCollector.cpp
+    ${LLVM_DIR}/lib/CodeGen/RegUsageInfoPropagate.cpp
+    ${LLVM_DIR}/lib/CodeGen/RenameIndependentSubregs.cpp
+    ${LLVM_DIR}/lib/CodeGen/ResetMachineFunctionPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/SafeStack.cpp
+    ${LLVM_DIR}/lib/CodeGen/SafeStackColoring.cpp
+    ${LLVM_DIR}/lib/CodeGen/SafeStackLayout.cpp
+    ${LLVM_DIR}/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
+    ${LLVM_DIR}/lib/CodeGen/ScheduleDAG.cpp
+    ${LLVM_DIR}/lib/CodeGen/ScheduleDAGInstrs.cpp
+    ${LLVM_DIR}/lib/CodeGen/ScheduleDAGPrinter.cpp
+    ${LLVM_DIR}/lib/CodeGen/ScoreboardHazardRecognizer.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FastISel.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/ShadowStackGCLowering.cpp
+    ${LLVM_DIR}/lib/CodeGen/ShrinkWrap.cpp
+    ${LLVM_DIR}/lib/CodeGen/SjLjEHPrepare.cpp
+    ${LLVM_DIR}/lib/CodeGen/SlotIndexes.cpp
+    ${LLVM_DIR}/lib/CodeGen/SpillPlacement.cpp
+    ${LLVM_DIR}/lib/CodeGen/SplitKit.cpp
+    ${LLVM_DIR}/lib/CodeGen/StackColoring.cpp
+    ${LLVM_DIR}/lib/CodeGen/StackMapLivenessAnalysis.cpp
+    ${LLVM_DIR}/lib/CodeGen/StackMaps.cpp
+    ${LLVM_DIR}/lib/CodeGen/StackProtector.cpp
+    ${LLVM_DIR}/lib/CodeGen/StackSlotColoring.cpp
+    ${LLVM_DIR}/lib/CodeGen/TailDuplication.cpp
+    ${LLVM_DIR}/lib/CodeGen/TailDuplicator.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetFrameLoweringImpl.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetInstrInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetLoweringBase.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetOptionsImpl.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetPassConfig.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetRegisterInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetSchedule.cpp
+    ${LLVM_DIR}/lib/CodeGen/TargetSubtargetInfo.cpp
+    ${LLVM_DIR}/lib/CodeGen/TwoAddressInstructionPass.cpp
+    ${LLVM_DIR}/lib/CodeGen/UnreachableBlockElim.cpp
+    ${LLVM_DIR}/lib/CodeGen/ValueTypes.cpp
+    ${LLVM_DIR}/lib/CodeGen/VirtRegMap.cpp
+    ${LLVM_DIR}/lib/CodeGen/WasmEHPrepare.cpp
+    ${LLVM_DIR}/lib/CodeGen/WinEHPrepare.cpp
+    ${LLVM_DIR}/lib/CodeGen/XRayInstrumentation.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewError.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/Formatters.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/Line.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordName.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordSerialization.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeHashing.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndex.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
+    ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeTableCollection.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/ExecutionEngine.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/GDBRegistrationListener.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/Orc/Core.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/Orc/Legacy.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcError.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/SectionMemoryManager.cpp
+    ${LLVM_DIR}/lib/ExecutionEngine/TargetSelect.cpp
+    ${LLVM_DIR}/lib/IR/AsmWriter.cpp
+    ${LLVM_DIR}/lib/IR/Attributes.cpp
+    ${LLVM_DIR}/lib/IR/AutoUpgrade.cpp
+    ${LLVM_DIR}/lib/IR/BasicBlock.cpp
+    ${LLVM_DIR}/lib/IR/Comdat.cpp
+    ${LLVM_DIR}/lib/IR/ConstantFold.cpp
+    ${LLVM_DIR}/lib/IR/ConstantRange.cpp
+    ${LLVM_DIR}/lib/IR/Constants.cpp
+    ${LLVM_DIR}/lib/IR/DataLayout.cpp
+    ${LLVM_DIR}/lib/IR/DebugInfo.cpp
+    ${LLVM_DIR}/lib/IR/DebugInfoMetadata.cpp
+    ${LLVM_DIR}/lib/IR/DebugLoc.cpp
+    ${LLVM_DIR}/lib/IR/DiagnosticHandler.cpp
+    ${LLVM_DIR}/lib/IR/DiagnosticInfo.cpp
+    ${LLVM_DIR}/lib/IR/DiagnosticPrinter.cpp
+    ${LLVM_DIR}/lib/IR/DIBuilder.cpp
+    ${LLVM_DIR}/lib/IR/Dominators.cpp
+    ${LLVM_DIR}/lib/IR/Function.cpp
+    ${LLVM_DIR}/lib/IR/Globals.cpp
+    ${LLVM_DIR}/lib/IR/GVMaterializer.cpp
+    ${LLVM_DIR}/lib/IR/InlineAsm.cpp
+    ${LLVM_DIR}/lib/IR/Instruction.cpp
+    ${LLVM_DIR}/lib/IR/Instructions.cpp
+    ${LLVM_DIR}/lib/IR/IntrinsicInst.cpp
+    ${LLVM_DIR}/lib/IR/IRBuilder.cpp
+    ${LLVM_DIR}/lib/IR/IRPrintingPasses.cpp
+    ${LLVM_DIR}/lib/IR/LegacyPassManager.cpp
+    ${LLVM_DIR}/lib/IR/LLVMContext.cpp
+    ${LLVM_DIR}/lib/IR/LLVMContextImpl.cpp
+    ${LLVM_DIR}/lib/IR/Mangler.cpp
+    ${LLVM_DIR}/lib/IR/MDBuilder.cpp
+    ${LLVM_DIR}/lib/IR/Metadata.cpp
+    ${LLVM_DIR}/lib/IR/Module.cpp
+    ${LLVM_DIR}/lib/IR/Operator.cpp
+    ${LLVM_DIR}/lib/IR/OptBisect.cpp
+    ${LLVM_DIR}/lib/IR/Pass.cpp
+    ${LLVM_DIR}/lib/IR/PassManager.cpp
+    ${LLVM_DIR}/lib/IR/PassRegistry.cpp
+    ${LLVM_DIR}/lib/IR/ProfileSummary.cpp
+    ${LLVM_DIR}/lib/IR/Statepoint.cpp
+    ${LLVM_DIR}/lib/IR/Type.cpp
+    ${LLVM_DIR}/lib/IR/TypeFinder.cpp
+    ${LLVM_DIR}/lib/IR/Use.cpp
+    ${LLVM_DIR}/lib/IR/User.cpp
+    ${LLVM_DIR}/lib/IR/Value.cpp
+    ${LLVM_DIR}/lib/IR/ValueSymbolTable.cpp
+    ${LLVM_DIR}/lib/IR/Verifier.cpp
+    ${LLVM_DIR}/lib/MC/ELFObjectWriter.cpp
+    ${LLVM_DIR}/lib/MC/MachObjectWriter.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmBackend.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmInfo.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmInfoCOFF.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmInfoDarwin.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmInfoELF.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmMacro.cpp
+    ${LLVM_DIR}/lib/MC/MCAsmStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCAssembler.cpp
+    ${LLVM_DIR}/lib/MC/MCCodeEmitter.cpp
+    ${LLVM_DIR}/lib/MC/MCCodePadder.cpp
+    ${LLVM_DIR}/lib/MC/MCCodeView.cpp
+    ${LLVM_DIR}/lib/MC/MCContext.cpp
+    ${LLVM_DIR}/lib/MC/MCDisassembler/MCRelocationInfo.cpp
+    ${LLVM_DIR}/lib/MC/MCDwarf.cpp
+    ${LLVM_DIR}/lib/MC/MCELFObjectTargetWriter.cpp
+    ${LLVM_DIR}/lib/MC/MCELFStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCExpr.cpp
+    ${LLVM_DIR}/lib/MC/MCFragment.cpp
+    ${LLVM_DIR}/lib/MC/MCInst.cpp
+    ${LLVM_DIR}/lib/MC/MCInstPrinter.cpp
+    ${LLVM_DIR}/lib/MC/MCInstrAnalysis.cpp
+    ${LLVM_DIR}/lib/MC/MCInstrDesc.cpp
+    ${LLVM_DIR}/lib/MC/MCLinkerOptimizationHint.cpp
+    ${LLVM_DIR}/lib/MC/MCMachObjectTargetWriter.cpp
+    ${LLVM_DIR}/lib/MC/MCMachOStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCNullStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCObjectFileInfo.cpp
+    ${LLVM_DIR}/lib/MC/MCObjectStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCObjectWriter.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/AsmLexer.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/AsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/COFFAsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/DarwinAsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/ELFAsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/MCAsmLexer.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/MCAsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/MCAsmParserExtension.cpp
+    ${LLVM_DIR}/lib/MC/MCParser/MCTargetAsmParser.cpp
+    ${LLVM_DIR}/lib/MC/MCRegisterInfo.cpp
+    ${LLVM_DIR}/lib/MC/MCSchedule.cpp
+    ${LLVM_DIR}/lib/MC/MCSection.cpp
+    ${LLVM_DIR}/lib/MC/MCSectionCOFF.cpp
+    ${LLVM_DIR}/lib/MC/MCSectionELF.cpp
+    ${LLVM_DIR}/lib/MC/MCSectionMachO.cpp
+    ${LLVM_DIR}/lib/MC/MCSectionWasm.cpp
+    ${LLVM_DIR}/lib/MC/MCStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCSubtargetInfo.cpp
+    ${LLVM_DIR}/lib/MC/MCSymbol.cpp
+    ${LLVM_DIR}/lib/MC/MCSymbolELF.cpp
+    ${LLVM_DIR}/lib/MC/MCTargetOptions.cpp
+    ${LLVM_DIR}/lib/MC/MCValue.cpp
+    ${LLVM_DIR}/lib/MC/MCWasmStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCWin64EH.cpp
+    ${LLVM_DIR}/lib/MC/MCWinCOFFStreamer.cpp
+    ${LLVM_DIR}/lib/MC/MCWinEH.cpp
+    ${LLVM_DIR}/lib/MC/StringTableBuilder.cpp
+    ${LLVM_DIR}/lib/MC/SubtargetFeature.cpp
+    ${LLVM_DIR}/lib/MC/WasmObjectWriter.cpp
+    ${LLVM_DIR}/lib/MC/WinCOFFObjectWriter.cpp
+    ${LLVM_DIR}/lib/Object/Archive.cpp
+    ${LLVM_DIR}/lib/Object/Binary.cpp
+    ${LLVM_DIR}/lib/Object/COFFObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/ELF.cpp
+    ${LLVM_DIR}/lib/Object/ELFObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/Error.cpp
+    ${LLVM_DIR}/lib/Object/IRObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/IRSymtab.cpp
+    ${LLVM_DIR}/lib/Object/MachOObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/MachOUniversal.cpp
+    ${LLVM_DIR}/lib/Object/ModuleSymbolTable.cpp
+    ${LLVM_DIR}/lib/Object/ObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/RecordStreamer.cpp
+    ${LLVM_DIR}/lib/Object/SymbolicFile.cpp
+    ${LLVM_DIR}/lib/Object/WasmObjectFile.cpp
+    ${LLVM_DIR}/lib/Object/WindowsResource.cpp
+    ${LLVM_DIR}/lib/ProfileData/InstrProf.cpp
+    ${LLVM_DIR}/lib/Support/APFloat.cpp
+    ${LLVM_DIR}/lib/Support/APInt.cpp
+    ${LLVM_DIR}/lib/Support/APSInt.cpp
+    ${LLVM_DIR}/lib/Support/ARMAttributeParser.cpp
+    ${LLVM_DIR}/lib/Support/ARMBuildAttrs.cpp
+    ${LLVM_DIR}/lib/Support/Atomic.cpp
+    ${LLVM_DIR}/lib/Support/BinaryStreamError.cpp
+    ${LLVM_DIR}/lib/Support/BinaryStreamReader.cpp
+    ${LLVM_DIR}/lib/Support/BinaryStreamRef.cpp
+    ${LLVM_DIR}/lib/Support/BinaryStreamWriter.cpp
+    ${LLVM_DIR}/lib/Support/BlockFrequency.cpp
+    ${LLVM_DIR}/lib/Support/BranchProbability.cpp
+    ${LLVM_DIR}/lib/Support/Chrono.cpp
+    ${LLVM_DIR}/lib/Support/circular_raw_ostream.cpp
+    ${LLVM_DIR}/lib/Support/CodeGenCoverage.cpp
+    ${LLVM_DIR}/lib/Support/CommandLine.cpp
+    ${LLVM_DIR}/lib/Support/Compression.cpp
+    ${LLVM_DIR}/lib/Support/ConvertUTF.cpp
+    ${LLVM_DIR}/lib/Support/ConvertUTFWrapper.cpp
+    ${LLVM_DIR}/lib/Support/DataExtractor.cpp
+    ${LLVM_DIR}/lib/Support/Debug.cpp
+    ${LLVM_DIR}/lib/Support/DebugCounter.cpp
+    ${LLVM_DIR}/lib/Support/DJB.cpp
+    ${LLVM_DIR}/lib/Support/DynamicLibrary.cpp
+    ${LLVM_DIR}/lib/Support/Errno.cpp
+    ${LLVM_DIR}/lib/Support/Error.cpp
+    ${LLVM_DIR}/lib/Support/ErrorHandling.cpp
+    ${LLVM_DIR}/lib/Support/FoldingSet.cpp
+    ${LLVM_DIR}/lib/Support/FormattedStream.cpp
+    ${LLVM_DIR}/lib/Support/FormatVariadic.cpp
+    ${LLVM_DIR}/lib/Support/GraphWriter.cpp
+    ${LLVM_DIR}/lib/Support/Hashing.cpp
+    ${LLVM_DIR}/lib/Support/Host.cpp
+    ${LLVM_DIR}/lib/Support/IntEqClasses.cpp
+    ${LLVM_DIR}/lib/Support/IntervalMap.cpp
+    ${LLVM_DIR}/lib/Support/JamCRC.cpp
+    ${LLVM_DIR}/lib/Support/KnownBits.cpp
+    ${LLVM_DIR}/lib/Support/LEB128.cpp
+    ${LLVM_DIR}/lib/Support/LineIterator.cpp
+    ${LLVM_DIR}/lib/Support/Locale.cpp
+    ${LLVM_DIR}/lib/Support/LowLevelType.cpp
+    ${LLVM_DIR}/lib/Support/ManagedStatic.cpp
+    ${LLVM_DIR}/lib/Support/MathExtras.cpp
+    ${LLVM_DIR}/lib/Support/MD5.cpp
+    ${LLVM_DIR}/lib/Support/Memory.cpp
+    ${LLVM_DIR}/lib/Support/MemoryBuffer.cpp
+    ${LLVM_DIR}/lib/Support/Mutex.cpp
+    ${LLVM_DIR}/lib/Support/NativeFormatting.cpp
+    ${LLVM_DIR}/lib/Support/Path.cpp
+    ${LLVM_DIR}/lib/Support/PrettyStackTrace.cpp
+    ${LLVM_DIR}/lib/Support/Process.cpp
+    ${LLVM_DIR}/lib/Support/Program.cpp
+    ${LLVM_DIR}/lib/Support/RandomNumberGenerator.cpp
+    ${LLVM_DIR}/lib/Support/raw_ostream.cpp
+    ${LLVM_DIR}/lib/Support/regcomp.c
+    ${LLVM_DIR}/lib/Support/regerror.c
+    ${LLVM_DIR}/lib/Support/Regex.cpp
+    ${LLVM_DIR}/lib/Support/regexec.c
+    ${LLVM_DIR}/lib/Support/regfree.c
+    ${LLVM_DIR}/lib/Support/regstrlcpy.c
+    ${LLVM_DIR}/lib/Support/RWMutex.cpp
+    ${LLVM_DIR}/lib/Support/ScaledNumber.cpp
+    ${LLVM_DIR}/lib/Support/ScopedPrinter.cpp
+    ${LLVM_DIR}/lib/Support/SHA1.cpp
+    ${LLVM_DIR}/lib/Support/Signals.cpp
+    ${LLVM_DIR}/lib/Support/SmallPtrSet.cpp
+    ${LLVM_DIR}/lib/Support/SmallVector.cpp
+    ${LLVM_DIR}/lib/Support/SourceMgr.cpp
+    ${LLVM_DIR}/lib/Support/Statistic.cpp
+    ${LLVM_DIR}/lib/Support/StringExtras.cpp
+    ${LLVM_DIR}/lib/Support/StringMap.cpp
+    ${LLVM_DIR}/lib/Support/StringRef.cpp
+    ${LLVM_DIR}/lib/Support/StringSaver.cpp
+    ${LLVM_DIR}/lib/Support/TargetParser.cpp
+    ${LLVM_DIR}/lib/Support/TargetRegistry.cpp
+    ${LLVM_DIR}/lib/Support/Threading.cpp
+    ${LLVM_DIR}/lib/Support/Timer.cpp
+    ${LLVM_DIR}/lib/Support/ToolOutputFile.cpp
+    ${LLVM_DIR}/lib/Support/Triple.cpp
+    ${LLVM_DIR}/lib/Support/Twine.cpp
+    ${LLVM_DIR}/lib/Support/Unicode.cpp
+    ${LLVM_DIR}/lib/Support/UnicodeCaseFold.cpp
+    ${LLVM_DIR}/lib/Support/Valgrind.cpp
+    ${LLVM_DIR}/lib/Support/YAMLParser.cpp
+    ${LLVM_DIR}/lib/Support/YAMLTraits.cpp
+    ${LLVM_DIR}/lib/Target/TargetLoweringObjectFile.cpp
+    ${LLVM_DIR}/lib/Target/TargetMachine.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/CoroCleanup.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/CoroEarly.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/CoroElide.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/CoroFrame.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/CoroSplit.cpp
+    ${LLVM_DIR}/lib/Transforms/Coroutines/Coroutines.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAddSub.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCalls.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCasts.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCompares.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombinePHI.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSelect.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineShifts.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+    ${LLVM_DIR}/lib/Transforms/InstCombine/InstructionCombining.cpp
+    ${LLVM_DIR}/lib/Transforms/IPO/BarrierNoopPass.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/ADCE.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/ConstantHoisting.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/DeadStoreElimination.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/EarlyCSE.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/GVN.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/LICM.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/MergeICmps.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/Reassociate.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/SCCP.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/SimplifyCFGPass.cpp
+    ${LLVM_DIR}/lib/Transforms/Scalar/SROA.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/BasicBlockUtils.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/BreakCriticalEdges.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/BuildLibCalls.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/BypassSlowDivision.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/CloneFunction.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/DemoteRegToStack.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/EntryExitInstrumenter.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/EscapeEnumerator.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/InlineFunction.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/LCSSA.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/Local.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/LoopSimplify.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/LoopUtils.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/LowerInvoke.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/OrderedInstructions.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/SimplifyCFG.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/SimplifyLibCalls.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/SSAUpdater.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/SymbolRewriter.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/ValueMapper.cpp
+    ${LLVM_DIR}/lib/Transforms/Utils/VNCoercion.cpp
+    ${LLVM_DIR}/../stubs/Stubs.cpp
 )
 
-marl_set_target_options(marl)
+if(ARCH STREQUAL "x86" OR ARCH STREQUAL "x86_64")
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
+        ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmParser.cpp
+        ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstComments.cpp
+        ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp
+        ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
+        ${LLVM_DIR}/lib/Target/X86/ShadowCallStack.cpp
+        ${LLVM_DIR}/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/Utils/X86ShuffleDecode.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86AsmPrinter.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86CallFrameOptimization.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86CallingConv.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86CallLowering.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86CmovConversion.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86DomainReassignment.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86EvexToVex.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86ExpandPseudo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FastISel.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FixupBWInsts.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FixupLEAs.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FixupSetCC.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FlagsCopyLowering.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FloatingPoint.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86FrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86IndirectBranchTracking.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86InstrFMA3Info.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86InstrFoldTables.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86InstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86InstructionSelector.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86InterleavedAccess.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86ISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86ISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86LegalizerInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86MachineFunctionInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86MacroFusion.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86MCInstLower.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86OptimizeLEAs.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86PadShortFunction.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86RegisterBankInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86RegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86RetpolineThunks.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86SelectionDAGInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86SpeculativeLoadHardening.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86Subtarget.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86TargetMachine.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86TargetObjectFile.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86TargetTransformInfo.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86VZeroUpper.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86WinAllocaExpander.cpp
+        ${LLVM_DIR}/lib/Target/X86/X86WinEHState.cpp
+    )
+elseif(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+        ${LLVM_DIR}/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MicroMipsSizeReduction.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16FrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloat.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloatInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16InstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16ISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16ISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/Mips16RegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsAnalyzeImmediate.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsAsmPrinter.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsBranchExpansion.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsCallLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsCCState.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsConstantIslandPass.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsDelaySlotFiller.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsExpandPseudo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsFastISel.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsFrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsInstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsInstructionSelector.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsLegalizerInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsMachineFunction.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsMCInstLower.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsOptimizePICCall.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsOs16.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsRegisterBankInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsRegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSEFrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSEInstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSEISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSERegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsSubtarget.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsTargetMachine.cpp
+        ${LLVM_DIR}/lib/Target/Mips/MipsTargetObjectFile.cpp
+        ${LLVM_DIR}/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
+    )
+elseif(ARCH STREQUAL "aarch64")
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/CodeGen/GlobalMerge.cpp
+        ${LLVM_DIR}/lib/CodeGen/RegAllocPBQP.cpp
+        ${LLVM_DIR}/lib/MC/ConstantPools.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64A53Fix835769.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64AsmPrinter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64CallLowering.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64CollectLOH.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64CondBrTuning.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64FastISel.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64FrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64InstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64InstructionSelector.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64LegalizerInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64MacroFusion.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64MCInstLower.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64PromoteConstant.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64StorePairSuppress.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64Subtarget.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetMachine.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetObjectFile.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
+        ${LLVM_DIR}/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
+        ${LLVM_DIR}/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+        ${LLVM_DIR}/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
+    )
+elseif(ARCH STREQUAL "arm")
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/Target/ARM/A15SDOptimizer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMAsmPrinter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMBaseInstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMBaseRegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMCallLowering.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMCodeGenPrepare.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMComputeBlockSize.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMConstantIslandPass.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMConstantPoolValue.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMFastISel.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMFrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMHazardRecognizer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMInstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMInstructionSelector.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMLegalizerInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMMachineFunctionInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMMacroFusion.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMMCInstLower.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMParallelDSP.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMRegisterBankInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMRegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMSelectionDAGInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMSubtarget.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMTargetMachine.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMTargetObjectFile.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ARMTargetTransformInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+        ${LLVM_DIR}/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
+        ${LLVM_DIR}/lib/Target/ARM/MLxExpansionPass.cpp
+        ${LLVM_DIR}/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Thumb1FrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Thumb1InstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Thumb2InstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Thumb2ITBlockPass.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Thumb2SizeReduction.cpp
+        ${LLVM_DIR}/lib/Target/ARM/ThumbRegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/ARM/Utils/ARMBaseInfo.cpp
+    )
+elseif(ARCH STREQUAL "ppc64le")
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCAsmPrinter.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCBoolRetToInt.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCBranchCoalescing.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCBranchSelector.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCCCState.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCCTRLoops.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCEarlyReturn.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCExpandISEL.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCFastISel.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCFrameLowering.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCHazardRecognizers.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCInstrInfo.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCISelLowering.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCMCInstLower.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCMIPeephole.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCQPXLoadSplat.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCRegisterInfo.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCSubtarget.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetMachine.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetObjectFile.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCTOCRegDeps.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXCopy.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
+        ${LLVM_DIR}/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
+    )
+endif()
 
-target_link_libraries(marl "${MARL_OS_LIBS}")
+if(REACTOR_EMIT_DEBUG_INFO)
+    list(APPEND LLVM_LIST
+        ${LLVM_DIR}/lib/Demangle/ItaniumDemangle.cpp
+    )
+endif(REACTOR_EMIT_DEBUG_INFO)
 
-# tests
-if(MARL_BUILD_TESTS)
-    file(GLOB MARL_TEST_LIST
-        ${MARL_SRC_DIR}/*_test.cpp
-        ${GOOGLETEST_DIR}/googletest/src/gtest-all.cc
+set(LLVM_INCLUDE_DIR "")
+
+if(WIN32)
+    list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/windows/include)
+elseif(LINUX)
+    list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/linux/include)
+    list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/linux/include)
+elseif(APPLE)
+    list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/darwin/include)
+    list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/darwin/include)
+elseif(ANDROID)
+    list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/android/include)
+    list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/android/include)
+endif()
+
+list(APPEND LLVM_INCLUDE_DIR
+    ${LLVM_DIR}/include
+    ${LLVM_DIR}/lib/Target/AArch64
+    ${LLVM_DIR}/lib/Target/ARM
+    ${LLVM_DIR}/lib/Target/Mips
+    ${LLVM_DIR}/lib/Target/PowerPC
+    ${LLVM_DIR}/lib/Target/X86
+    ${LLVM_CONFIG_DIR}/common/include
+    ${LLVM_CONFIG_DIR}/common/lib/IR
+    ${LLVM_CONFIG_DIR}/common/lib/Target/AArch64
+    ${LLVM_CONFIG_DIR}/common/lib/Target/ARM
+    ${LLVM_CONFIG_DIR}/common/lib/Target/Mips
+    ${LLVM_CONFIG_DIR}/common/lib/Target/PowerPC
+    ${LLVM_CONFIG_DIR}/common/lib/Target/X86
+    ${LLVM_CONFIG_DIR}/common/lib/Transforms/InstCombine
+)
+
+# Suppress known LLVM warnings
+set(LLVM_COMPILE_OPTIONS)
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+    list(APPEND LLVM_COMPILE_OPTIONS
+        "-Wno-noexcept-type"           # mangled name for ‘X’ will change in C++17 because the exception specification is part of a function type
+        "-Wno-maybe-uninitialized"     # ‘X’ may be used uninitialized in this function
+        "-Wno-unused-but-set-variable" # variable ‘X’ set but not used
+    )
+    if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8)
+        list(APPEND LLVM_COMPILE_OPTIONS
+            "-Wno-class-memaccess"  # memset/memcmp used on non-trivial class object
+            "-Wno-attributes"	# declared inline but not inline
+        )
+    endif()
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+    list(APPEND LLVM_COMPILE_OPTIONS
+        "/wd4141" # 'inline': used more than once
+        "/wd4146" # unary minus operator applied to unsigned type, result still unsigned
+        "/wd4244" # 'X': conversion from 'uint64_t' to 'const unsigned int', possible loss of data
+        "/wd4267" # 'X': conversion from 'size_t' to 'unsigned int', possible loss of data
+        "/wd4291" # 'void X new(size_t,unsigned int,unsigned int)': no matching operator delete found; memory will not be freed if initialization throws an exception
+        "/wd4319" # 'X': zero extending 'unsigned int' to 'uint64_t' of greater size
+        "/wd4624" # 'X': destructor was implicitly defined as deleted
+        "/wd4805" # 'X': unsafe mix of type 'unsigned int' and type 'bool' in operation
+        "/wd4996" # 'X': Call to 'Y' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct.
+    )
+endif()
+
+add_library(llvm STATIC ${LLVM_LIST})
+set_target_properties(llvm PROPERTIES
+    POSITION_INDEPENDENT_CODE 1
+    INCLUDE_DIRECTORIES "${LLVM_INCLUDE_DIR}"
+    COMPILE_OPTIONS "${LLVM_COMPILE_OPTIONS}"
+    COMPILE_DEFINITIONS "__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;"
+    FOLDER "LLVM"
+)
+
+# Add required libraries for LLVM
+if(LINUX)
+    target_link_libraries(llvm dl)
+endif(LINUX)
+
+###########################################################
+# Subzero
+###########################################################
+
+if(${REACTOR_BACKEND} STREQUAL "Subzero")
+    set(SUBZERO_LIST
+        ${SUBZERO_DIR}/src/IceAssembler.cpp
+        ${SUBZERO_DIR}/src/IceCfg.cpp
+        ${SUBZERO_DIR}/src/IceCfgNode.cpp
+        ${SUBZERO_DIR}/src/IceClFlags.cpp
+        ${SUBZERO_DIR}/src/IceELFObjectWriter.cpp
+        ${SUBZERO_DIR}/src/IceELFSection.cpp
+        ${SUBZERO_DIR}/src/IceFixups.cpp
+        ${SUBZERO_DIR}/src/IceGlobalContext.cpp
+        ${SUBZERO_DIR}/src/IceGlobalInits.cpp
+        ${SUBZERO_DIR}/src/IceInst.cpp
+        ${SUBZERO_DIR}/src/IceInstrumentation.cpp
+        ${SUBZERO_DIR}/src/IceIntrinsics.cpp
+        ${SUBZERO_DIR}/src/IceLiveness.cpp
+        ${SUBZERO_DIR}/src/IceLoopAnalyzer.cpp
+        ${SUBZERO_DIR}/src/IceMangling.cpp
+        ${SUBZERO_DIR}/src/IceMemory.cpp
+        ${SUBZERO_DIR}/src/IceOperand.cpp
+        ${SUBZERO_DIR}/src/IceRangeSpec.cpp
+        ${SUBZERO_DIR}/src/IceRegAlloc.cpp
+        ${SUBZERO_DIR}/src/IceRevision.cpp
+        ${SUBZERO_DIR}/src/IceRNG.cpp
+        ${SUBZERO_DIR}/src/IceSwitchLowering.cpp
+        ${SUBZERO_DIR}/src/IceTargetLowering.cpp
+        ${SUBZERO_DIR}/src/IceThreading.cpp
+        ${SUBZERO_DIR}/src/IceTimerTree.cpp
+        ${SUBZERO_DIR}/src/IceTypes.cpp
+        ${SUBZERO_DIR}/src/IceVariableSplitting.cpp
     )
 
-    set(MARL_TEST_INCLUDE_DIR
-        ${GOOGLETEST_DIR}/googletest/include/
-        ${GOOGLETEST_DIR}/googlemock/include/
-        ${GOOGLETEST_DIR}/googletest/
+    # FIXME: Shouldn't depend on external source files directly.
+    list(APPEND SUBZERO_LIST
+        ${SOURCE_DIR}/Common/Memory.cpp
     )
 
-    add_executable(marl-unittests ${MARL_TEST_LIST})
+    if(ARCH STREQUAL "x86_64")
+        list(APPEND SUBZERO_LIST
+            ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
+            ${SUBZERO_DIR}/src/IceInstX8664.cpp
+            ${SUBZERO_DIR}/src/IceTargetLoweringX8664.cpp
+        )
+        set(SUBZERO_TARGET X8664)
+    elseif(ARCH STREQUAL "x86")
+        list(APPEND SUBZERO_LIST
+            ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
+            ${SUBZERO_DIR}/src/IceInstX8632.cpp
+            ${SUBZERO_DIR}/src/IceTargetLoweringX8632.cpp
+        )
+        set(SUBZERO_TARGET X8632)
+    elseif(ARCH STREQUAL "arm")
+        list(APPEND SUBZERO_LIST
+            ${SUBZERO_DIR}/src/IceAssemblerARM32.cpp
+            ${SUBZERO_DIR}/src/IceInstARM32.cpp
+            ${SUBZERO_DIR}/src/IceTargetLoweringARM32.cpp
+        )
+        set(SUBZERO_TARGET ARM32)
+    elseif(ARCH STREQUAL "mipsel")
+        list(APPEND SUBZERO_LIST
+            ${SUBZERO_DIR}/src/IceAssemblerMIPS32.cpp
+            ${SUBZERO_DIR}/src/IceInstMIPS32.cpp
+            ${SUBZERO_DIR}/src/IceTargetLoweringMIPS32.cpp
+        )
+        set(SUBZERO_TARGET MIPS32)
+    else()
+        message(FATAL_ERROR "Architecture '${ARCH}' not supported by Subzero")
+    endif()
 
-    set_target_properties(marl-unittests PROPERTIES
-        INCLUDE_DIRECTORIES "${MARL_TEST_INCLUDE_DIR}"
+    file(GLOB_RECURSE SUBZERO_DEPENDENCIES_LIST
+        ${SUBZERO_LLVM_DIR}/*.cpp
+        ${SUBZERO_LLVM_DIR}/*.c
+        ${SUBZERO_LLVM_DIR}/*.h
+    )
+
+    set(SUBZERO_REACTOR_LIST
+        ${SOURCE_DIR}/Reactor/Reactor.cpp
+        ${SOURCE_DIR}/Reactor/Reactor.hpp
+        ${SOURCE_DIR}/Reactor/SubzeroReactor.cpp
+        ${SOURCE_DIR}/Reactor/Optimizer.cpp
+        ${SOURCE_DIR}/Reactor/Nucleus.hpp
+        ${SOURCE_DIR}/Reactor/Routine.hpp
+        ${SOURCE_DIR}/Reactor/Debug.cpp
+        ${SOURCE_DIR}/Reactor/Debug.hpp
+        ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
+        ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
+    )
+
+    set(SUBZERO_INCLUDE_DIR
+        ${SUBZERO_DIR}/
+        ${SUBZERO_LLVM_DIR}/include/
+        ${SUBZERO_DIR}/pnacl-llvm/include/
+    )
+
+    if(WIN32)
+        list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Windows/include/)
+    elseif(LINUX)
+        list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Linux/include/)
+    elseif(APPLE)
+        list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/MacOS/include/)
+    endif()
+
+    if(WIN32)
+        list(APPEND SUBZERO_COMPILE_OPTIONS
+            "/wd4334" # ''operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
+            "/wd4996" # The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: new_name.
+        )
+    endif()
+
+    add_library(ReactorSubzero STATIC
+        ${SUBZERO_LIST}
+        ${SUBZERO_DEPENDENCIES_LIST}
+        ${SUBZERO_REACTOR_LIST}
+    )
+    set_target_properties(ReactorSubzero PROPERTIES
+        POSITION_INDEPENDENT_CODE 1
+        INCLUDE_DIRECTORIES "${SUBZERO_INCLUDE_DIR}"
+        COMPILE_OPTIONS "${SUBZERO_COMPILE_OPTIONS};${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "SZTARGET=${SUBZERO_TARGET}; ALLOW_DUMP=0; ALLOW_TIMERS=0; ALLOW_LLVM_CL=0; ALLOW_LLVM_IR=0; ALLOW_LLVM_IR_AS_INPUT=0; ALLOW_MINIMAL_BUILD=0; ALLOW_WASM=0; ICE_THREAD_LOCAL_HACK=0;"
+        FOLDER "Subzero"
+    )
+
+    if(WIN32)
+        target_compile_definitions(ReactorSubzero PRIVATE SUBZERO_USE_MICROSOFT_ABI)
+    endif()
+endif()
+
+###########################################################
+# Include Directories
+###########################################################
+
+set(COMMON_INCLUDE_DIR
+    ${SOURCE_DIR}
+    ${CMAKE_CURRENT_SOURCE_DIR}/include
+    ${LLVM_INCLUDE_DIR}
+    ${LIBBACKTRACE_INCLUDE_DIR}
+)
+set(OPENGL_INCLUDE_DIR
+    ${OPENGL_DIR}
+    ${COMMON_INCLUDE_DIR}
+)
+
+set(VULKAN_INCLUDE_DIR
+    ${COMMON_INCLUDE_DIR}
+    ${MARL_INCLUDE_DIR}
+)
+
+###########################################################
+# File Lists
+###########################################################
+
+file(GLOB_RECURSE SWIFTSHADER_LIST
+    ${SOURCE_DIR}/Common/*.cpp
+    ${SOURCE_DIR}/Common/*.h
+    ${SOURCE_DIR}/Common/*.hpp
+    ${SOURCE_DIR}/Renderer/*.cpp
+    ${SOURCE_DIR}/Renderer/*.h
+    ${SOURCE_DIR}/Renderer/*.hpp
+    ${SOURCE_DIR}/Shader/*.cpp
+    ${SOURCE_DIR}/Shader/*.h
+    ${SOURCE_DIR}/Shader/*.hpp
+)
+list(APPEND SWIFTSHADER_LIST
+    ${SOURCE_DIR}/Main/Config.cpp
+    ${SOURCE_DIR}/Main/Config.hpp
+    ${SOURCE_DIR}/Main/FrameBuffer.cpp
+    ${SOURCE_DIR}/Main/FrameBuffer.hpp
+    ${SOURCE_DIR}/Main/SwiftConfig.cpp
+    ${SOURCE_DIR}/Main/SwiftConfig.hpp
+)
+list(REMOVE_ITEM SWIFTSHADER_LIST
+    ${SOURCE_DIR}/Common/DebugAndroid.cpp
+    ${SOURCE_DIR}/Common/DebugAndroid.hpp
+    ${SOURCE_DIR}/Common/GrallocAndroid.cpp
+    ${SOURCE_DIR}/Common/GrallocAndroid.hpp
+)
+
+if(REACTOR_EMIT_DEBUG_INFO)
+    set(LIBBACKTRACE_LIST
+        ${LIBBACKTRACE_DIR}/atomic.c
+        ${LIBBACKTRACE_DIR}/backtrace.c
+        ${LIBBACKTRACE_DIR}/backtrace.h
+        ${LIBBACKTRACE_DIR}/dwarf.c
+        ${LIBBACKTRACE_DIR}/fileline.c
+        ${LIBBACKTRACE_DIR}/filenames.h
+        ${LIBBACKTRACE_DIR}/internal.h
+        ${LIBBACKTRACE_DIR}/mmap.c
+        ${LIBBACKTRACE_DIR}/mmapio.c
+        ${LIBBACKTRACE_DIR}/posix.c
+        ${LIBBACKTRACE_DIR}/print.c
+        ${LIBBACKTRACE_DIR}/simple.c
+        ${LIBBACKTRACE_DIR}/sort.c
+        ${LIBBACKTRACE_DIR}/state.c
+        ${LIBBACKTRACE_INCLUDE_DIR}/backtrace-supported.h
+        ${LIBBACKTRACE_INCLUDE_DIR}/config.h
+    )
+
+    if(WIN32)
+        list(APPEND LIBBACKTRACE_LIST ${LIBBACKTRACE_DIR}/pecoff.c)
+    elseif(LINUX)
+        list(APPEND LIBBACKTRACE_LIST ${LIBBACKTRACE_DIR}/elf.c)
+    elseif(APPLE)
+        message(FATAL_ERROR "libbacktrace does not support mach-o yet")
+    endif()
+endif(REACTOR_EMIT_DEBUG_INFO)
+
+set(REACTOR_LLVM_LIST
+    ${SOURCE_DIR}/Reactor/Reactor.cpp
+    ${SOURCE_DIR}/Reactor/Reactor.hpp
+    ${SOURCE_DIR}/Reactor/LLVMReactor.cpp
+    ${SOURCE_DIR}/Reactor/LLVMReactor.hpp
+    ${SOURCE_DIR}/Reactor/LLVMReactorDebugInfo.cpp
+    ${SOURCE_DIR}/Reactor/LLVMReactorDebugInfo.hpp
+    ${SOURCE_DIR}/Reactor/Nucleus.hpp
+    ${SOURCE_DIR}/Reactor/Routine.hpp
+    ${SOURCE_DIR}/Reactor/CPUID.cpp
+    ${SOURCE_DIR}/Reactor/CPUID.hpp
+    ${SOURCE_DIR}/Reactor/Debug.cpp
+    ${SOURCE_DIR}/Reactor/Debug.hpp
+    ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
+    ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
+)
+
+file(GLOB_RECURSE EGL_LIST
+    ${OPENGL_DIR}/libEGL/*.cpp
+    ${OPENGL_DIR}/libEGL/*.h
+    ${OPENGL_DIR}/libEGL/*.hpp
+    ${OPENGL_DIR}/common/Object.cpp
+    ${OPENGL_DIR}/common/Object.hpp
+    ${OPENGL_DIR}/common/debug.cpp
+    ${OPENGL_DIR}/common/debug.h
+    ${SOURCE_DIR}/Common/SharedLibrary.cpp
+    ${SOURCE_DIR}/Common/SharedLibrary.hpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+)
+
+file(GLOB_RECURSE GLES2_LIST
+    ${OPENGL_DIR}/libGLESv2/*.cpp
+    ${OPENGL_DIR}/libGLESv2/*.h
+    ${OPENGL_DIR}/libGLESv2/*.hpp
+    ${OPENGL_DIR}/common/*.cpp
+    ${OPENGL_DIR}/common/*.h
+    ${OPENGL_DIR}/common/*.hpp
+    ${SOURCE_DIR}/Common/SharedLibrary.cpp
+    ${SOURCE_DIR}/Common/SharedLibrary.hpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES2/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES3/*.h
+)
+
+file(GLOB_RECURSE GLES_CM_LIST
+    ${OPENGL_DIR}/libGLES_CM/*.cpp
+    ${OPENGL_DIR}/libGLES_CM/*.h
+    ${OPENGL_DIR}/libGLES_CM/*.hpp
+    ${OPENGL_DIR}/common/*.cpp
+    ${OPENGL_DIR}/common/*.h
+    ${OPENGL_DIR}/common/*.hpp
+    ${SOURCE_DIR}/Common/SharedLibrary.cpp
+    ${SOURCE_DIR}/Common/SharedLibrary.hpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES/*.h
+)
+
+file(GLOB_RECURSE OPENGL_COMPILER_LIST
+    ${OPENGL_COMPILER_DIR}/*.cpp
+    ${OPENGL_COMPILER_DIR}/*.h
+    ${OPENGL_COMPILER_DIR}/*.hpp
+)
+file(GLOB_RECURSE OPENGL_COMPILER_OS_SPECIFIC_LIST
+    ${OPENGL_COMPILER_DIR}/ossource*.cpp
+    ${OPENGL_COMPILER_DIR}/ossource*.h
+    ${OPENGL_COMPILER_DIR}/ossource*.hpp
+)
+list(REMOVE_ITEM OPENGL_COMPILER_LIST ${OPENGL_COMPILER_OS_SPECIFIC_LIST})
+
+file(GLOB_RECURSE VULKAN_LIST
+    ${VULKAN_DIR}/*.cpp
+    ${VULKAN_DIR}/*.h
+    ${VULKAN_DIR}/*.hpp
+    ${SOURCE_DIR}/System/Build.hpp
+    ${SOURCE_DIR}/System/CPUID.cpp
+    ${SOURCE_DIR}/System/CPUID.hpp
+    ${SOURCE_DIR}/System/Configurator.cpp
+    ${SOURCE_DIR}/System/Configurator.hpp
+    ${SOURCE_DIR}/System/Debug.cpp
+    ${SOURCE_DIR}/System/Debug.hpp
+    ${SOURCE_DIR}/System/Half.cpp
+    ${SOURCE_DIR}/System/Half.hpp
+    ${SOURCE_DIR}/System/Math.cpp
+    ${SOURCE_DIR}/System/Math.hpp
+    ${SOURCE_DIR}/System/Memory.cpp
+    ${SOURCE_DIR}/System/Memory.hpp
+    ${SOURCE_DIR}/System/Socket.cpp
+    ${SOURCE_DIR}/System/Socket.hpp
+    ${SOURCE_DIR}/System/Synchronization.hpp
+    ${SOURCE_DIR}/System/Timer.cpp
+    ${SOURCE_DIR}/System/Timer.hpp
+    ${SOURCE_DIR}/Device/*.cpp
+    ${SOURCE_DIR}/Device/*.hpp
+    ${SOURCE_DIR}/Pipeline/*.cpp
+    ${SOURCE_DIR}/Pipeline/*.hpp
+    ${SOURCE_DIR}/WSI/VkSurfaceKHR.cpp
+    ${SOURCE_DIR}/WSI/VkSurfaceKHR.hpp
+    ${SOURCE_DIR}/WSI/VkSwapchainKHR.cpp
+    ${SOURCE_DIR}/WSI/VkSwapchainKHR.hpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan/*.h}
+)
+
+###########################################################
+# Append OS specific files to lists
+###########################################################
+
+if(WIN32)
+    list(APPEND SWIFTSHADER_LIST
+        ${SOURCE_DIR}/Main/FrameBufferDD.cpp
+        ${SOURCE_DIR}/Main/FrameBufferDD.hpp
+        ${SOURCE_DIR}/Main/FrameBufferGDI.cpp
+        ${SOURCE_DIR}/Main/FrameBufferGDI.hpp
+        ${SOURCE_DIR}/Main/FrameBufferWin.cpp
+        ${SOURCE_DIR}/Main/FrameBufferWin.hpp
+    )
+    list(APPEND OPENGL_COMPILER_LIST ${OPENGL_COMPILER_DIR}/ossource_win.cpp)
+    list(APPEND EGL_LIST ${OPENGL_DIR}/libEGL/libEGL.rc)
+    list(APPEND GLES2_LIST ${OPENGL_DIR}/libGLESv2/libGLESv2.rc)
+    list(APPEND GLES_CM_LIST ${OPENGL_DIR}/libGLES_CM/libGLES_CM.rc)
+    list(APPEND VULKAN_LIST
+        ${VULKAN_DIR}/Vulkan.rc
+        ${SOURCE_DIR}/WSI/Win32SurfaceKHR.cpp
+        ${SOURCE_DIR}/WSI/Win32SurfaceKHR.hpp
+    )
+elseif(LINUX)
+    list(APPEND SWIFTSHADER_LIST
+        ${SOURCE_DIR}/Main/FrameBufferX11.cpp
+        ${SOURCE_DIR}/Main/FrameBufferX11.hpp
+        ${SOURCE_DIR}/Common/SharedLibrary.hpp
+        ${SOURCE_DIR}/Main/libX11.cpp
+        ${SOURCE_DIR}/Main/libX11.hpp
+    )
+    list(APPEND EGL_LIST
+        ${SOURCE_DIR}/Common/SharedLibrary.hpp
+        ${SOURCE_DIR}/Main/libX11.cpp
+        ${SOURCE_DIR}/Main/libX11.hpp
+    )
+    list(APPEND OPENGL_COMPILER_LIST
+        ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
+    )
+
+    if(X11)
+        list(APPEND VULKAN_LIST
+            ${SOURCE_DIR}/WSI/XlibSurfaceKHR.cpp
+            ${SOURCE_DIR}/WSI/XlibSurfaceKHR.hpp
+            ${SOURCE_DIR}/WSI/libX11.cpp
+            ${SOURCE_DIR}/WSI/libX11.hpp
+        )
+    endif(X11)
+
+    if(XCB)
+        list(APPEND VULKAN_LIST
+            ${SOURCE_DIR}/WSI/XcbSurfaceKHR.cpp
+            ${SOURCE_DIR}/WSI/XcbSurfaceKHR.hpp
+        )
+    endif(XCB)
+
+elseif(APPLE)
+    list(APPEND SWIFTSHADER_LIST
+        ${SOURCE_DIR}/Main/FrameBufferOSX.mm
+        ${SOURCE_DIR}/Main/FrameBufferOSX.hpp
+    )
+    list(APPEND EGL_LIST
+        ${OPENGL_DIR}/libEGL/OSXUtils.mm
+        ${OPENGL_DIR}/libEGL/OSXUtils.hpp
+    )
+    list(APPEND OPENGL_COMPILER_LIST
+        ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
+    )
+
+    list(APPEND VULKAN_LIST
+        ${SOURCE_DIR}/WSI/MacOSSurfaceMVK.mm
+        ${SOURCE_DIR}/WSI/MacOSSurfaceMVK.h
+    )
+elseif(ANDROID)
+    list(APPEND SWIFTSHADER_LIST
+        ${SOURCE_DIR}/Main/FrameBufferAndroid.cpp
+        ${SOURCE_DIR}/Main/FrameBufferAndroid.hpp
+    )
+    list(APPEND OPENGL_COMPILER_LIST
+        ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
+    )
+endif()
+
+if(WIN32)
+    set(OS_LIBS odbc32 odbccp32 WS2_32 dxguid)
+elseif(LINUX)
+    set(OS_LIBS dl pthread)
+elseif(APPLE)
+    find_library(COCOA_FRAMEWORK Cocoa)
+    find_library(QUARTZ_FRAMEWORK Quartz)
+    find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation)
+    find_library(IOSURFACE_FRAMEWORK IOSurface)
+    set(OS_LIBS "${COCOA_FRAMEWORK}" "${QUARTZ_FRAMEWORK}" "${CORE_FOUNDATION_FRAMEWORK}" "${IOSURFACE_FRAMEWORK}")
+endif()
+
+###########################################################
+# SwiftShader Targets
+###########################################################
+
+add_library(SwiftShader STATIC ${SWIFTSHADER_LIST})
+set_target_properties(SwiftShader PROPERTIES
+    INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
+    POSITION_INDEPENDENT_CODE 1
+    FOLDER "Core"
+    COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+    COMPILE_DEFINITIONS "NO_SANITIZE_FUNCTION=;"
+)
+target_link_libraries(SwiftShader ${OS_LIBS})
+
+if(${REACTOR_BACKEND} STREQUAL "LLVM")
+    add_library(ReactorLLVM STATIC ${REACTOR_LLVM_LIST})
+    set_target_properties(ReactorLLVM PROPERTIES
+        INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
+        POSITION_INDEPENDENT_CODE 1
+        FOLDER "Core"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+    )
+    target_link_libraries(ReactorLLVM llvm ${OS_LIBS})
+
+    if(REACTOR_EMIT_DEBUG_INFO)
+        if(WIN32)
+            # Boost stacktrace uses COM on Windows.
+            # On Windows, cache COM instances in TLS for performance.
+            target_compile_definitions(ReactorLLVM PRIVATE BOOST_STACKTRACE_USE_WINDBG_CACHED)
+        else()
+            # Boost stacktrace uses libbacktrace
+            target_compile_definitions(ReactorLLVM PRIVATE BOOST_STACKTRACE_USE_BACKTRACE)
+
+            # Boost stacktrace uses exceptions, so force enable it
+            set_cpp_flag("-fexceptions")
+
+            add_library(Libbacktrace STATIC ${LIBBACKTRACE_LIST})
+            set_target_properties(Libbacktrace PROPERTIES
+                INCLUDE_DIRECTORIES "${LIBBACKTRACE_INCLUDE_DIR}"
+                POSITION_INDEPENDENT_CODE 1
+                FOLDER "Core"
+            )
+            target_link_libraries(Libbacktrace ${OS_LIBS})
+            target_link_libraries(ReactorLLVM Libbacktrace)
+        endif()
+
+        # Download boost and use it
+        DownloadBoost()
+        set(BOOST_INCLUDEDIR ${BOOST_THIRD_PARTY_DIR})
+        find_package(Boost REQUIRED)
+        target_link_libraries(ReactorLLVM Boost::boost)
+
+    endif(REACTOR_EMIT_DEBUG_INFO)
+
+    set(Reactor ReactorLLVM)
+elseif(${REACTOR_BACKEND} STREQUAL "Subzero")
+    set(Reactor ReactorSubzero)
+else()
+    message(FATAL_ERROR "REACTOR_BACKEND must be 'LLVM' or 'Subzero'")
+endif()
+
+add_library(GLCompiler STATIC ${OPENGL_COMPILER_LIST})
+set_target_properties(GLCompiler PROPERTIES
+    INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
+    POSITION_INDEPENDENT_CODE 1
+    FOLDER "OpenGL"
+    COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+)
+target_link_libraries(GLCompiler ${OS_LIBS})
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    set(LIB_PREFIX "lib64")
+else()
+    set(LIB_PREFIX "lib")
+endif()
+
+if(BUILD_EGL)
+    add_library(libEGL SHARED ${EGL_LIST})
+    set_target_properties(libEGL PROPERTIES
+        INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
+        FOLDER "OpenGL"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
+        PREFIX ""
+    )
+    if(LINUX)
+        if(X11)
+            set_property(TARGET libEGL APPEND PROPERTY COMPILE_DEFINITIONS "USE_X11=1")
+        endif(X11)
+    endif()
+    if (ANDROID)
+        set_target_properties(libEGL PROPERTIES SUFFIX "_swiftshader.so")
+    endif ()
+    set_shared_library_export_map(libEGL ${SOURCE_DIR}/OpenGL/libEGL)
+    target_link_libraries(libEGL ${OS_LIBS})
+    add_custom_command(
+        TARGET libEGL
+        POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
+        COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+    )
+endif()
+
+if(BUILD_GLESv2)
+    add_library(libGLESv2 SHARED ${GLES2_LIST})
+    set_target_properties(libGLESv2 PROPERTIES
+        INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
+        FOLDER "OpenGL"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;"
+        PREFIX ""
+    )
+    if (ANDROID)
+        set_target_properties(libGLESv2 PROPERTIES SUFFIX "_swiftshader.so")
+    endif ()
+    set_shared_library_export_map(libGLESv2 ${SOURCE_DIR}/OpenGL/libGLESv2)
+    target_link_libraries(libGLESv2 SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
+    add_custom_command(
+        TARGET libGLESv2
+        POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
+        COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+    )
+endif()
+
+if(BUILD_GLES_CM)
+    add_library(libGLES_CM SHARED ${GLES_CM_LIST})
+    set_target_properties(libGLES_CM PROPERTIES
+        INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
+        FOLDER "OpenGL"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;"
+        PREFIX ""
+    )
+    if (ANDROID)
+        set_target_properties(libGLES_CM PROPERTIES SUFFIX "_swiftshader.so")
+    endif ()
+    set_shared_library_export_map(libGLES_CM ${SOURCE_DIR}/OpenGL/libGLES_CM)
+    target_link_libraries(libGLES_CM SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
+    add_custom_command(
+        TARGET libGLES_CM
+        POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLES_CM>/translator
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLES_CM> $<TARGET_FILE_DIR:libGLES_CM>/translator/${LIB_PREFIX}GLES_CM_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
+    )
+endif()
+
+if(BUILD_MARL)
+    set(MARL_BUILD_TESTS OFF)
+    add_subdirectory(third_party/marl)
+endif(BUILD_MARL)
+
+if(BUILD_VULKAN)
+    if (NOT TARGET SPIRV-Tools)
+        # This variable is also used by SPIRV-Tools to locate SPIRV-Headers
+        set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/SPIRV-Headers")
+        list(APPEND VULKAN_INCLUDE_DIR "${SPIRV-Headers_SOURCE_DIR}/include")
+
+        add_subdirectory(third_party/SPIRV-Tools)
+    endif()
+
+    add_library(vk_swiftshader SHARED ${VULKAN_LIST})
+
+    set_target_properties(vk_swiftshader PROPERTIES
+        INCLUDE_DIRECTORIES "${VULKAN_INCLUDE_DIR}"
+        FOLDER "Vulkan"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "VK_EXPORT=;NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
+    )
+
+    if(WIN32)
+        set_property(TARGET vk_swiftshader APPEND
+                     PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_WIN32_KHR")
+    elseif(LINUX)
+        if(X11)
+            set_property(TARGET vk_swiftshader APPEND
+                        PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XLIB_KHR")
+        endif(X11)
+        if(XCB)
+            set_property(TARGET vk_swiftshader APPEND
+                        PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XCB_KHR")
+        endif(XCB)
+    elseif(APPLE)
+        set_property(TARGET vk_swiftshader APPEND
+                     PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_MACOS_MVK")
+    endif()
+
+    set_shared_library_export_map(vk_swiftshader ${SOURCE_DIR}/Vulkan)
+    target_link_libraries(vk_swiftshader ${Reactor} marl ${OS_LIBS} SPIRV-Tools SPIRV-Tools-opt)
+    add_custom_command(
+        TARGET vk_swiftshader
+        POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:vk_swiftshader>/translator
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> $<TARGET_FILE_DIR:vk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
+        COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+    )
+
+    # The vk_swiftshader_icd.json manifest file will point to ICD_LIBRARY_PATH.
+    # Set ICD_LIBRARY_PATH to be a relative path similar to "./libvk_swiftshader.so", so both files can be moved.
+    # A relative path is relative to the manifest file.
+    set(ICD_LIBRARY_PATH "${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}")
+    if(WIN32)
+        # The path is output to a JSON file, which requires backslashes to be escaped.
+        set(ICD_LIBRARY_PATH ".\\\\${ICD_LIBRARY_PATH}")
+    else()
+        set(ICD_LIBRARY_PATH "./${ICD_LIBRARY_PATH}")
+    endif()
+    configure_file(
+        "${VULKAN_DIR}/vk_swiftshader_icd.json.tmpl"
+        "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json")
+endif()
+
+###########################################################
+# Sample programs
+###########################################################
+
+if(BUILD_SAMPLES)
+    if(WIN32)
+        add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_Windows.cpp)
+        set_target_properties(OGLES2HelloAPI PROPERTIES
+            INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
+            COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+            COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
+            FOLDER "Samples"
+        )
+        target_link_libraries(OGLES2HelloAPI libEGL libGLESv2)
+        set_property(TARGET OGLES2HelloAPI APPEND_STRING PROPERTY LINK_FLAGS "/SUBSYSTEM:WINDOWS")
+        set(CMAKE_DEFAULT_STARTUP_PROJECT OGLES2HelloAPI)
+    elseif(LINUX)
+        add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_LinuxX11.cpp)
+        set_target_properties(OGLES2HelloAPI PROPERTIES
+            INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
+            COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+            COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
+        )
+        target_link_libraries(OGLES2HelloAPI dl ${X11} libEGL libGLESv2)   # Explicitly link our "lib*" targets, not the platform provided "EGL" and "GLESv2"
+    elseif(APPLE)
+        add_executable(OGLES2HelloAPI MACOSX_BUNDLE
+            ${HELLO2_DIR}/OGLES2HelloAPI_OSX.mm
+            ${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib
+        )
+        set_target_properties(OGLES2HelloAPI PROPERTIES
+            INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
+            COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};-Wno-deprecated-declarations" # 'NSTitledWindowMask', 'NSClosableWindowMask' is deprecated
+            COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
+            MACOSX_BUNDLE_INFO_PLIST "${HELLO2_DIR}/Build/OSX/Info.plist"
+        )
+        target_link_libraries(OGLES2HelloAPI libEGL libGLESv2 ${OS_LIBS})
+        set_source_files_properties(${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib PROPERTIES
+            MACOSX_PACKAGE_LOCATION "Resources"
+        )
+    endif()
+endif()
+
+if(BUILD_TESTS)
+    set(REACTOR_UNIT_TESTS_LIST
+        ${SOURCE_DIR}/Reactor/ReactorUnitTests.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
+    )
+
+    set(REACTOR_UNIT_TESTS_INCLUDE_DIR
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
+    )
+
+    add_executable(ReactorUnitTests ${REACTOR_UNIT_TESTS_LIST})
+    set_target_properties(ReactorUnitTests PROPERTIES
+        INCLUDE_DIRECTORIES "${REACTOR_UNIT_TESTS_INCLUDE_DIR}"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
         FOLDER "Tests"
     )
 
-    marl_set_target_options(marl-unittests)
+    if(NOT WIN32 AND ${REACTOR_BACKEND} STREQUAL "Subzero")
+        target_link_libraries(ReactorUnitTests ${Reactor} pthread dl)
+    else()
+        target_link_libraries(ReactorUnitTests ${Reactor})
+    endif()
+endif()
 
-    target_link_libraries(marl-unittests marl "${MARL_OS_LIBS}")
-endif(MARL_BUILD_TESTS)
+if(BUILD_TESTS)
+    set(GLES_UNITTESTS_LIST
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/main.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/unittests.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
+    )
 
-# examples
-if(MARL_BUILD_EXAMPLES)
-    function(build_example target)
-        add_executable(${target} "${CMAKE_CURRENT_SOURCE_DIR}/examples/${target}.cpp")
-        set_target_properties(${target} PROPERTIES
-            FOLDER "Examples"
-        )
-        marl_set_target_options(${target})
-        target_link_libraries(${target} marl "${MARL_OS_LIBS}")
-    endfunction(build_example)
+    set(GLES_UNITTESTS_INCLUDE_DIR
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googlemock/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
+        ${CMAKE_CURRENT_SOURCE_DIR}/include/
+    )
 
-    build_example(fractal)
-    build_example(primes)
+    add_executable(gles-unittests ${GLES_UNITTESTS_LIST})
+    set_target_properties(gles-unittests PROPERTIES
+        INCLUDE_DIRECTORIES "${GLES_UNITTESTS_INCLUDE_DIR}"
+        FOLDER "Tests"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "STANDALONE"
+    )
 
-endif(MARL_BUILD_EXAMPLES)
+    target_link_libraries(gles-unittests libEGL libGLESv2 ${OS_LIBS})
+    if(ANDROID)
+        target_link_libraries(gles-unittests -landroid)
+    endif()
+endif(BUILD_TESTS)
+
+if(BUILD_TESTS)
+    # Math unit tests
+    set(MATH_UNITTESTS_LIST
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/MathUnitTests/main.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/MathUnitTests/unittests.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
+    )
+
+    set(MATH_UNITTESTS_INCLUDE_DIR
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googlemock/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
+        ${CMAKE_CURRENT_SOURCE_DIR}/src/
+    )
+
+    add_executable(math-unittests ${MATH_UNITTESTS_LIST})
+    set_target_properties(math-unittests PROPERTIES
+        INCLUDE_DIRECTORIES "${MATH_UNITTESTS_INCLUDE_DIR}"
+        FOLDER "Tests"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+    )
+
+    if(NOT WIN32)
+        target_link_libraries(math-unittests pthread)
+    endif()
+endif()
+
+if(BUILD_TESTS AND BUILD_VULKAN)
+    set(VK_UNITTESTS_LIST
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/Device.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/Driver.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/main.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/unittests.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/src/gtest-all.cc
+    )
+
+    set(VK_UNITTESTS_INCLUDE_DIR
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googlemock/include/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/googletest/
+        ${CMAKE_CURRENT_SOURCE_DIR}/third_party/SPIRV-Tools/include
+        ${CMAKE_CURRENT_SOURCE_DIR}/include/
+    )
+
+    add_executable(vk-unittests ${VK_UNITTESTS_LIST})
+    add_dependencies(vk-unittests vk_swiftshader)
+
+    set_target_properties(vk-unittests PROPERTIES
+        INCLUDE_DIRECTORIES "${VK_UNITTESTS_INCLUDE_DIR}"
+        FOLDER "Tests"
+        COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
+        COMPILE_DEFINITIONS "STANDALONE"
+    )
+
+    target_link_libraries(vk-unittests ${OS_LIBS} SPIRV-Tools)
+endif(BUILD_TESTS AND BUILD_VULKAN)
diff --git a/CMakeSettings.json b/CMakeSettings.json
new file mode 100644
index 0000000..c3d2919
--- /dev/null
+++ b/CMakeSettings.json
@@ -0,0 +1,52 @@
+{
+  "configurations": [
+    {
+      "name": "x64-Debug",
+      "generator": "Ninja",
+      "configurationType": "Debug",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "variables": []
+    },
+    {
+      "name": "x86-Debug",
+      "generator": "Ninja",
+      "configurationType": "Debug",
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x86" ],
+      "variables": []
+    },
+    {
+      "name": "x86-Release",
+      "generator": "Ninja",
+      "configurationType": "RelWithDebInfo",
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x86" ],
+      "variables": []
+    },
+    {
+      "name": "x64-Release",
+      "generator": "Ninja",
+      "configurationType": "RelWithDebInfo",
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "variables": []
+    }
+  ]
+}
\ No newline at end of file
diff --git a/CONTRIBUTING.txt b/CONTRIBUTING.txt
new file mode 100644
index 0000000..2cedc8e
--- /dev/null
+++ b/CONTRIBUTING.txt
@@ -0,0 +1,28 @@
+Want to contribute? Great! First, read this page (including the small print at the end).

+

+### Before you contribute

+Before we can use your code, you must sign the

+[Google Individual Contributor License Agreement]

+(https://cla.developers.google.com/about/google-individual)

+(CLA), which you can do online. The CLA is necessary mainly because you own the

+copyright to your changes, even after your contribution becomes part of our

+codebase, so we need your permission to use and distribute your code. We also

+need to be sure of various other things—for instance that you'll tell us if you

+know that your code infringes on other people's patents. You don't have to sign

+the CLA until after you've submitted your code for review and a member has

+approved it, but you must do it before we can put your code into our codebase.

+Before you start working on a larger contribution, you should get in touch with

+us first through the issue tracker with your idea so that we can help out and

+possibly guide you. Coordinating up front makes it much easier to avoid

+frustration later on.

+

+### Code reviews

+All submissions, including submissions by project members, require review.

+

+Information on how to sumbit changes for review is provided in README.md.

+

+### The small print

+Contributions made by corporations are covered by a different agreement than

+the one above, the

+[Software Grant and Corporate Contributor License Agreement]

+(https://cla.developers.google.com/about/google-corporate).
\ No newline at end of file
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
new file mode 100644
index 0000000..c471770
--- /dev/null
+++ b/CONTRIBUTORS.txt
@@ -0,0 +1,41 @@
+# People who have agreed to one of the CLAs and can contribute patches.

+# The AUTHORS file lists the copyright holders; this file

+# lists people.  For example, Google employees are listed here

+# but not in AUTHORS, because Google holds the copyright.

+#

+# https://developers.google.com/open-source/cla/individual

+# https://developers.google.com/open-source/cla/corporate

+#

+# Names should be added to this file as:

+#     Name <email address>

+

+Google Inc.

+ Nicolas Capens <capn@google.com>

+ Alexis Hétu <sugoi@google.com>

+ Shannon Woods <shannonwoods@google.com>

+ Corentin Wallez <cwallez@google.com>

+ Greg Hartman <ghartman@google.com>

+ Ping-Hao Wu <pinghao@google.com>

+ Maxime Grégoire <mgregoire@google.com>

+ Veranika Liaukevich <veranika@google.com>

+ John Bauman <jbauman@google.com>

+ Keun Soo Yim <yim@google.com>

+ John Sheu <sheu@google.com>

+ Philippe Hamel <hamelphi@google.com>

+ Daniel Toyama <kenjitoyama@google.com>

+ Meng-Lin Wu <marleymoo@google.com>

+ Krzysztof Kosiński <krzysio@google.com>

+ Chris Forbes <chrisforbes@google.com>

+ Ben Clayton <bclayton@google.com>

+ Hernan Liatis <hliatis@google.com>

+ Logan (Tzu-hsiang) Chien <loganchien@google.com>

+ Stephen White <senorblanco@google.com>

+ Raymond Chiu <chiur@google.com>

+

+TransGaming Inc.

+ Nicolas Capens

+ Gavriel State

+ Jim MacArthur

+ Daniel Koch

+ Luther Johnson

+ Rob Stepinski

diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..75b5248
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,202 @@
+

+                                 Apache License

+                           Version 2.0, January 2004

+                        http://www.apache.org/licenses/

+

+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

+   1. Definitions.

+

+      "License" shall mean the terms and conditions for use, reproduction,

+      and distribution as defined by Sections 1 through 9 of this document.

+

+      "Licensor" shall mean the copyright owner or entity authorized by

+      the copyright owner that is granting the License.

+

+      "Legal Entity" shall mean the union of the acting entity and all

+      other entities that control, are controlled by, or are under common

+      control with that entity. For the purposes of this definition,

+      "control" means (i) the power, direct or indirect, to cause the

+      direction or management of such entity, whether by contract or

+      otherwise, or (ii) ownership of fifty percent (50%) or more of the

+      outstanding shares, or (iii) beneficial ownership of such entity.

+

+      "You" (or "Your") shall mean an individual or Legal Entity

+      exercising permissions granted by this License.

+

+      "Source" form shall mean the preferred form for making modifications,

+      including but not limited to software source code, documentation

+      source, and configuration files.

+

+      "Object" form shall mean any form resulting from mechanical

+      transformation or translation of a Source form, including but

+      not limited to compiled object code, generated documentation,

+      and conversions to other media types.

+

+      "Work" shall mean the work of authorship, whether in Source or

+      Object form, made available under the License, as indicated by a

+      copyright notice that is included in or attached to the work

+      (an example is provided in the Appendix below).

+

+      "Derivative Works" shall mean any work, whether in Source or Object

+      form, that is based on (or derived from) the Work and for which the

+      editorial revisions, annotations, elaborations, or other modifications

+      represent, as a whole, an original work of authorship. For the purposes

+      of this License, Derivative Works shall not include works that remain

+      separable from, or merely link (or bind by name) to the interfaces of,

+      the Work and Derivative Works thereof.

+

+      "Contribution" shall mean any work of authorship, including

+      the original version of the Work and any modifications or additions

+      to that Work or Derivative Works thereof, that is intentionally

+      submitted to Licensor for inclusion in the Work by the copyright owner

+      or by an individual or Legal Entity authorized to submit on behalf of

+      the copyright owner. For the purposes of this definition, "submitted"

+      means any form of electronic, verbal, or written communication sent

+      to the Licensor or its representatives, including but not limited to

+      communication on electronic mailing lists, source code control systems,

+      and issue tracking systems that are managed by, or on behalf of, the

+      Licensor for the purpose of discussing and improving the Work, but

+      excluding communication that is conspicuously marked or otherwise

+      designated in writing by the copyright owner as "Not a Contribution."

+

+      "Contributor" shall mean Licensor and any individual or Legal Entity

+      on behalf of whom a Contribution has been received by Licensor and

+      subsequently incorporated within the Work.

+

+   2. Grant of Copyright License. Subject to the terms and conditions of

+      this License, each Contributor hereby grants to You a perpetual,

+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

+      copyright license to reproduce, prepare Derivative Works of,

+      publicly display, publicly perform, sublicense, and distribute the

+      Work and such Derivative Works in Source or Object form.

+

+   3. Grant of Patent License. Subject to the terms and conditions of

+      this License, each Contributor hereby grants to You a perpetual,

+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

+      (except as stated in this section) patent license to make, have made,

+      use, offer to sell, sell, import, and otherwise transfer the Work,

+      where such license applies only to those patent claims licensable

+      by such Contributor that are necessarily infringed by their

+      Contribution(s) alone or by combination of their Contribution(s)

+      with the Work to which such Contribution(s) was submitted. If You

+      institute patent litigation against any entity (including a

+      cross-claim or counterclaim in a lawsuit) alleging that the Work

+      or a Contribution incorporated within the Work constitutes direct

+      or contributory patent infringement, then any patent licenses

+      granted to You under this License for that Work shall terminate

+      as of the date such litigation is filed.

+

+   4. Redistribution. You may reproduce and distribute copies of the

+      Work or Derivative Works thereof in any medium, with or without

+      modifications, and in Source or Object form, provided that You

+      meet the following conditions:

+

+      (a) You must give any other recipients of the Work or

+          Derivative Works a copy of this License; and

+

+      (b) You must cause any modified files to carry prominent notices

+          stating that You changed the files; and

+

+      (c) You must retain, in the Source form of any Derivative Works

+          that You distribute, all copyright, patent, trademark, and

+          attribution notices from the Source form of the Work,

+          excluding those notices that do not pertain to any part of

+          the Derivative Works; and

+

+      (d) If the Work includes a "NOTICE" text file as part of its

+          distribution, then any Derivative Works that You distribute must

+          include a readable copy of the attribution notices contained

+          within such NOTICE file, excluding those notices that do not

+          pertain to any part of the Derivative Works, in at least one

+          of the following places: within a NOTICE text file distributed

+          as part of the Derivative Works; within the Source form or

+          documentation, if provided along with the Derivative Works; or,

+          within a display generated by the Derivative Works, if and

+          wherever such third-party notices normally appear. The contents

+          of the NOTICE file are for informational purposes only and

+          do not modify the License. You may add Your own attribution

+          notices within Derivative Works that You distribute, alongside

+          or as an addendum to the NOTICE text from the Work, provided

+          that such additional attribution notices cannot be construed

+          as modifying the License.

+

+      You may add Your own copyright statement to Your modifications and

+      may provide additional or different license terms and conditions

+      for use, reproduction, or distribution of Your modifications, or

+      for any such Derivative Works as a whole, provided Your use,

+      reproduction, and distribution of the Work otherwise complies with

+      the conditions stated in this License.

+

+   5. Submission of Contributions. Unless You explicitly state otherwise,

+      any Contribution intentionally submitted for inclusion in the Work

+      by You to the Licensor shall be under the terms and conditions of

+      this License, without any additional terms or conditions.

+      Notwithstanding the above, nothing herein shall supersede or modify

+      the terms of any separate license agreement you may have executed

+      with Licensor regarding such Contributions.

+

+   6. Trademarks. This License does not grant permission to use the trade

+      names, trademarks, service marks, or product names of the Licensor,

+      except as required for reasonable and customary use in describing the

+      origin of the Work and reproducing the content of the NOTICE file.

+

+   7. Disclaimer of Warranty. Unless required by applicable law or

+      agreed to in writing, Licensor provides the Work (and each

+      Contributor provides its Contributions) on an "AS IS" BASIS,

+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

+      implied, including, without limitation, any warranties or conditions

+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

+      PARTICULAR PURPOSE. You are solely responsible for determining the

+      appropriateness of using or redistributing the Work and assume any

+      risks associated with Your exercise of permissions under this License.

+

+   8. Limitation of Liability. In no event and under no legal theory,

+      whether in tort (including negligence), contract, or otherwise,

+      unless required by applicable law (such as deliberate and grossly

+      negligent acts) or agreed to in writing, shall any Contributor be

+      liable to You for damages, including any direct, indirect, special,

+      incidental, or consequential damages of any character arising as a

+      result of this License or out of the use or inability to use the

+      Work (including but not limited to damages for loss of goodwill,

+      work stoppage, computer failure or malfunction, or any and all

+      other commercial damages or losses), even if such Contributor

+      has been advised of the possibility of such damages.

+

+   9. Accepting Warranty or Additional Liability. While redistributing

+      the Work or Derivative Works thereof, You may choose to offer,

+      and charge a fee for, acceptance of support, warranty, indemnity,

+      or other liability obligations and/or rights consistent with this

+      License. However, in accepting such obligations, You may act only

+      on Your own behalf and on Your sole responsibility, not on behalf

+      of any other Contributor, and only if You agree to indemnify,

+      defend, and hold each Contributor harmless for any liability

+      incurred by, or claims asserted against, such Contributor by reason

+      of your accepting any such warranty or additional liability.

+

+   END OF TERMS AND CONDITIONS

+

+   APPENDIX: How to apply the Apache License to your work.

+

+      To apply the Apache License to your work, attach the following

+      boilerplate notice, with the fields enclosed by brackets "[]"

+      replaced with your own identifying information. (Don't include

+      the brackets!)  The text should be enclosed in the appropriate

+      comment syntax for the file format. We also recommend that a

+      file or class name and description of purpose be included on the

+      same "printed page" as the copyright notice for easier

+      identification within third-party archives.

+

+   Copyright [yyyy] [name of copyright owner]

+

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..c1fc9da
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,16 @@
+# This is the list of people with commit rights actively working on SwiftShader
+#
+# This list is used by Chromium and Android to make sure that one of the owners
+# in this list has approved a SwiftShader related change before landing it.
+#
+# Note that the upstream source-of-truth git repository at
+# swiftshader.googlesource.com/SwiftShader has ownership and access control
+# seperate from those controlled by this OWNERS file.
+
+nicolascapens@google.com
+sugoi@google.com
+shannonwoods@google.com
+chrisforbes@google.com
+cwallez@google.com
+
+# COMPONENT: Internals>GPU>SwiftShader
\ No newline at end of file
diff --git a/README.md b/README.md
index 3641f79..c046b97 100644
--- a/README.md
+++ b/README.md
@@ -1,68 +1,113 @@
-# Marl
-
-Marl is a hybrid thread / fiber task scheduler written in C++ 11.
-
-## About
-
-Marl is a C++ 11 library that provides a fluent interface for running tasks across a number of threads.
-
-Marl uses a combination of fibers and threads to allow efficient execution of tasks that can block, while keeping a fixed number of hardware threads.
-
-Marl supports Windows, macOS, Linux, Fuchsia and Android (arm, aarch64, ppc64 (ELFv2), x86 and x64).
-
-Marl has no dependencies on other libraries (with exception on googletest for building the optional unit tests).
-
-Marl is in early development and will have breaking API changes.
-
-**More documentation and examples coming soon.**
-
-Note: This is not an officially supported Google product
-
-## Building
-
-Marl contains a number of unit tests and examples which can be built using CMake.
-
-Unit tests require fetching the `googletest` external project, which can be done by typing the following in your terminal:
-
-```bash
-cd <path-to-marl>
-git submodule update --init
-```
-
-### Linux and macOS
-
-To build the unit tests and examples, type the following in your terminal:
-
-```bash
-cd <path-to-marl>
-mkdir build
-cd build
-cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1
-make
-```
-
-The resulting binaries will be found in `<path-to-marl>/build`
-
-### Windows
-
-Marl can be build using [Visual Studio 2019's CMake integration](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019).
-
-### Using Marl in your CMake project
-
-You can build and link Marl using `add_subdirectory()` in your project's `CMakeLists.txt` file:
-```cmake
-set(MARL_DIR <path-to-marl>) # example <path-to-marl>: "${CMAKE_CURRENT_SOURCE_DIR}/third_party/marl"
-add_subdirectory(${MARL_DIR})
-```
-
-This will define the `marl` library target, which you can pass to `target_link_libraries()`:
-
-```cmake
-target_link_libraries(<target> marl) # replace <target> with the name of your project's target
-```
-
-You will also want to add the `marl` public headers to your project's include search paths so you can `#include` the marl headers:
-
-```cmake
-target_include_directories($<target> PRIVATE "${MARL_DIR}/include") # replace <target> with the name of your project's target
-```
+# SwiftShader

+

+[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Build Status](https://travis-ci.org/google/swiftshader.svg?branch=master)](https://travis-ci.org/google/swiftshader) [![Build status](https://ci.appveyor.com/api/projects/status/yrmyvb34j22jg1uj?svg=true)](https://ci.appveyor.com/project/c0d1f1ed/swiftshader)

+

+Introduction

+------------

+

+SwiftShader is a high-performance CPU-based implementation of the OpenGL ES and Direct3D 9 graphics APIs<sup>1</sup><sup>2</sup>. Its goal is to provide hardware independence for advanced 3D graphics.

+

+Building

+--------

+

+SwiftShader libraries can be built for Windows, Linux, and Mac OS X.\

+Android and Chrome (OS) build environments are also supported.

+

+* **Visual Studio**

+\

+  On Windows, open the [SwiftShader.sln](SwiftShader.sln) file using [Visual Studio Community](https://visualstudio.microsoft.com/vs/community/) or compatible version, and build the solution. Output DLLs will be placed in the _out_ subfolder. Sample executables such as _OGLES3ColourGrading_ can be found under the Tests solution folder and can be run from the IDE.

+

+* **CMake**

+

+  [Install CMake](https://cmake.org/download/) for Linux, Mac OS X, or Windows and use either [the IDE](https://cmake.org/runningcmake/) or run the following terminal commands:

+

+      cd build

+      cmake ..

+      make --jobs=8

+

+      ./gles-unittests

+      ./OGLES2HelloAPI

+

+Usage

+-----

+

+The SwiftShader libraries act as drop-in replacements for graphics drivers.

+

+On Windows, most applications can be made to use SwiftShader's DLLs by placing them in the same folder as the executable. On Linux, the LD\_LIBRARY\_PATH environment variable or -rpath linker option can be used to direct applications to search for shared libraries in the indicated directory first.

+

+Contributing

+------------

+

+See [CONTRIBUTING.txt](CONTRIBUTING.txt) for important contributing requirements.

+

+The canonical repository for SwiftShader is hosted at:

+https://swiftshader.googlesource.com/SwiftShader

+

+All changes must be reviewed and approved in the [Gerrit](https://www.gerritcodereview.com/) review tool at:

+https://swiftshader-review.googlesource.com

+

+Authenticate your account here:

+https://swiftshader-review.googlesource.com/new-password

+

+All changes require a [Change-ID](https://gerrit-review.googlesource.com/Documentation/user-changeid.html) tag in the commit message. A commit hook may be used to add this tag automatically, and can be found at:

+https://gerrit-review.googlesource.com/tools/hooks/commit-msg. To clone the repository and install the commit hook in one go:

+

+    git clone https://swiftshader.googlesource.com/SwiftShader && (cd SwiftShader && curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)

+

+Changes are uploaded to Gerrit by executing:

+

+    git push origin HEAD:refs/for/master

+

+Testing

+-------

+

+SwiftShader's OpenGL ES implementation can be tested using the [dEQP](https://source.android.com/devices/graphics/testing) test suite.

+

+See [docs/dEQP.md](docs/dEQP.md) for details.

+

+Third-Party Dependencies

+------------------------

+

+The [third_party](third_party/) directory contains projects which originated outside of SwiftShader:

+

+[subzero](third_party/subzero/) contains a fork of the [Subzero](https://chromium.googlesource.com/native_client/pnacl-subzero/) project. It is part of Google Chrome's (Portable) [Native Client](https://developer.chrome.com/native-client) project. Its authoritative source is at [https://chromium.googlesource.com/native_client/pnacl-subzero/](https://chromium.googlesource.com/native_client/pnacl-subzero/). The fork was made using [git-subtree](https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt) to include all of Subzero's history, and until further notice it should **not** diverge from the upstream project. Contributions must be tested using the [README](third_party/subzero/docs/README.rst) instructions, reviewed at [https://chromium-review.googlesource.com](https://chromium-review.googlesource.com/q/project:native_client%252Fpnacl-subzero), and then pulled into the SwiftShader repository.

+

+[llvm-subzero](third_party/llvm-subzero/) contains a minimized set of LLVM dependencies of the Subzero project.

+

+[PowerVR_SDK](third_party/PowerVR_SDK/) contains a subset of the [PowerVR Graphics Native SDK](https://github.com/powervr-graphics/Native_SDK) for running several sample applications.

+

+[googletest](third_party/googletest/) contains the [Google Test](https://github.com/google/googletest) project, as a Git submodule. It is used for running unit tests for Chromium, and Reactor unit tests. Run `git submodule update --init` to obtain/update the code. Any contributions should be made upstream.

+

+Documentation

+-------------

+

+See [docs/Index.md](docs/Index.md).

+

+Contact

+-------

+

+Public mailing list: [swiftshader@googlegroups.com](https://groups.google.com/forum/#!forum/swiftshader)

+

+General bug tracker:  https://g.co/swiftshaderbugs\

+Chrome specific bugs: https://bugs.chromium.org/p/swiftshader

+

+License

+-------

+

+The SwiftShader project is licensed under the Apache License Version 2.0. You can find a copy of it in [LICENSE.txt](LICENSE.txt).

+

+Files in the third_party folder are subject to their respective license.

+

+Authors and Contributors

+------------------------

+

+The legal authors for copyright purposes are listed in [AUTHORS.txt](AUTHORS.txt).

+

+[CONTRIBUTORS.txt](CONTRIBUTORS.txt) contains a list of names of individuals who have contributed to SwiftShader. If you're not on the list, but you've signed the [Google CLA](https://cla.developers.google.com/clas) and have contributed more than a formatting change, feel free to request to be added.

+

+Disclaimer

+----------

+

+1. Trademarks are the property of their respective owners.

+2. We do not claim official conformance with any graphics APIs at this moment.

+3. This is not an official Google product.

diff --git a/SwiftShader.sln b/SwiftShader.sln
new file mode 100644
index 0000000..63979b5
--- /dev/null
+++ b/SwiftShader.sln
@@ -0,0 +1,524 @@
+Microsoft Visual Studio Solution File, Format Version 12.00

+# Visual Studio 15

+VisualStudioVersion = 15.0.27130.2036

+MinimumVisualStudioVersion = 10.0.40219.1

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LLVM", "LLVM", "{B408B98A-E888-4ECF-81E0-7A37A6854B17}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SwiftShader", "src\SwiftShader\SwiftShader.vcxproj", "{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Reactor", "src\Reactor\Reactor.vcxproj", "{28FD076D-10B5-4BD8-A4CF-F44C7002A803}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenGL", "OpenGL", "{D33114D7-E582-4D61-B27D-FAB0297C43FF}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "src\OpenGL\libGLESv2\libGLESv2.vcxproj", "{B5871A7A-968C-42E3-A33B-981E6F448E78}"

+	ProjectSection(ProjectDependencies) = postProject

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003} = {7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEGL", "src\OpenGL\libEGL\libEGL.vcxproj", "{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "src\OpenGL\compiler\Compiler.vcxproj", "{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "preprocessor", "src\OpenGL\compiler\preprocessor\preprocessor.vcxproj", "{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLES_CM", "src\OpenGL\libGLES_CM\libGLES_CM.vcxproj", "{235B1D85-E6B6-45E2-BA5D-5C60396428FF}"

+	ProjectSection(ProjectDependencies) = postProject

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D9", "src\D3D9\D3D9.vcxproj", "{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2ChameleonMan", "third_party\PowerVR_SDK\Examples\Advanced\ChameleonMan\OGLES2\Build\WindowsVC2010\OGLES2ChameleonMan.vcxproj", "{9CF4408B-9B08-481F-95DA-3DF0846DABE4}"

+	ProjectSection(ProjectDependencies) = postProject

+		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2HelloAPI", "third_party\PowerVR_SDK\Examples\Beginner\01_HelloAPI\OGLES2\Build\WindowsVC2010\OGLES2HelloAPI.vcxproj", "{9DAFEE32-19F6-4410-AA09-2B564FB86F62}"

+	ProjectSection(ProjectDependencies) = postProject

+		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLESBasicTnL", "third_party\PowerVR_SDK\Examples\Beginner\04_BasicTnL\OGLES\Build\WindowsVC2010\OGLESBasicTnL.vcxproj", "{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}"

+	ProjectSection(ProjectDependencies) = postProject

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF} = {235B1D85-E6B6-45E2-BA5D-5C60396428FF}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3ColourGrading", "third_party\PowerVR_SDK\Examples\Intermediate\ColourGrading\OGLES3\Build\WindowsVC2010\OGLES3ColourGrading.vcxproj", "{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}"

+	ProjectSection(ProjectDependencies) = postProject

+		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2DisplacementMap", "third_party\PowerVR_SDK\Examples\Intermediate\DisplacementMap\OGLES2\Build\WindowsVC2010\OGLES2DisplacementMap.vcxproj", "{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}"

+	ProjectSection(ProjectDependencies) = postProject

+		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2Tools", "third_party\PowerVR_SDK\Tools\OGLES2\Build\WindowsVC2010\OGLES2Tools.vcxproj", "{09ABE661-9BC0-4152-A820-1FB0522CAC01}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3Tools", "third_party\PowerVR_SDK\Tools\OGLES3\Build\WindowsVC2010\OGLES3Tools.vcxproj", "{9088FC9E-9843-4E0D-85D0-1B657AFC480A}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D8", "src\D3D8\D3D8.vcxproj", "{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Subzero", "src\Reactor\Subzero.vcxproj", "{0EB31AEC-B020-46AB-BA05-730F6D01C29B}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SubzeroLLVMDependencies", "src\Reactor\SubzeroLLVMDependencies.vcxproj", "{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLESUnitTests", "tests\GLESUnitTests\GLESUnitTests.vcxproj", "{CF8EBC89-8762-49DC-9440-6C82B3499913}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VertexRoutineFuzzer", "tests\fuzzers\VertexRoutineFuzzer.vcxproj", "{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}"

+	ProjectSection(ProjectDependencies) = postProject

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003} = {7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD} = {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vulkan", "src\Vulkan\vulkan.vcxproj", "{E1C34B66-C942-4B9A-B8C3-9A12625650D3}"

+	ProjectSection(ProjectDependencies) = postProject

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {EFF5DE98-2741-3BD8-B049-D5647A223B5E}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactorUnitTests", "src\Reactor\ReactorUnitTests.vcxproj", "{4EC107AB-89E8-4A0B-8366-B3E81085AE07}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VulkanUnitTests", "tests\VulkanUnitTests\VulkanUnitTests.vcxproj", "{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}"

+	ProjectSection(ProjectDependencies) = postProject

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3} = {E1C34B66-C942-4B9A-B8C3-9A12625650D3}

+	EndProjectSection

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SPIRV-Tools", "SPIRV-Tools", "{ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\SPIRV-Tools.vcxproj", "{59349DEB-AC96-335C-ACC6-8A92F774538A}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools-opt", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\opt\SPIRV-Tools-opt.vcxproj", "{EFF5DE98-2741-3BD8-B049-D5647A223B5E}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_tables", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\core_tables.vcxproj", "{983F7132-9747-3649-BF4B-87E69EE85F3E}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enum_string_mapping", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\enum_string_mapping.vcxproj", "{80AF261B-6B92-3143-9FCA-9BC59158D733}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extinst_tables", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\extinst_tables.vcxproj", "{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-header-DebugInfo", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spirv-tools-header-DebugInfo.vcxproj", "{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm", "build\Visual Studio 15 2017 Win64\llvm.vcxproj", "{481093B5-4EF0-391E-82FF-BB73CFCD3D51}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-debuginfo", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spv-tools-debuginfo.vcxproj", "{496AF3EC-139A-3EA0-8898-45C5704A5F38}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-gs", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spv-tools-spv-amd-gs.vcxproj", "{E0B79E0B-25BB-355B-9390-E9EC0047C632}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-sb", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spv-tools-spv-amd-sb.vcxproj", "{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-sevp", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spv-tools-spv-amd-sevp.vcxproj", "{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-stm", "build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\spv-tools-spv-amd-stm.vcxproj", "{9E8623BF-3469-3104-9674-DED25861C7CF}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MathUnitTests", "tests\MathUnitTests\MathUnitTests.vcxproj", "{B4FDF21A-D945-40B2-B459-2A8707879980}"

+EndProject

+Global

+	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+		Debug|x64 = Debug|x64

+		Debug|x86 = Debug|x86

+		Profile|x64 = Profile|x64

+		Profile|x86 = Profile|x86

+		Release|x64 = Release|x64

+		Release|x86 = Release|x86

+	EndGlobalSection

+	GlobalSection(ProjectConfigurationPlatforms) = postSolution

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Debug|x64.ActiveCfg = Debug|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Debug|x64.Build.0 = Debug|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Debug|x86.ActiveCfg = Debug|Win32

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Debug|x86.Build.0 = Debug|Win32

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Profile|x64.ActiveCfg = Profile|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Profile|x64.Build.0 = Profile|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Profile|x86.ActiveCfg = Profile|Win32

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Profile|x86.Build.0 = Profile|Win32

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Release|x64.ActiveCfg = Release|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Release|x64.Build.0 = Release|x64

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Release|x86.ActiveCfg = Release|Win32

+		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}.Release|x86.Build.0 = Release|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Debug|x64.ActiveCfg = Debug|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Debug|x64.Build.0 = Debug|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Debug|x86.ActiveCfg = Debug|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Debug|x86.Build.0 = Debug|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Profile|x64.ActiveCfg = Profile|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Profile|x64.Build.0 = Profile|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Profile|x86.ActiveCfg = Profile|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Profile|x86.Build.0 = Profile|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Release|x64.ActiveCfg = Release|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Release|x64.Build.0 = Release|x64

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Release|x86.ActiveCfg = Release|Win32

+		{28FD076D-10B5-4BD8-A4CF-F44C7002A803}.Release|x86.Build.0 = Release|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|x64.ActiveCfg = Debug|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|x64.Build.0 = Debug|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|x86.ActiveCfg = Debug|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|x86.Build.0 = Debug|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Profile|x64.ActiveCfg = Profile|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Profile|x64.Build.0 = Profile|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Profile|x86.ActiveCfg = Profile|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Profile|x86.Build.0 = Profile|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x64.ActiveCfg = Release|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x64.Build.0 = Release|x64

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x86.ActiveCfg = Release|Win32

+		{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x86.Build.0 = Release|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|x64.ActiveCfg = Debug|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|x64.Build.0 = Debug|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|x86.ActiveCfg = Debug|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|x86.Build.0 = Debug|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Profile|x64.ActiveCfg = Profile|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Profile|x64.Build.0 = Profile|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Profile|x86.ActiveCfg = Profile|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Profile|x86.Build.0 = Profile|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x64.ActiveCfg = Release|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x64.Build.0 = Release|x64

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x86.ActiveCfg = Release|Win32

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x86.Build.0 = Release|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|x64.ActiveCfg = Debug|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|x64.Build.0 = Debug|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|x86.ActiveCfg = Debug|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|x86.Build.0 = Debug|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Profile|x64.ActiveCfg = Profile|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Profile|x64.Build.0 = Profile|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Profile|x86.ActiveCfg = Profile|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Profile|x86.Build.0 = Profile|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x64.ActiveCfg = Release|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x64.Build.0 = Release|x64

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x86.ActiveCfg = Release|Win32

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x86.Build.0 = Release|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Debug|x64.ActiveCfg = Debug|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Debug|x64.Build.0 = Debug|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Debug|x86.ActiveCfg = Debug|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Debug|x86.Build.0 = Debug|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Profile|x64.ActiveCfg = Release|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Profile|x64.Build.0 = Release|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Profile|x86.ActiveCfg = Release|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Profile|x86.Build.0 = Release|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Release|x64.ActiveCfg = Release|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Release|x64.Build.0 = Release|x64

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Release|x86.ActiveCfg = Release|Win32

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A}.Release|x86.Build.0 = Release|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Debug|x64.ActiveCfg = Debug|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Debug|x64.Build.0 = Debug|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Debug|x86.ActiveCfg = Debug|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Debug|x86.Build.0 = Debug|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Profile|x64.ActiveCfg = Profile|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Profile|x64.Build.0 = Profile|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Profile|x86.ActiveCfg = Profile|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Profile|x86.Build.0 = Profile|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Release|x64.ActiveCfg = Release|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Release|x64.Build.0 = Release|x64

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Release|x86.ActiveCfg = Release|Win32

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF}.Release|x86.Build.0 = Release|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Debug|x64.ActiveCfg = Debug|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Debug|x64.Build.0 = Debug|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Debug|x86.ActiveCfg = Debug|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Debug|x86.Build.0 = Debug|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Profile|x64.ActiveCfg = Profile|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Profile|x64.Build.0 = Profile|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Profile|x86.ActiveCfg = Profile|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Profile|x86.Build.0 = Profile|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.ActiveCfg = Release|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.Build.0 = Release|x64

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x86.ActiveCfg = Release|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x86.Build.0 = Release|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Debug|x64.ActiveCfg = Debug|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Debug|x64.Build.0 = Debug|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Debug|x86.ActiveCfg = Debug|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Debug|x86.Build.0 = Debug|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Profile|x64.ActiveCfg = Release|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Profile|x64.Build.0 = Release|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Profile|x86.ActiveCfg = Release|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Profile|x86.Build.0 = Release|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Release|x64.ActiveCfg = Release|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Release|x64.Build.0 = Release|x64

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Release|x86.ActiveCfg = Release|Win32

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4}.Release|x86.Build.0 = Release|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Debug|x64.ActiveCfg = Debug|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Debug|x64.Build.0 = Debug|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Debug|x86.ActiveCfg = Debug|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Debug|x86.Build.0 = Debug|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Profile|x64.ActiveCfg = Release|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Profile|x64.Build.0 = Release|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Profile|x86.ActiveCfg = Release|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Profile|x86.Build.0 = Release|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.ActiveCfg = Release|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.Build.0 = Release|x64

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x86.ActiveCfg = Release|Win32

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x86.Build.0 = Release|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Debug|x64.ActiveCfg = Debug|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Debug|x64.Build.0 = Debug|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Debug|x86.ActiveCfg = Debug|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Debug|x86.Build.0 = Debug|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Profile|x64.ActiveCfg = Release|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Profile|x64.Build.0 = Release|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Profile|x86.ActiveCfg = Release|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Profile|x86.Build.0 = Release|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Release|x64.ActiveCfg = Release|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Release|x64.Build.0 = Release|x64

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Release|x86.ActiveCfg = Release|Win32

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}.Release|x86.Build.0 = Release|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x64.ActiveCfg = Debug|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x64.Build.0 = Debug|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x86.ActiveCfg = Debug|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x86.Build.0 = Debug|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x64.ActiveCfg = Release|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x64.Build.0 = Release|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x86.ActiveCfg = Release|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x86.Build.0 = Release|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x64.ActiveCfg = Release|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x64.Build.0 = Release|x64

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x86.ActiveCfg = Release|Win32

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x86.Build.0 = Release|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Debug|x64.ActiveCfg = Debug|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Debug|x64.Build.0 = Debug|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Debug|x86.ActiveCfg = Debug|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Debug|x86.Build.0 = Debug|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Profile|x64.ActiveCfg = Release|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Profile|x64.Build.0 = Release|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Profile|x86.ActiveCfg = Release|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Profile|x86.Build.0 = Release|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Release|x64.ActiveCfg = Release|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Release|x64.Build.0 = Release|x64

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Release|x86.ActiveCfg = Release|Win32

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733}.Release|x86.Build.0 = Release|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.ActiveCfg = Debug|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.Build.0 = Debug|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x86.ActiveCfg = Debug|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x86.Build.0 = Debug|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Profile|x64.ActiveCfg = Release|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Profile|x64.Build.0 = Release|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Profile|x86.ActiveCfg = Release|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Profile|x86.Build.0 = Release|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.ActiveCfg = Release|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.Build.0 = Release|x64

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x86.ActiveCfg = Release|Win32

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x86.Build.0 = Release|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x64.ActiveCfg = Debug|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x64.Build.0 = Debug|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x86.ActiveCfg = Debug|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x86.Build.0 = Debug|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x64.ActiveCfg = Release|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x64.Build.0 = Release|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x86.ActiveCfg = Release|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x86.Build.0 = Release|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x64.ActiveCfg = Release|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x64.Build.0 = Release|x64

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x86.ActiveCfg = Release|Win32

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x86.Build.0 = Release|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Debug|x64.ActiveCfg = Debug|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Debug|x86.ActiveCfg = Debug|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Debug|x86.Build.0 = Debug|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Profile|x64.ActiveCfg = Profile|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Profile|x86.ActiveCfg = Profile|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Profile|x86.Build.0 = Profile|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Release|x64.ActiveCfg = Release|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Release|x86.ActiveCfg = Release|Win32

+		{F18D5ABF-CA3A-4B74-BDB2-4A1956C86F18}.Release|x86.Build.0 = Release|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Debug|x64.ActiveCfg = Debug|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Debug|x64.Build.0 = Debug|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Debug|x86.ActiveCfg = Debug|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Debug|x86.Build.0 = Debug|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Profile|x64.ActiveCfg = Release|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Profile|x64.Build.0 = Release|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Profile|x86.ActiveCfg = Release|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Profile|x86.Build.0 = Release|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Release|x64.ActiveCfg = Release|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Release|x64.Build.0 = Release|x64

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Release|x86.ActiveCfg = Release|Win32

+		{0EB31AEC-B020-46AB-BA05-730F6D01C29B}.Release|x86.Build.0 = Release|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Debug|x64.ActiveCfg = Debug|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Debug|x64.Build.0 = Debug|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Debug|x86.ActiveCfg = Debug|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Debug|x86.Build.0 = Debug|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Profile|x64.ActiveCfg = Release|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Profile|x64.Build.0 = Release|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Profile|x86.ActiveCfg = Release|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Profile|x86.Build.0 = Release|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Release|x64.ActiveCfg = Release|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Release|x64.Build.0 = Release|x64

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Release|x86.ActiveCfg = Release|Win32

+		{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}.Release|x86.Build.0 = Release|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Debug|x64.ActiveCfg = Debug|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Debug|x64.Build.0 = Debug|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Debug|x86.ActiveCfg = Debug|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Debug|x86.Build.0 = Debug|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Profile|x64.ActiveCfg = Release|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Profile|x64.Build.0 = Release|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Profile|x86.ActiveCfg = Release|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Profile|x86.Build.0 = Release|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Release|x64.ActiveCfg = Release|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Release|x64.Build.0 = Release|x64

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Release|x86.ActiveCfg = Release|Win32

+		{CF8EBC89-8762-49DC-9440-6C82B3499913}.Release|x86.Build.0 = Release|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Debug|x64.ActiveCfg = Debug|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Debug|x64.Build.0 = Debug|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Debug|x86.ActiveCfg = Debug|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Debug|x86.Build.0 = Debug|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Profile|x64.ActiveCfg = Release|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Profile|x64.Build.0 = Release|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Profile|x86.ActiveCfg = Release|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Profile|x86.Build.0 = Release|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Release|x64.ActiveCfg = Release|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Release|x64.Build.0 = Release|x64

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Release|x86.ActiveCfg = Release|Win32

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3}.Release|x86.Build.0 = Release|Win32

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Debug|x64.ActiveCfg = Debug|x64

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Debug|x86.ActiveCfg = Debug|x64

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Profile|x64.ActiveCfg = Release|x64

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Profile|x86.ActiveCfg = Release|x64

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Release|x64.ActiveCfg = Release|x64

+		{E1C34B66-C942-4B9A-B8C3-9A12625650D3}.Release|x86.ActiveCfg = Release|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Debug|x64.ActiveCfg = Debug|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Debug|x64.Build.0 = Debug|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Debug|x86.ActiveCfg = Debug|Win32

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Debug|x86.Build.0 = Debug|Win32

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Profile|x64.ActiveCfg = Release|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Profile|x64.Build.0 = Release|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Profile|x86.ActiveCfg = Release|Win32

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Profile|x86.Build.0 = Release|Win32

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x64.ActiveCfg = Release|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x64.Build.0 = Release|x64

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x86.ActiveCfg = Release|Win32

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07}.Release|x86.Build.0 = Release|Win32

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|x64.ActiveCfg = Debug|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Debug|x86.ActiveCfg = Debug|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|x64.ActiveCfg = Release|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|x86.ActiveCfg = Release|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Profile|x86.Deploy.0 = Release|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|x64.ActiveCfg = Release|x64

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE}.Release|x86.ActiveCfg = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Debug|x64.ActiveCfg = Debug|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Debug|x86.ActiveCfg = Debug|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Profile|x64.ActiveCfg = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Profile|x86.ActiveCfg = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Release|x64.ActiveCfg = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Release|x86.ActiveCfg = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Debug|x64.ActiveCfg = Debug|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Debug|x86.ActiveCfg = Debug|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Profile|x64.ActiveCfg = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Profile|x86.ActiveCfg = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Release|x64.ActiveCfg = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Release|x86.ActiveCfg = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Debug|x64.ActiveCfg = Debug|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Debug|x86.ActiveCfg = Debug|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Profile|x64.ActiveCfg = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Profile|x86.ActiveCfg = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Release|x64.ActiveCfg = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Release|x86.ActiveCfg = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Debug|x64.ActiveCfg = Debug|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Debug|x86.ActiveCfg = Debug|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Profile|x64.ActiveCfg = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Profile|x86.ActiveCfg = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Release|x64.ActiveCfg = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Release|x86.ActiveCfg = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Debug|x64.ActiveCfg = Debug|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Debug|x86.ActiveCfg = Debug|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Profile|x64.ActiveCfg = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Profile|x86.ActiveCfg = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Release|x64.ActiveCfg = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Release|x86.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Debug|x64.ActiveCfg = Debug|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Debug|x86.ActiveCfg = Debug|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Profile|x64.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Profile|x86.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Release|x64.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Release|x86.ActiveCfg = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Debug|x64.ActiveCfg = Debug|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Debug|x64.Build.0 = Debug|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Debug|x86.ActiveCfg = Debug|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Profile|x64.ActiveCfg = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Profile|x64.Build.0 = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Profile|x86.ActiveCfg = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Profile|x86.Build.0 = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Release|x64.ActiveCfg = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Release|x64.Build.0 = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Release|x86.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Debug|x64.ActiveCfg = Debug|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Debug|x86.ActiveCfg = Debug|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Profile|x64.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Profile|x86.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Release|x64.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Release|x86.ActiveCfg = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Debug|x64.ActiveCfg = Debug|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Debug|x86.ActiveCfg = Debug|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Profile|x64.ActiveCfg = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Profile|x86.ActiveCfg = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Release|x64.ActiveCfg = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Release|x86.ActiveCfg = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Debug|x64.ActiveCfg = Debug|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Debug|x86.ActiveCfg = Debug|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Profile|x64.ActiveCfg = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Profile|x86.ActiveCfg = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Release|x64.ActiveCfg = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Release|x86.ActiveCfg = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Debug|x64.ActiveCfg = Debug|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Debug|x86.ActiveCfg = Debug|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Profile|x64.ActiveCfg = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Profile|x86.ActiveCfg = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Release|x64.ActiveCfg = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Release|x86.ActiveCfg = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Debug|x64.ActiveCfg = Debug|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Debug|x86.ActiveCfg = Debug|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Profile|x64.ActiveCfg = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Profile|x86.ActiveCfg = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Release|x64.ActiveCfg = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Release|x86.ActiveCfg = Release|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Debug|x64.ActiveCfg = Debug|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Debug|x64.Build.0 = Debug|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Debug|x86.ActiveCfg = Debug|Win32

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Debug|x86.Build.0 = Debug|Win32

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Profile|x64.ActiveCfg = Release|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Profile|x64.Build.0 = Release|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Profile|x86.ActiveCfg = Release|Win32

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Profile|x86.Build.0 = Release|Win32

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Release|x64.ActiveCfg = Release|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Release|x64.Build.0 = Release|x64

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Release|x86.ActiveCfg = Release|Win32

+		{B4FDF21A-D945-40B2-B459-2A8707879980}.Release|x86.Build.0 = Release|Win32

+	EndGlobalSection

+	GlobalSection(SolutionProperties) = preSolution

+		HideSolutionNode = FALSE

+	EndGlobalSection

+	GlobalSection(NestedProjects) = preSolution

+		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}

+		{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}

+		{92940255-AB4B-42FB-A2C4-0FAB19C3C48A} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}

+		{235B1D85-E6B6-45E2-BA5D-5C60396428FF} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}

+		{B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{9CF4408B-9B08-481F-95DA-3DF0846DABE4} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{9DAFEE32-19F6-4410-AA09-2B564FB86F62} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{04FC5430-3F1B-42A2-A18A-D8BB7E5B2733} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{09ABE661-9BC0-4152-A820-1FB0522CAC01} = {B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9}

+		{9088FC9E-9843-4E0D-85D0-1B657AFC480A} = {B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9}

+		{CF8EBC89-8762-49DC-9440-6C82B3499913} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{FBDCFF88-0CE1-43C3-B694-8F45946FAFE3} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{4EC107AB-89E8-4A0B-8366-B3E81085AE07} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{16E1EBC1-BB6B-4A82-A1A3-5A69AC8D58FE} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{983F7132-9747-3649-BF4B-87E69EE85F3E} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{80AF261B-6B92-3143-9FCA-9BC59158D733} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {B408B98A-E888-4ECF-81E0-7A37A6854B17}

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{9E8623BF-3469-3104-9674-DED25861C7CF} = {ABF69E39-C15E-4DAC-A27E-3480DE2C0CF0}

+		{B4FDF21A-D945-40B2-B459-2A8707879980} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}

+	EndGlobalSection

+	GlobalSection(ExtensibilityGlobals) = postSolution

+		SolutionGuid = {4DF423D2-8425-48A7-9CEC-835C4C3CA957}

+	EndGlobalSection

+EndGlobal

diff --git a/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj b/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj
new file mode 100644
index 0000000..3fac376
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{22133560-41E2-34D0-9A00-A0BD4126F0AD}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>ALL_BUILD</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>Utility</ConfigurationType>

+    <CharacterSet>MultiByte</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>Utility</ConfigurationType>

+    <CharacterSet>MultiByte</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <Midl>

+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <Midl>

+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\GLCompiler.vcxproj">

+      <Project>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</Project>

+      <Name>GLCompiler</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\OGLES2HelloAPI.vcxproj">

+      <Project>{88540F77-A8DE-31E2-88CC-467DEDD94554}</Project>

+      <Name>OGLES2HelloAPI</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorUnitTests.vcxproj">

+      <Project>{C6F6B268-6880-33F4-9C28-AA86A54D187C}</Project>

+      <Name>ReactorUnitTests</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\SPIRV-Tools.vcxproj">

+      <Project>{59349DEB-AC96-335C-ACC6-8A92F774538A}</Project>

+      <Name>SPIRV-Tools</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\link\SPIRV-Tools-link.vcxproj">

+      <Project>{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}</Project>

+      <Name>SPIRV-Tools-link</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\opt\SPIRV-Tools-opt.vcxproj">

+      <Project>{EFF5DE98-2741-3BD8-B049-D5647A223B5E}</Project>

+      <Name>SPIRV-Tools-opt</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\reduce\SPIRV-Tools-reduce.vcxproj">

+      <Project>{D1FC198E-1358-309D-9AD5-C26B47163E33}</Project>

+      <Name>SPIRV-Tools-reduce</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\SPIRV-Tools-shared.vcxproj">

+      <Project>{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}</Project>

+      <Name>SPIRV-Tools-shared</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\SwiftShader.vcxproj">

+      <Project>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</Project>

+      <Name>SwiftShader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\gles-unittests.vcxproj">

+      <Project>{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}</Project>

+      <Name>gles-unittests</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libEGL.vcxproj">

+      <Project>{41C068CD-6F81-3756-8AF2-802940422DB5}</Project>

+      <Name>libEGL</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libGLES_CM.vcxproj">

+      <Project>{C445A398-B6AF-3693-B967-F4C052FCF81A}</Project>

+      <Name>libGLES_CM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libGLESv2.vcxproj">

+      <Project>{C9485675-5744-3E3A-A7A4-C88A805AFAF6}</Project>

+      <Name>libGLESv2</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libvk_swiftshader.vcxproj">

+      <Project>{C8E5841D-D2BC-3987-B6FB-95A1631B497D}</Project>

+      <Name>libvk_swiftshader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\spirv-tools-pkg-config.vcxproj">

+      <Project>{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}</Project>

+      <Name>spirv-tools-pkg-config</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\spirv-tools-shared-pkg-config.vcxproj">

+      <Project>{871BEB73-7406-3F9A-8A89-072702C81C2C}</Project>

+      <Name>spirv-tools-shared-pkg-config</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\vk-unittests.vcxproj">

+      <Project>{3A604DD1-0B96-3AA8-A111-377FD84E89F4}</Project>

+      <Name>vk-unittests</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj.filters b/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj.filters
new file mode 100644
index 0000000..cd2b8af
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ALL_BUILD.vcxproj.filters
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj b/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj
new file mode 100644
index 0000000..9d4227a
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>GLCompiler</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">GLCompiler.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">GLCompiler</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">GLCompiler.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">GLCompiler</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\AnalyzeCallDepth.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\AnalyzeCallDepth.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\BaseTypes.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Common.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Compiler.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Compiler.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ConstantUnion.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Diagnostics.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Diagnostics.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\DirectiveHandler.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\DirectiveHandler.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ExtensionBehavior.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\InfoSink.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InfoSink.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Initialize.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Initialize.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InitializeGlobals.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\InitializeParseContext.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InitializeParseContext.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\IntermTraverse.cpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Intermediate.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\MMap.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\OutputASM.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\OutputASM.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ParseHelper.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ParseHelper.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\PoolAlloc.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\PoolAlloc.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Pragma.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\SymbolTable.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\SymbolTable.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\TranslatorASM.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\TranslatorASM.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Types.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ValidateLimitations.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ValidateLimitations.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ValidateSwitch.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ValidateSwitch.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\debug.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\glslang.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\glslang_lex.cpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\glslang_tab.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\glslang_tab.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\intermOut.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\intermediate.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\localintermediate.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\osinclude.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\parseConst.cpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DiagnosticsBase.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DiagnosticsBase.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveHandlerBase.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveHandlerBase.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveParser.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveParser.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\ExpressionParser.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\ExpressionParser.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Input.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Input.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Lexer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Lexer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Macro.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Macro.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\MacroExpander.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\MacroExpander.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Preprocessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Preprocessor.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\SourceLocation.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Token.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Token.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Tokenizer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Tokenizer.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\length_limits.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\numeric_lex.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\pp_utils.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\util.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\util.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ossource_win.cpp" />

+  </ItemGroup>

+  <ItemGroup>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj.filters b/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj.filters
new file mode 100644
index 0000000..87f9aac
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/GLCompiler.vcxproj.filters
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\AnalyzeCallDepth.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Compiler.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Diagnostics.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\DirectiveHandler.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\InfoSink.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Initialize.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\InitializeParseContext.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\IntermTraverse.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\Intermediate.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\OutputASM.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ParseHelper.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\PoolAlloc.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\SymbolTable.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\TranslatorASM.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ValidateLimitations.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ValidateSwitch.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\debug.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\glslang_lex.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\glslang_tab.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\intermOut.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\parseConst.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DiagnosticsBase.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveHandlerBase.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveParser.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\ExpressionParser.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Input.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Lexer.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Macro.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\MacroExpander.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Preprocessor.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Token.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Tokenizer.cpp">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\util.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\compiler\ossource_win.cpp">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\AnalyzeCallDepth.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\BaseTypes.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Common.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Compiler.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ConstantUnion.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Diagnostics.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\DirectiveHandler.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ExtensionBehavior.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InfoSink.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Initialize.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InitializeGlobals.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\InitializeParseContext.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\MMap.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\OutputASM.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ParseHelper.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\PoolAlloc.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Pragma.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\SymbolTable.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\TranslatorASM.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\Types.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ValidateLimitations.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\ValidateSwitch.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\debug.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\glslang.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\glslang_tab.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\intermediate.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\localintermediate.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\osinclude.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DiagnosticsBase.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveHandlerBase.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\DirectiveParser.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\ExpressionParser.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Input.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Lexer.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Macro.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\MacroExpander.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Preprocessor.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\SourceLocation.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Token.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\Tokenizer.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\length_limits.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\numeric_lex.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\preprocessor\pp_utils.h">

+      <Filter>src\OpenGL\compiler\preprocessor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\compiler\util.h">

+      <Filter>src\OpenGL\compiler</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL">

+      <UniqueIdentifier>{F6D84093-2476-35F1-9A60-3807139DF63F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\compiler">

+      <UniqueIdentifier>{F3F4FB2E-6305-3A58-943D-721138922B19}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\compiler\preprocessor">

+      <UniqueIdentifier>{6D5E69E1-B243-3D9B-BD21-8A529AB2F2E1}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj b/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj
new file mode 100644
index 0000000..c09f092
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{88540F77-A8DE-31E2-88CC-467DEDD94554}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>OGLES2HelloAPI</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">OGLES2HelloAPI.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">OGLES2HelloAPI</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">OGLES2HelloAPI.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">OGLES2HelloAPI</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Debug\libEGL.lib;Debug\libGLESv2.lib;Debug\SwiftShader.lib;Debug\ReactorLLVM.lib;Debug\llvm.lib;Debug\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/OGLES2HelloAPI.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/OGLES2HelloAPI.pdb</ProgramDataBaseFile>

+      <SubSystem>Windows</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Release\libEGL.lib;Release\libGLESv2.lib;Release\SwiftShader.lib;Release\ReactorLLVM.lib;Release\llvm.lib;Release\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/OGLES2HelloAPI.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/OGLES2HelloAPI.pdb</ProgramDataBaseFile>

+      <SubSystem>Windows</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)third_party\PowerVR_SDK\Examples\Beginner\01_HelloAPI\OGLES2\OGLES2HelloAPI_Windows.cpp" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\GLCompiler.vcxproj">

+      <Project>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</Project>

+      <Name>GLCompiler</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\SwiftShader.vcxproj">

+      <Project>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</Project>

+      <Name>SwiftShader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libEGL.vcxproj">

+      <Project>{41C068CD-6F81-3756-8AF2-802940422DB5}</Project>

+      <Name>libEGL</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libGLESv2.vcxproj">

+      <Project>{C9485675-5744-3E3A-A7A4-C88A805AFAF6}</Project>

+      <Name>libGLESv2</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj.filters b/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj.filters
new file mode 100644
index 0000000..3453804
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/OGLES2HelloAPI.vcxproj.filters
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)third_party\PowerVR_SDK\Examples\Beginner\01_HelloAPI\OGLES2\OGLES2HelloAPI_Windows.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Source Files">

+      <UniqueIdentifier>{B11E6D1A-DF77-39FB-B209-A851B3357F47}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj b/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj
new file mode 100644
index 0000000..b2cbe0b
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>ReactorLLVM</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ReactorLLVM.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ReactorLLVM</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ReactorLLVM.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ReactorLLVM</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Reactor\Reactor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\Reactor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Reactor\LLVMReactor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\LLVMReactor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Reactor\LLVMReactorDebugInfo.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\LLVMReactorDebugInfo.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\Nucleus.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\Routine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Reactor\CPUID.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\CPUID.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Reactor\Debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\Debug.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Reactor\ExecutableMemory.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Reactor\ExecutableMemory.hpp" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj.filters b/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj.filters
new file mode 100644
index 0000000..c5fad1a
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ReactorLLVM.vcxproj.filters
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Reactor\Reactor.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Reactor\LLVMReactor.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Reactor\LLVMReactorDebugInfo.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Reactor\CPUID.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Reactor\Debug.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Reactor\ExecutableMemory.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)src\Reactor\Reactor.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\LLVMReactor.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\LLVMReactorDebugInfo.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\Nucleus.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\Routine.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\CPUID.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\Debug.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Reactor\ExecutableMemory.hpp">

+      <Filter>src\Reactor</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Reactor">

+      <UniqueIdentifier>{760E86DE-2EB4-31C6-BCA9-1FFD8B9D25C2}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj b/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj
new file mode 100644
index 0000000..bf38694
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{C6F6B268-6880-33F4-9C28-AA86A54D187C}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>ReactorUnitTests</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ReactorUnitTests.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ReactorUnitTests</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ReactorUnitTests.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ReactorUnitTests</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Debug\ReactorLLVM.lib;Debug\llvm.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/ReactorUnitTests.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/ReactorUnitTests.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googletest;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Release\ReactorLLVM.lib;Release\llvm.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/ReactorUnitTests.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/ReactorUnitTests.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Reactor\ReactorUnitTests.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\googletest\googletest\src\gtest-all.cc" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj.filters b/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj.filters
new file mode 100644
index 0000000..73b4b66
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/ReactorUnitTests.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Reactor\ReactorUnitTests.cpp">

+      <Filter>src\Reactor</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\googletest\googletest\src\gtest-all.cc">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Source Files">

+      <UniqueIdentifier>{B11E6D1A-DF77-39FB-B209-A851B3357F47}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Reactor">

+      <UniqueIdentifier>{760E86DE-2EB4-31C6-BCA9-1FFD8B9D25C2}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/SwiftShader.sln b/build/Visual Studio 15 2017 Win64/SwiftShader.sln
new file mode 100644
index 0000000..cc3a8c3
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/SwiftShader.sln
@@ -0,0 +1,369 @@
+Microsoft Visual Studio Solution File, Format Version 12.00

+# Visual Studio 15

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CMakePredefinedTargets", "CMakePredefinedTargets", "{5A8246FF-BC9A-3160-90F6-4485584AA181}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{5C9FFDD6-4CF8-3C7F-BF37-4BB599A8D6EF}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LLVM", "LLVM", "{0488B5E4-1DBE-38FD-B1F4-DB5705E2CD20}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenGL", "OpenGL", "{116CE3E1-1241-38D2-8990-6798DA98243C}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SPIRV-Tools build", "SPIRV-Tools build", "{57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SPIRV-Tools libraries", "SPIRV-Tools libraries", "{6E2B3475-2FBD-3637-9C98-FABCA56809D3}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SPIRV-Tools utilities", "SPIRV-Tools utilities", "{6D3379E6-A4B7-33F9-9DEE-DD4172B47202}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{229EA78E-E097-3D99-97A2-F7D6E89403F3}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{09C52637-9EB5-3A2C-B47E-0575BA706063}"

+EndProject

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Vulkan", "Vulkan", "{42C14F13-F5F1-311B-B800-81DEAB5B1D11}"

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{22133560-41E2-34D0-9A00-A0BD4126F0AD}"

+	ProjectSection(ProjectDependencies) = postProject

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}

+		{88540F77-A8DE-31E2-88CC-467DEDD94554} = {88540F77-A8DE-31E2-88CC-467DEDD94554}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C} = {C6F6B268-6880-33F4-9C28-AA86A54D187C}

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23} = {878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {EFF5DE98-2741-3BD8-B049-D5647A223B5E}

+		{D1FC198E-1358-309D-9AD5-C26B47163E33} = {D1FC198E-1358-309D-9AD5-C26B47163E33}

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A} = {CF43CEBC-9B44-3697-8262-5DC3F9AC532A}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {E190CBF2-358E-3C1A-8DF7-19F43DF189C0}

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D} = {1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}

+		{41C068CD-6F81-3756-8AF2-802940422DB5} = {41C068CD-6F81-3756-8AF2-802940422DB5}

+		{C445A398-B6AF-3693-B967-F4C052FCF81A} = {C445A398-B6AF-3693-B967-F4C052FCF81A}

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6} = {C9485675-5744-3E3A-A7A4-C88A805AFAF6}

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D} = {C8E5841D-D2BC-3987-B6FB-95A1631B497D}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+		{FFE62FBF-2BD2-37B2-8883-5B2BA1894018} = {FFE62FBF-2BD2-37B2-8883-5B2BA1894018}

+		{871BEB73-7406-3F9A-8A89-072702C81C2C} = {871BEB73-7406-3F9A-8A89-072702C81C2C}

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4} = {3A604DD1-0B96-3AA8-A111-377FD84E89F4}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLCompiler", "GLCompiler.vcxproj", "{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2HelloAPI", "OGLES2HelloAPI.vcxproj", "{88540F77-A8DE-31E2-88CC-467DEDD94554}"

+	ProjectSection(ProjectDependencies) = postProject

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {E190CBF2-358E-3C1A-8DF7-19F43DF189C0}

+		{41C068CD-6F81-3756-8AF2-802940422DB5} = {41C068CD-6F81-3756-8AF2-802940422DB5}

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6} = {C9485675-5744-3E3A-A7A4-C88A805AFAF6}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactorLLVM", "ReactorLLVM.vcxproj", "{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}"

+	ProjectSection(ProjectDependencies) = postProject

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactorUnitTests", "ReactorUnitTests.vcxproj", "{C6F6B268-6880-33F4-9C28-AA86A54D187C}"

+	ProjectSection(ProjectDependencies) = postProject

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools", "third_party\SPIRV-Tools\source\SPIRV-Tools.vcxproj", "{59349DEB-AC96-335C-ACC6-8A92F774538A}"

+	ProjectSection(ProjectDependencies) = postProject

+		{983F7132-9747-3649-BF4B-87E69EE85F3E} = {983F7132-9747-3649-BF4B-87E69EE85F3E}

+		{80AF261B-6B92-3143-9FCA-9BC59158D733} = {80AF261B-6B92-3143-9FCA-9BC59158D733}

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E} = {3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools-link", "third_party\SPIRV-Tools\source\link\SPIRV-Tools-link.vcxproj", "{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}"

+	ProjectSection(ProjectDependencies) = postProject

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {EFF5DE98-2741-3BD8-B049-D5647A223B5E}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools-opt", "third_party\SPIRV-Tools\source\opt\SPIRV-Tools-opt.vcxproj", "{EFF5DE98-2741-3BD8-B049-D5647A223B5E}"

+	ProjectSection(ProjectDependencies) = postProject

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools-reduce", "third_party\SPIRV-Tools\source\reduce\SPIRV-Tools-reduce.vcxproj", "{D1FC198E-1358-309D-9AD5-C26B47163E33}"

+	ProjectSection(ProjectDependencies) = postProject

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {EFF5DE98-2741-3BD8-B049-D5647A223B5E}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Tools-shared", "third_party\SPIRV-Tools\source\SPIRV-Tools-shared.vcxproj", "{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}"

+	ProjectSection(ProjectDependencies) = postProject

+		{983F7132-9747-3649-BF4B-87E69EE85F3E} = {983F7132-9747-3649-BF4B-87E69EE85F3E}

+		{80AF261B-6B92-3143-9FCA-9BC59158D733} = {80AF261B-6B92-3143-9FCA-9BC59158D733}

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E} = {3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SwiftShader", "SwiftShader.vcxproj", "{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_tables", "third_party\SPIRV-Tools\source\core_tables.vcxproj", "{983F7132-9747-3649-BF4B-87E69EE85F3E}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "enum_string_mapping", "third_party\SPIRV-Tools\source\enum_string_mapping.vcxproj", "{80AF261B-6B92-3143-9FCA-9BC59158D733}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extinst_tables", "third_party\SPIRV-Tools\source\extinst_tables.vcxproj", "{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}"

+	ProjectSection(ProjectDependencies) = postProject

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483} = {39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38} = {496AF3EC-139A-3EA0-8898-45C5704A5F38}

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632} = {E0B79E0B-25BB-355B-9390-E9EC0047C632}

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE} = {1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3} = {32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}

+		{9E8623BF-3469-3104-9674-DED25861C7CF} = {9E8623BF-3469-3104-9674-DED25861C7CF}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gles-unittests", "gles-unittests.vcxproj", "{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}"

+	ProjectSection(ProjectDependencies) = postProject

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {E190CBF2-358E-3C1A-8DF7-19F43DF189C0}

+		{41C068CD-6F81-3756-8AF2-802940422DB5} = {41C068CD-6F81-3756-8AF2-802940422DB5}

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6} = {C9485675-5744-3E3A-A7A4-C88A805AFAF6}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEGL", "libEGL.vcxproj", "{41C068CD-6F81-3756-8AF2-802940422DB5}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLES_CM", "libGLES_CM.vcxproj", "{C445A398-B6AF-3693-B967-F4C052FCF81A}"

+	ProjectSection(ProjectDependencies) = postProject

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {E190CBF2-358E-3C1A-8DF7-19F43DF189C0}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "libGLESv2.vcxproj", "{C9485675-5744-3E3A-A7A4-C88A805AFAF6}"

+	ProjectSection(ProjectDependencies) = postProject

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {E190CBF2-358E-3C1A-8DF7-19F43DF189C0}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvk_swiftshader", "libvk_swiftshader.vcxproj", "{C8E5841D-D2BC-3987-B6FB-95A1631B497D}"

+	ProjectSection(ProjectDependencies) = postProject

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {EFF5DE98-2741-3BD8-B049-D5647A223B5E}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {481093B5-4EF0-391E-82FF-BB73CFCD3D51}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm", "llvm.vcxproj", "{481093B5-4EF0-391E-82FF-BB73CFCD3D51}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-build-version", "third_party\SPIRV-Tools\source\spirv-tools-build-version.vcxproj", "{E6C11FBC-3EC2-3A61-B2F4-EC03BE2CDC63}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-header-DebugInfo", "third_party\SPIRV-Tools\source\spirv-tools-header-DebugInfo.vcxproj", "{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-pkg-config", "third_party\SPIRV-Tools\spirv-tools-pkg-config.vcxproj", "{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-shared-pkg-config", "third_party\SPIRV-Tools\spirv-tools-shared-pkg-config.vcxproj", "{871BEB73-7406-3F9A-8A89-072702C81C2C}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv-tools-vimsyntax", "third_party\SPIRV-Tools\source\spirv-tools-vimsyntax.vcxproj", "{AFB877FF-C23C-3ABD-A0C5-0F235F517330}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-debuginfo", "third_party\SPIRV-Tools\source\spv-tools-debuginfo.vcxproj", "{496AF3EC-139A-3EA0-8898-45C5704A5F38}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-gs", "third_party\SPIRV-Tools\source\spv-tools-spv-amd-gs.vcxproj", "{E0B79E0B-25BB-355B-9390-E9EC0047C632}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-sb", "third_party\SPIRV-Tools\source\spv-tools-spv-amd-sb.vcxproj", "{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-sevp", "third_party\SPIRV-Tools\source\spv-tools-spv-amd-sevp.vcxproj", "{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spv-tools-spv-amd-stm", "third_party\SPIRV-Tools\source\spv-tools-spv-amd-stm.vcxproj", "{9E8623BF-3469-3104-9674-DED25861C7CF}"

+	ProjectSection(ProjectDependencies) = postProject

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vk-unittests", "vk-unittests.vcxproj", "{3A604DD1-0B96-3AA8-A111-377FD84E89F4}"

+	ProjectSection(ProjectDependencies) = postProject

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {59349DEB-AC96-335C-ACC6-8A92F774538A}

+	EndProjectSection

+EndProject

+Global

+	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+		Debug|x64 = Debug|x64

+		Release|x64 = Release|x64

+	EndGlobalSection

+	GlobalSection(ProjectConfigurationPlatforms) = postSolution

+		{22133560-41E2-34D0-9A00-A0BD4126F0AD}.Debug|x64.ActiveCfg = Debug|x64

+		{22133560-41E2-34D0-9A00-A0BD4126F0AD}.Release|x64.ActiveCfg = Release|x64

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}.Debug|x64.ActiveCfg = Debug|x64

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}.Debug|x64.Build.0 = Debug|x64

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}.Release|x64.ActiveCfg = Release|x64

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}.Release|x64.Build.0 = Release|x64

+		{88540F77-A8DE-31E2-88CC-467DEDD94554}.Debug|x64.ActiveCfg = Debug|x64

+		{88540F77-A8DE-31E2-88CC-467DEDD94554}.Debug|x64.Build.0 = Debug|x64

+		{88540F77-A8DE-31E2-88CC-467DEDD94554}.Release|x64.ActiveCfg = Release|x64

+		{88540F77-A8DE-31E2-88CC-467DEDD94554}.Release|x64.Build.0 = Release|x64

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}.Debug|x64.ActiveCfg = Debug|x64

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}.Debug|x64.Build.0 = Debug|x64

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}.Release|x64.ActiveCfg = Release|x64

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}.Release|x64.Build.0 = Release|x64

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C}.Debug|x64.ActiveCfg = Debug|x64

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C}.Debug|x64.Build.0 = Debug|x64

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C}.Release|x64.ActiveCfg = Release|x64

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C}.Release|x64.Build.0 = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Debug|x64.ActiveCfg = Debug|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Debug|x64.Build.0 = Debug|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Release|x64.ActiveCfg = Release|x64

+		{59349DEB-AC96-335C-ACC6-8A92F774538A}.Release|x64.Build.0 = Release|x64

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}.Debug|x64.ActiveCfg = Debug|x64

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}.Debug|x64.Build.0 = Debug|x64

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}.Release|x64.ActiveCfg = Release|x64

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23}.Release|x64.Build.0 = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Debug|x64.ActiveCfg = Debug|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Debug|x64.Build.0 = Debug|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Release|x64.ActiveCfg = Release|x64

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E}.Release|x64.Build.0 = Release|x64

+		{D1FC198E-1358-309D-9AD5-C26B47163E33}.Debug|x64.ActiveCfg = Debug|x64

+		{D1FC198E-1358-309D-9AD5-C26B47163E33}.Debug|x64.Build.0 = Debug|x64

+		{D1FC198E-1358-309D-9AD5-C26B47163E33}.Release|x64.ActiveCfg = Release|x64

+		{D1FC198E-1358-309D-9AD5-C26B47163E33}.Release|x64.Build.0 = Release|x64

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}.Debug|x64.ActiveCfg = Debug|x64

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}.Debug|x64.Build.0 = Debug|x64

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}.Release|x64.ActiveCfg = Release|x64

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A}.Release|x64.Build.0 = Release|x64

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}.Debug|x64.ActiveCfg = Debug|x64

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}.Debug|x64.Build.0 = Debug|x64

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}.Release|x64.ActiveCfg = Release|x64

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}.Release|x64.Build.0 = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Debug|x64.ActiveCfg = Debug|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Debug|x64.Build.0 = Debug|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Release|x64.ActiveCfg = Release|x64

+		{983F7132-9747-3649-BF4B-87E69EE85F3E}.Release|x64.Build.0 = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Debug|x64.ActiveCfg = Debug|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Debug|x64.Build.0 = Debug|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Release|x64.ActiveCfg = Release|x64

+		{80AF261B-6B92-3143-9FCA-9BC59158D733}.Release|x64.Build.0 = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Debug|x64.ActiveCfg = Debug|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Debug|x64.Build.0 = Debug|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Release|x64.ActiveCfg = Release|x64

+		{3F5B4AC4-64E2-3B84-BEE0-405F7EFD435E}.Release|x64.Build.0 = Release|x64

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}.Debug|x64.ActiveCfg = Debug|x64

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}.Debug|x64.Build.0 = Debug|x64

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}.Release|x64.ActiveCfg = Release|x64

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}.Release|x64.Build.0 = Release|x64

+		{41C068CD-6F81-3756-8AF2-802940422DB5}.Debug|x64.ActiveCfg = Debug|x64

+		{41C068CD-6F81-3756-8AF2-802940422DB5}.Debug|x64.Build.0 = Debug|x64

+		{41C068CD-6F81-3756-8AF2-802940422DB5}.Release|x64.ActiveCfg = Release|x64

+		{41C068CD-6F81-3756-8AF2-802940422DB5}.Release|x64.Build.0 = Release|x64

+		{C445A398-B6AF-3693-B967-F4C052FCF81A}.Debug|x64.ActiveCfg = Debug|x64

+		{C445A398-B6AF-3693-B967-F4C052FCF81A}.Debug|x64.Build.0 = Debug|x64

+		{C445A398-B6AF-3693-B967-F4C052FCF81A}.Release|x64.ActiveCfg = Release|x64

+		{C445A398-B6AF-3693-B967-F4C052FCF81A}.Release|x64.Build.0 = Release|x64

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6}.Debug|x64.ActiveCfg = Debug|x64

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6}.Debug|x64.Build.0 = Debug|x64

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6}.Release|x64.ActiveCfg = Release|x64

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6}.Release|x64.Build.0 = Release|x64

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D}.Debug|x64.ActiveCfg = Debug|x64

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D}.Debug|x64.Build.0 = Debug|x64

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D}.Release|x64.ActiveCfg = Release|x64

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D}.Release|x64.Build.0 = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Debug|x64.ActiveCfg = Debug|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Debug|x64.Build.0 = Debug|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Release|x64.ActiveCfg = Release|x64

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51}.Release|x64.Build.0 = Release|x64

+		{E6C11FBC-3EC2-3A61-B2F4-EC03BE2CDC63}.Debug|x64.ActiveCfg = Debug|x64

+		{E6C11FBC-3EC2-3A61-B2F4-EC03BE2CDC63}.Release|x64.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Debug|x64.ActiveCfg = Debug|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Debug|x64.Build.0 = Debug|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Release|x64.ActiveCfg = Release|x64

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483}.Release|x64.Build.0 = Release|x64

+		{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}.Debug|x64.ActiveCfg = Debug|x64

+		{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}.Debug|x64.Build.0 = Debug|x64

+		{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}.Release|x64.ActiveCfg = Release|x64

+		{FFE62FBF-2BD2-37B2-8883-5B2BA1894018}.Release|x64.Build.0 = Release|x64

+		{871BEB73-7406-3F9A-8A89-072702C81C2C}.Debug|x64.ActiveCfg = Debug|x64

+		{871BEB73-7406-3F9A-8A89-072702C81C2C}.Debug|x64.Build.0 = Debug|x64

+		{871BEB73-7406-3F9A-8A89-072702C81C2C}.Release|x64.ActiveCfg = Release|x64

+		{871BEB73-7406-3F9A-8A89-072702C81C2C}.Release|x64.Build.0 = Release|x64

+		{AFB877FF-C23C-3ABD-A0C5-0F235F517330}.Debug|x64.ActiveCfg = Debug|x64

+		{AFB877FF-C23C-3ABD-A0C5-0F235F517330}.Release|x64.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Debug|x64.ActiveCfg = Debug|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Debug|x64.Build.0 = Debug|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Release|x64.ActiveCfg = Release|x64

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38}.Release|x64.Build.0 = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Debug|x64.ActiveCfg = Debug|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Debug|x64.Build.0 = Debug|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Release|x64.ActiveCfg = Release|x64

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632}.Release|x64.Build.0 = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Debug|x64.ActiveCfg = Debug|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Debug|x64.Build.0 = Debug|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Release|x64.ActiveCfg = Release|x64

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE}.Release|x64.Build.0 = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Debug|x64.ActiveCfg = Debug|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Debug|x64.Build.0 = Debug|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Release|x64.ActiveCfg = Release|x64

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3}.Release|x64.Build.0 = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Debug|x64.ActiveCfg = Debug|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Debug|x64.Build.0 = Debug|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Release|x64.ActiveCfg = Release|x64

+		{9E8623BF-3469-3104-9674-DED25861C7CF}.Release|x64.Build.0 = Release|x64

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4}.Debug|x64.ActiveCfg = Debug|x64

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4}.Debug|x64.Build.0 = Debug|x64

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4}.Release|x64.ActiveCfg = Release|x64

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4}.Release|x64.Build.0 = Release|x64

+	EndGlobalSection

+	GlobalSection(NestedProjects) = preSolution

+		{22133560-41E2-34D0-9A00-A0BD4126F0AD} = {5A8246FF-BC9A-3160-90F6-4485584AA181}

+		{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4} = {5C9FFDD6-4CF8-3C7F-BF37-4BB599A8D6EF}

+		{E190CBF2-358E-3C1A-8DF7-19F43DF189C0} = {5C9FFDD6-4CF8-3C7F-BF37-4BB599A8D6EF}

+		{481093B5-4EF0-391E-82FF-BB73CFCD3D51} = {0488B5E4-1DBE-38FD-B1F4-DB5705E2CD20}

+		{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61} = {116CE3E1-1241-38D2-8990-6798DA98243C}

+		{41C068CD-6F81-3756-8AF2-802940422DB5} = {116CE3E1-1241-38D2-8990-6798DA98243C}

+		{C445A398-B6AF-3693-B967-F4C052FCF81A} = {116CE3E1-1241-38D2-8990-6798DA98243C}

+		{C9485675-5744-3E3A-A7A4-C88A805AFAF6} = {116CE3E1-1241-38D2-8990-6798DA98243C}

+		{E6C11FBC-3EC2-3A61-B2F4-EC03BE2CDC63} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{39DFA88C-1DC6-3E6F-A71F-7970C1B8E483} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{496AF3EC-139A-3EA0-8898-45C5704A5F38} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{E0B79E0B-25BB-355B-9390-E9EC0047C632} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{1262CB67-3BC7-35D5-9036-3D3B3A9DC3CE} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{32C0DDEA-EC24-3465-B0F9-9DA187D45ED3} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{9E8623BF-3469-3104-9674-DED25861C7CF} = {57CCB7BC-9D96-3E32-AA6F-3B7521C948E6}

+		{59349DEB-AC96-335C-ACC6-8A92F774538A} = {6E2B3475-2FBD-3637-9C98-FABCA56809D3}

+		{878BEAEA-CC28-3E97-B0F5-DB93FBC28A23} = {6E2B3475-2FBD-3637-9C98-FABCA56809D3}

+		{EFF5DE98-2741-3BD8-B049-D5647A223B5E} = {6E2B3475-2FBD-3637-9C98-FABCA56809D3}

+		{D1FC198E-1358-309D-9AD5-C26B47163E33} = {6E2B3475-2FBD-3637-9C98-FABCA56809D3}

+		{CF43CEBC-9B44-3697-8262-5DC3F9AC532A} = {6E2B3475-2FBD-3637-9C98-FABCA56809D3}

+		{AFB877FF-C23C-3ABD-A0C5-0F235F517330} = {6D3379E6-A4B7-33F9-9DEE-DD4172B47202}

+		{88540F77-A8DE-31E2-88CC-467DEDD94554} = {229EA78E-E097-3D99-97A2-F7D6E89403F3}

+		{C6F6B268-6880-33F4-9C28-AA86A54D187C} = {09C52637-9EB5-3A2C-B47E-0575BA706063}

+		{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D} = {09C52637-9EB5-3A2C-B47E-0575BA706063}

+		{3A604DD1-0B96-3AA8-A111-377FD84E89F4} = {09C52637-9EB5-3A2C-B47E-0575BA706063}

+		{C8E5841D-D2BC-3987-B6FB-95A1631B497D} = {42C14F13-F5F1-311B-B800-81DEAB5B1D11}

+	EndGlobalSection

+	GlobalSection(ExtensibilityGlobals) = postSolution

+		SolutionGuid = {71ECE391-8BC9-3E86-AB78-BB6A00B0FEAB}

+	EndGlobalSection

+	GlobalSection(ExtensibilityAddIns) = postSolution

+	EndGlobalSection

+EndGlobal

diff --git a/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj b/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj
new file mode 100644
index 0000000..500e5e2
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>SwiftShader</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">SwiftShader.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">SwiftShader</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">SwiftShader.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">SwiftShader</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Common\CPUID.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\CPUID.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Configurator.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Configurator.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Debug.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Half.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Half.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Math.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Math.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Memory.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Memory.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\MutexLock.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\RecursiveLock.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Resource.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Resource.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Socket.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Socket.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Thread.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Thread.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Common\Timer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Timer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Types.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\Version.h" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Blitter.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Blitter.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Clipper.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Clipper.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Color.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Color.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Context.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Context.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\ETC_Decoder.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\ETC_Decoder.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\LRUCache.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Matrix.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Matrix.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Memset.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\PixelProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\PixelProcessor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Plane.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Plane.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Point.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Point.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Polygon.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Primitive.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\QuadRasterizer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\QuadRasterizer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Rasterizer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Renderer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Renderer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\RoutineCache.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Sampler.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Sampler.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\SetupProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\SetupProcessor.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Stream.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Surface.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Surface.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\TextureStage.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\TextureStage.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Triangle.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\Vector.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Vector.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\Vertex.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Renderer\VertexProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Renderer\VertexProcessor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\Constants.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\Constants.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelPipeline.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelPipeline.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelProgram.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelProgram.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelShader.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelShader.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\SamplerCore.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\SamplerCore.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\SetupRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\SetupRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\Shader.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\Shader.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\ShaderCore.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\ShaderCore.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexPipeline.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexPipeline.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexProgram.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexProgram.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexShader.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexShader.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\Config.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\Config.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBuffer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\SwiftConfig.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\SwiftConfig.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferDD.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferDD.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferGDI.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferGDI.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferWin.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferWin.hpp" />

+  </ItemGroup>

+  <ItemGroup>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj.filters b/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj.filters
new file mode 100644
index 0000000..0f59948
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/SwiftShader.vcxproj.filters
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Common\CPUID.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Configurator.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Debug.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Half.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Math.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Memory.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Resource.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Socket.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Thread.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Common\Timer.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Blitter.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Clipper.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Color.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Context.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\ETC_Decoder.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Matrix.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\PixelProcessor.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Plane.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Point.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\QuadRasterizer.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Renderer.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Sampler.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\SetupProcessor.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Surface.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\TextureStage.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\Vector.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Renderer\VertexProcessor.cpp">

+      <Filter>src\Renderer</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\Constants.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelPipeline.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelProgram.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelRoutine.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\PixelShader.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\SamplerCore.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\SetupRoutine.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\Shader.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\ShaderCore.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexPipeline.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexProgram.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexRoutine.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Shader\VertexShader.cpp">

+      <Filter>src\Shader</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\Config.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBuffer.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\SwiftConfig.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferDD.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferGDI.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Main\FrameBufferWin.cpp">

+      <Filter>src\Main</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)src\Common\CPUID.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Configurator.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Debug.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Half.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Math.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Memory.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\MutexLock.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\RecursiveLock.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Resource.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Socket.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Thread.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Timer.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Types.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\Version.h">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Blitter.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Clipper.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Color.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Context.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\ETC_Decoder.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\LRUCache.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Matrix.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\PixelProcessor.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Plane.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Point.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Polygon.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Primitive.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\QuadRasterizer.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Rasterizer.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Renderer.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\RoutineCache.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Sampler.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\SetupProcessor.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Stream.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Surface.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\TextureStage.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Triangle.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Vector.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\Vertex.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Renderer\VertexProcessor.hpp">

+      <Filter>src\Renderer</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\Constants.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelPipeline.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelProgram.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelRoutine.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\PixelShader.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\SamplerCore.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\SetupRoutine.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\Shader.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\ShaderCore.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexPipeline.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexProgram.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexRoutine.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Shader\VertexShader.hpp">

+      <Filter>src\Shader</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\Config.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBuffer.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\SwiftConfig.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferDD.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferGDI.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Main\FrameBufferWin.hpp">

+      <Filter>src\Main</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Common">

+      <UniqueIdentifier>{B0058071-2A97-3E9E-A00E-6FDE51114CE4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Main">

+      <UniqueIdentifier>{46D02282-8ABB-32F5-8522-04CF7C13CE38}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Renderer">

+      <UniqueIdentifier>{B15F1FA3-503E-37F7-A584-C589FC3DACFA}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Shader">

+      <UniqueIdentifier>{B47A3AEA-B1E3-38BC-8D24-842B83F0DCFF}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj b/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj
new file mode 100644
index 0000000..363744d
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{1D3CBAB0-D6DB-3F7A-B1BA-64A3671A5C9D}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>gles-unittests</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">gles-unittests.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">gles-unittests</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">gles-unittests.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">gles-unittests</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.exe</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;STANDALONE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;STANDALONE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Debug\libEGL.lib;Debug\libGLESv2.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Debug\SwiftShader.lib;Debug\ReactorLLVM.lib;Debug\llvm.lib;Debug\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/gles-unittests.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/gles-unittests.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;STANDALONE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;STANDALONE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include;$(SolutionDir)third_party\googletest\googlemock\include;$(SolutionDir)third_party\googletest\googletest;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Link>

+      <AdditionalDependencies>Release\libEGL.lib;Release\libGLESv2.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Release\SwiftShader.lib;Release\ReactorLLVM.lib;Release\llvm.lib;Release\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/gles-unittests.lib</ImportLibrary>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/gles-unittests.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)tests\GLESUnitTests\main.cpp" />

+    <ClCompile Include="$(SolutionDir)tests\GLESUnitTests\unittests.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\googletest\googletest\src\gtest-all.cc" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\GLCompiler.vcxproj">

+      <Project>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</Project>

+      <Name>GLCompiler</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\SwiftShader.vcxproj">

+      <Project>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</Project>

+      <Name>SwiftShader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libEGL.vcxproj">

+      <Project>{41C068CD-6F81-3756-8AF2-802940422DB5}</Project>

+      <Name>libEGL</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\libGLESv2.vcxproj">

+      <Project>{C9485675-5744-3E3A-A7A4-C88A805AFAF6}</Project>

+      <Name>libGLESv2</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj.filters b/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj.filters
new file mode 100644
index 0000000..8439e9b
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/gles-unittests.vcxproj.filters
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)tests\GLESUnitTests\main.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)tests\GLESUnitTests\unittests.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\googletest\googletest\src\gtest-all.cc">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Source Files">

+      <UniqueIdentifier>{B11E6D1A-DF77-39FB-B209-A851B3357F47}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/libEGL.vcxproj b/build/Visual Studio 15 2017 Win64/libEGL.vcxproj
new file mode 100644
index 0000000..5fb1023
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libEGL.vcxproj
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{41C068CD-6F81-3756-8AF2-802940422DB5}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>libEGL</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libEGL.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libEGL</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libEGL.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libEGL</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;DEBUGGER_WAIT_DIALOG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";libEGL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;DEBUGGER_WAIT_DIALOG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";libEGL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libEGL.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator/lib64EGL_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libEGL.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libEGL.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libEGL/libEGL.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libEGL.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";libEGL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";libEGL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libEGL.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator/lib64EGL_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libEGL.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libEGL.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libEGL/libEGL.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libEGL.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\Android\android\api-level.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\android\sync.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\cutils\native_handle.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\gralloc.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\gralloc1.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\hardware.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\nativebase\nativebase.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\sync\sync.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\system\graphics.h" />

+    <ClInclude Include="$(SolutionDir)include\Android\system\window.h" />

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8.h" />

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8caps.h" />

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8types.h" />

+    <ClInclude Include="$(SolutionDir)include\EGL\egl.h" />

+    <ClInclude Include="$(SolutionDir)include\EGL\eglext.h" />

+    <ClInclude Include="$(SolutionDir)include\EGL\eglplatform.h" />

+    <ClInclude Include="$(SolutionDir)include\GL\glcorearb.h" />

+    <ClInclude Include="$(SolutionDir)include\GL\glext.h" />

+    <ClInclude Include="$(SolutionDir)include\GL\glxext.h" />

+    <ClInclude Include="$(SolutionDir)include\GL\wglext.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES\gl.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES\glext.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES\glplatform.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2ext.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2platform.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3platform.h" />

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_icd.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_layer.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_platform.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_sdk_platform.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_android.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_core.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_fuchsia.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_ios.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_macos.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_mir.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_vi.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_wayland.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_win32.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xcb.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xlib.h" />

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xlib_xrandr.h" />

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Config.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Config.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Context.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Display.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Display.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\OSXUtils.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Surface.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Surface.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Sync.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Texture.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\main.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\main.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\resource.h" />

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.rc" />

+  </ItemGroup>

+  <ItemGroup>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/libEGL.vcxproj.filters b/build/Visual Studio 15 2017 Win64/libEGL.vcxproj.filters
new file mode 100644
index 0000000..0e17285
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libEGL.vcxproj.filters
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Config.cpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Display.cpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\Surface.cpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.cpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libEGL\main.cpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\Android\android\api-level.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\android\sync.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\cutils\native_handle.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\gralloc.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\gralloc1.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\hardware\hardware.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\nativebase\nativebase.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\sync\sync.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\system\graphics.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Android\system\window.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8caps.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\Direct3D\d3d8types.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\EGL\egl.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\EGL\eglext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\EGL\eglplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GL\glcorearb.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GL\glext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GL\glxext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GL\wglext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES\gl.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES\glext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES\glplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2ext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_icd.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_layer.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vk_sdk_platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_android.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_core.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_fuchsia.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_ios.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_macos.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_mir.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_vi.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_wayland.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_win32.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xcb.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xlib.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\vulkan\vulkan_xlib_xrandr.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Config.h">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Context.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Display.h">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\OSXUtils.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Surface.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Sync.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\Texture.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.hpp">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\main.h">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libEGL\resource.h">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libEGL\libEGL.rc">

+      <Filter>src\OpenGL\libEGL</Filter>

+    </ResourceCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Header Files">

+      <UniqueIdentifier>{BC358C2F-D735-3D9B-A16C-3BC6057ABC2B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Common">

+      <UniqueIdentifier>{B0058071-2A97-3E9E-A00E-6FDE51114CE4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL">

+      <UniqueIdentifier>{F6D84093-2476-35F1-9A60-3807139DF63F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\common">

+      <UniqueIdentifier>{218245B0-A71C-364A-B78F-B32FC161285B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\libEGL">

+      <UniqueIdentifier>{C72C08A6-12E1-3F20-A8FD-16F9E24659B8}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj b/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj
new file mode 100644
index 0000000..cbb1925
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{C445A398-B6AF-3693-B967-F4C052FCF81A}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>libGLES_CM</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libGLES_CM.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libGLES_CM</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libGLES_CM.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libGLES_CM</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";libGLES_CM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";libGLES_CM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLES_CM.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator/lib64GLES_CM_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Debug\SwiftShader.lib;Debug\ReactorLLVM.lib;Debug\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Debug\llvm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLES_CM.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libGLES_CM/libGLES_CM.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLES_CM.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";libGLES_CM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";libGLES_CM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLES_CM.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator/lib64GLES_CM_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Release\SwiftShader.lib;Release\ReactorLLVM.lib;Release\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Release\llvm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLES_CM.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libGLES_CM/libGLES_CM.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLES_CM.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\GLES\gl.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES\glext.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES\glplatform.h" />

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h" />

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Image.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Image.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\MatrixStack.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\MatrixStack.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\NameSpace.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Surface.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Buffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Buffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Context.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Context.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Device.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Device.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Framebuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Framebuffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\IndexDataManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\IndexDataManager.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Renderbuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Renderbuffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\ResourceManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\ResourceManager.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Texture.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Texture.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\VertexDataManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\VertexDataManager.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\main.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\main.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\mathutil.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\resource.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\utilities.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\utilities.h" />

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.rc" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\GLCompiler.vcxproj">

+      <Project>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</Project>

+      <Name>GLCompiler</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\SwiftShader.vcxproj">

+      <Project>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</Project>

+      <Name>SwiftShader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj.filters b/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj.filters
new file mode 100644
index 0000000..008ded8
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libGLES_CM.vcxproj.filters
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Image.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\MatrixStack.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Buffer.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Context.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Device.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Framebuffer.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\IndexDataManager.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Renderbuffer.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\ResourceManager.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\Texture.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\VertexDataManager.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\main.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\utilities.cpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\GLES\gl.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES\glext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES\glplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Image.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\MatrixStack.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\NameSpace.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Surface.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Buffer.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Context.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Device.hpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Framebuffer.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\IndexDataManager.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Renderbuffer.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\ResourceManager.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\Texture.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\VertexDataManager.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.hpp">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\main.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\mathutil.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\resource.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLES_CM\utilities.h">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libGLES_CM\libGLES_CM.rc">

+      <Filter>src\OpenGL\libGLES_CM</Filter>

+    </ResourceCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Header Files">

+      <UniqueIdentifier>{BC358C2F-D735-3D9B-A16C-3BC6057ABC2B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Common">

+      <UniqueIdentifier>{B0058071-2A97-3E9E-A00E-6FDE51114CE4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL">

+      <UniqueIdentifier>{F6D84093-2476-35F1-9A60-3807139DF63F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\common">

+      <UniqueIdentifier>{218245B0-A71C-364A-B78F-B32FC161285B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\libGLES_CM">

+      <UniqueIdentifier>{0576F6E7-652C-3C71-9A51-75A3615F5418}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj b/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj
new file mode 100644
index 0000000..c7e84e7
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{C9485675-5744-3E3A-A7A4-C88A805AFAF6}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>libGLESv2</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libGLESv2.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libGLESv2</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libGLESv2.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libGLESv2</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";libGLESv2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";libGLESv2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLESv2.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator/lib64GLES_V2_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLESv2.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Debug\SwiftShader.lib;Debug\ReactorLLVM.lib;Debug\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Debug\llvm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLESv2.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libGLESv2/libGLESv2.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libGLESv2.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";libGLESv2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";libGLESv2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src\OpenGL;$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLESv2.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator/lib64GLES_V2_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLESv2.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Release\SwiftShader.lib;Release\ReactorLLVM.lib;Release\GLCompiler.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;Release\llvm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLESv2.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/OpenGL/libGLESv2/libGLESv2.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libGLESv2.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2ext.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2platform.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3.h" />

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3platform.h" />

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h" />

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Image.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Image.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\MatrixStack.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\MatrixStack.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\NameSpace.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Surface.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Buffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Buffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Context.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Context.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Device.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Device.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Fence.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Fence.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Framebuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Framebuffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\IndexDataManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\IndexDataManager.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Program.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Program.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Query.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Query.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Renderbuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Renderbuffer.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\ResourceManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\ResourceManager.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Sampler.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Shader.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Shader.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Texture.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Texture.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\TransformFeedback.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\TransformFeedback.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexArray.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexArray.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexDataManager.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexDataManager.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\entry_points.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\entry_points.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.hpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv3.cpp" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\main.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\main.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\mathutil.h" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\resource.h" />

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\utilities.cpp" />

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\utilities.h" />

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.rc" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\GLCompiler.vcxproj">

+      <Project>{C52D9E3E-BDC2-372A-AE88-2EAC1CC3BD61}</Project>

+      <Name>GLCompiler</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\SwiftShader.vcxproj">

+      <Project>{E190CBF2-358E-3C1A-8DF7-19F43DF189C0}</Project>

+      <Name>SwiftShader</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj.filters b/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj.filters
new file mode 100644
index 0000000..7c0dd21
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libGLESv2.vcxproj.filters
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Common\SharedLibrary.cpp">

+      <Filter>src\Common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Image.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\MatrixStack.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\Object.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\common\debug.cpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Buffer.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Context.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Device.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Fence.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Framebuffer.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\IndexDataManager.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Program.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Query.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Renderbuffer.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\ResourceManager.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Shader.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\Texture.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\TransformFeedback.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexArray.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexDataManager.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\entry_points.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv3.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\main.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\utilities.cpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2ext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES2\gl2platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\GLES3\gl3platform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)include\KHR\khrplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Common\SharedLibrary.hpp">

+      <Filter>src\Common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Image.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\MatrixStack.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\NameSpace.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Object.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\Surface.hpp">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\common\debug.h">

+      <Filter>src\OpenGL\common</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Buffer.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Context.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Device.hpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Fence.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Framebuffer.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\IndexDataManager.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Program.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Query.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Renderbuffer.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\ResourceManager.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Sampler.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Shader.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\Texture.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\TransformFeedback.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexArray.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\VertexDataManager.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\entry_points.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.hpp">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\main.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\mathutil.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\resource.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\OpenGL\libGLESv2\utilities.h">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <ResourceCompile Include="$(SolutionDir)src\OpenGL\libGLESv2\libGLESv2.rc">

+      <Filter>src\OpenGL\libGLESv2</Filter>

+    </ResourceCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="Header Files">

+      <UniqueIdentifier>{BC358C2F-D735-3D9B-A16C-3BC6057ABC2B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Common">

+      <UniqueIdentifier>{B0058071-2A97-3E9E-A00E-6FDE51114CE4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL">

+      <UniqueIdentifier>{F6D84093-2476-35F1-9A60-3807139DF63F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\common">

+      <UniqueIdentifier>{218245B0-A71C-364A-B78F-B32FC161285B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\OpenGL\libGLESv2">

+      <UniqueIdentifier>{EA613789-9669-3346-9D90-D819F007D2BD}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj b/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj
new file mode 100644
index 0000000..6d5b642
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj
@@ -0,0 +1,372 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{C8E5841D-D2BC-3987-B6FB-95A1631B497D}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>libvk_swiftshader</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libvk_swiftshader.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">libvk_swiftshader</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libvk_swiftshader.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libvk_swiftshader</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.dll</TargetExt>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>

+    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;VK_EXPORT=;NO_SANITIZE_FUNCTION=;DEBUGGER_WAIT_DIALOG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";libvk_swiftshader_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;VK_EXPORT=;NO_SANITIZE_FUNCTION=;DEBUGGER_WAIT_DIALOG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";libvk_swiftshader_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libvk_swiftshader.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/translator/lib64Vulkan_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libvk_swiftshader.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Debug\ReactorLLVM.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;third_party\SPIRV-Tools\source\Debug\SPIRV-Tools.lib;third_party\SPIRV-Tools\source\opt\Debug\SPIRV-Tools-opt.lib;Debug\llvm.lib;third_party\SPIRV-Tools\source\Debug\SPIRV-Tools.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libvk_swiftshader.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/Vulkan/vk_swiftshader.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Debug/libvk_swiftshader.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4005;4018;4065;4141;4146;4244;4267;4291;4309;4624;4800;4838;5030;5038</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatSpecificWarningsAsErrors>4018;4471;4838;5038</TreatSpecificWarningsAsErrors>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;VK_EXPORT=;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";libvk_swiftshader_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;VK_EXPORT=;NO_SANITIZE_FUNCTION=;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";libvk_swiftshader_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)src;$(SolutionDir)include;$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;$(SolutionDir)third_party\libbacktrace\src;$(SolutionDir)third_party\SPIRV-Headers\include;$(SolutionDir)third_party\SPIRV-Tools\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <PostBuildEvent>

+      <Message></Message>

+      <Command>setlocal

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libvk_swiftshader.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/translator/lib64Vulkan_translator.dll"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E make_directory "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+"cmake" -E copy "$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libvk_swiftshader.dll" "$(SolutionDir)build/Visual Studio 15 2017 Win64/Windows/"

+if %errorlevel% neq 0 goto :cmEnd

+:cmEnd

+endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone

+:cmErrorLevel

+exit /b %1

+:cmDone

+if %errorlevel% neq 0 goto :VCEnd</Command>

+    </PostBuildEvent>

+    <Link>

+      <AdditionalDependencies>Release\ReactorLLVM.lib;odbc32.lib;odbccp32.lib;WS2_32.lib;dxguid.lib;third_party\SPIRV-Tools\source\Release\SPIRV-Tools.lib;third_party\SPIRV-Tools\source\opt\Release\SPIRV-Tools-opt.lib;Release\llvm.lib;third_party\SPIRV-Tools\source\Release\SPIRV-Tools.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>

+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+      <GenerateDebugInformation>false</GenerateDebugInformation>

+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <ImportLibrary>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libvk_swiftshader.lib</ImportLibrary>

+      <ModuleDefinitionFile>$(SolutionDir)src/Vulkan/vk_swiftshader.def</ModuleDefinitionFile>

+      <ProgramDataBaseFile>$(SolutionDir)build/Visual Studio 15 2017 Win64/Release/libvk_swiftshader.pdb</ProgramDataBaseFile>

+      <SubSystem>Console</SubSystem>

+    </Link>

+    <ProjectReference>

+      <LinkLibraryDependencies>false</LinkLibraryDependencies>

+    </ProjectReference>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Device\Blitter.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Blitter.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Clipper.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Clipper.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Color.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Color.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Config.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Config.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Context.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Context.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\ETC_Decoder.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\ETC_Decoder.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\LRUCache.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Matrix.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Matrix.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Memset.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\PixelProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\PixelProcessor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Plane.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Plane.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Point.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Point.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Polygon.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Primitive.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\QuadRasterizer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\QuadRasterizer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Rasterizer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Renderer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Renderer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\RoutineCache.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Sampler.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\SetupProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\SetupProcessor.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Stream.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Triangle.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\Vector.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Vector.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\Vertex.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Device\VertexProcessor.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Device\VertexProcessor.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\ComputeProgram.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\ComputeProgram.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\Constants.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\Constants.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\PixelProgram.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\PixelProgram.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\PixelRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\PixelRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SamplerCore.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SamplerCore.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SetupRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SetupRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\ShaderCore.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\ShaderCore.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SpirvID.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShader.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SpirvShader.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShaderSampling.cpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShader_dbg.cpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\VertexProgram.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\VertexProgram.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Pipeline\VertexRoutine.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Pipeline\VertexRoutine.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\CPUID.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\CPUID.hpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Build.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Configurator.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Configurator.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Debug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Debug.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Half.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Half.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Math.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Math.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Memory.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Memory.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Socket.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Socket.hpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Synchronization.hpp" />

+    <ClCompile Include="$(SolutionDir)src\System\Timer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\System\Timer.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\Version.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkBuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkBuffer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkBufferView.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkBufferView.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkCommandBuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkCommandBuffer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkCommandPool.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkCommandPool.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkConfig.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDebug.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDebug.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorPool.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorPool.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorSet.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorSetLayout.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorSetLayout.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorUpdateTemplate.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorUpdateTemplate.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDestroy.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDevice.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDevice.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDeviceMemory.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDeviceMemory.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkEvent.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFence.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkFormat.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFormat.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkFramebuffer.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFramebuffer.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkGetProcAddress.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkGetProcAddress.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkImage.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkImage.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkImageView.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkImageView.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkInstance.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkInstance.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkMemory.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkMemory.h" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkObject.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPhysicalDevice.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPhysicalDevice.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipeline.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipeline.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipelineCache.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipelineCache.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipelineLayout.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipelineLayout.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPromotedExtensions.cpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkQueryPool.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkQueryPool.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkQueue.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkQueue.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkRenderPass.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkRenderPass.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkSampler.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkSampler.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkSemaphore.hpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkShaderModule.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkShaderModule.hpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VulkanPlatform.h" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\libVulkan.cpp" />

+    <ClCompile Include="$(SolutionDir)src\Vulkan\main.cpp" />

+    <ClInclude Include="$(SolutionDir)src\Vulkan\resource.h" />

+    <ClCompile Include="$(SolutionDir)src\WSI\VkSurfaceKHR.cpp" />

+    <ClInclude Include="$(SolutionDir)src\WSI\VkSurfaceKHR.hpp" />

+    <ClCompile Include="$(SolutionDir)src\WSI\VkSwapchainKHR.cpp" />

+    <ClInclude Include="$(SolutionDir)src\WSI\VkSwapchainKHR.hpp" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\ReactorLLVM.vcxproj">

+      <Project>{EB784A1C-8E20-3066-9F9C-E4E88F11E1D4}</Project>

+      <Name>ReactorLLVM</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\SPIRV-Tools.vcxproj">

+      <Project>{59349DEB-AC96-335C-ACC6-8A92F774538A}</Project>

+      <Name>SPIRV-Tools</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\third_party\SPIRV-Tools\source\opt\SPIRV-Tools-opt.vcxproj">

+      <Project>{EFF5DE98-2741-3BD8-B049-D5647A223B5E}</Project>

+      <Name>SPIRV-Tools-opt</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+    <ProjectReference Include="$(SolutionDir)build\Visual Studio 15 2017 Win64\llvm.vcxproj">

+      <Project>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</Project>

+      <Name>llvm</Name>

+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>

+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>

+    </ProjectReference>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj.filters b/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj.filters
new file mode 100644
index 0000000..27cea4f
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/libvk_swiftshader.vcxproj.filters
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)src\Device\Blitter.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Clipper.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Color.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Config.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Context.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\ETC_Decoder.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Matrix.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\PixelProcessor.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Plane.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Point.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\QuadRasterizer.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Renderer.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\SetupProcessor.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\Vector.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Device\VertexProcessor.cpp">

+      <Filter>src\Device</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\ComputeProgram.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\Constants.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\PixelProgram.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\PixelRoutine.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SamplerCore.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SetupRoutine.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\ShaderCore.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShader.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShaderSampling.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\SpirvShader_dbg.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\VertexProgram.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Pipeline\VertexRoutine.cpp">

+      <Filter>src\Pipeline</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\CPUID.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Configurator.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Debug.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Half.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Math.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Memory.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Socket.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\System\Timer.cpp">

+      <Filter>src\System</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkBuffer.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkBufferView.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkCommandBuffer.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkCommandPool.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDebug.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorPool.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorSetLayout.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDescriptorUpdateTemplate.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDevice.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkDeviceMemory.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkFormat.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkFramebuffer.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkGetProcAddress.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkImage.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkImageView.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkInstance.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkMemory.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPhysicalDevice.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipeline.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipelineCache.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPipelineLayout.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkPromotedExtensions.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkQueryPool.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkQueue.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkRenderPass.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkSampler.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\VkShaderModule.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\libVulkan.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\Vulkan\main.cpp">

+      <Filter>src\Vulkan</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\WSI\VkSurfaceKHR.cpp">

+      <Filter>src\WSI</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)src\WSI\VkSwapchainKHR.cpp">

+      <Filter>src\WSI</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="$(SolutionDir)src\Device\Blitter.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Clipper.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Color.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Config.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Context.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\ETC_Decoder.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\LRUCache.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Matrix.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Memset.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\PixelProcessor.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Plane.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Point.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Polygon.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Primitive.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\QuadRasterizer.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Rasterizer.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Renderer.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\RoutineCache.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Sampler.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\SetupProcessor.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Stream.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Triangle.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Vector.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\Vertex.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Device\VertexProcessor.hpp">

+      <Filter>src\Device</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\ComputeProgram.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\Constants.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\PixelProgram.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\PixelRoutine.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SamplerCore.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SetupRoutine.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\ShaderCore.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SpirvID.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\SpirvShader.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\VertexProgram.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Pipeline\VertexRoutine.hpp">

+      <Filter>src\Pipeline</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Build.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\CPUID.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Configurator.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Debug.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Half.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Math.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Memory.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Socket.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Synchronization.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\System\Timer.hpp">

+      <Filter>src\System</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\Version.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkBuffer.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkBufferView.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkCommandBuffer.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkCommandPool.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkConfig.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDebug.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorPool.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorSet.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorSetLayout.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDescriptorUpdateTemplate.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDestroy.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDevice.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkDeviceMemory.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkEvent.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFence.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFormat.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkFramebuffer.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkGetProcAddress.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkImage.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkImageView.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkInstance.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkMemory.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkObject.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPhysicalDevice.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipeline.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipelineCache.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkPipelineLayout.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkQueryPool.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkQueue.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkRenderPass.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkSampler.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkSemaphore.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VkShaderModule.hpp">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\VulkanPlatform.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\Vulkan\resource.h">

+      <Filter>src\Vulkan</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\WSI\VkSurfaceKHR.hpp">

+      <Filter>src\WSI</Filter>

+    </ClInclude>

+    <ClInclude Include="$(SolutionDir)src\WSI\VkSwapchainKHR.hpp">

+      <Filter>src\WSI</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <Filter Include="src">

+      <UniqueIdentifier>{4CBE9297-1779-302D-AF01-5C79A790DED5}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Device">

+      <UniqueIdentifier>{F0DF3B38-45A9-3C83-B799-8B6EEF044DB4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Pipeline">

+      <UniqueIdentifier>{6F3CF85A-88BA-3D30-B355-FB1C6C74DE8B}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\System">

+      <UniqueIdentifier>{60F4182B-4D0A-3200-8F91-ADD524B1D04F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\Vulkan">

+      <UniqueIdentifier>{33F32F8E-7DE7-3ADB-AC85-96E48C81EC0F}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\WSI">

+      <UniqueIdentifier>{555179D0-49AD-32E8-91BA-FAF1E5D5113C}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+</Project>

diff --git a/build/Visual Studio 15 2017 Win64/llvm.vcxproj b/build/Visual Studio 15 2017 Win64/llvm.vcxproj
new file mode 100644
index 0000000..7dc2698
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/llvm.vcxproj
@@ -0,0 +1,812 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <PropertyGroup>

+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>

+  </PropertyGroup>

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{481093B5-4EF0-391E-82FF-BB73CFCD3D51}</ProjectGuid>

+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>

+    <Keyword>Win32Proj</Keyword>

+    <Platform>x64</Platform>

+    <ProjectName>llvm</ProjectName>

+    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <CharacterSet>NotSet</CharacterSet>

+    <PlatformToolset>v141</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">llvm.dir\Debug\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">llvm</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)build\Visual Studio 15 2017 Win64\Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">llvm.dir\Release\</IntDir>

+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">llvm</TargetName>

+    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Debug/</AssemblerListingLocation>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4141;4146;4244;4267;4291;4319;4624;4805;4996</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>Disabled</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <AssemblerListingLocation>Release/</AssemblerListingLocation>

+      <CompileAs>CompileAsCpp</CompileAs>

+      <DisableSpecificWarnings>4141;4146;4244;4267;4291;4319;4624;4805;4996</DisableSpecificWarnings>

+      <ExceptionHandling>Sync</ExceptionHandling>

+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <MultiProcessorCompilation>true</MultiProcessorCompilation>

+      <Optimization>MaxSpeed</Optimization>

+      <PrecompiledHeader>NotUsing</PrecompiledHeader>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <RuntimeTypeInfo>true</RuntimeTypeInfo>

+      <TreatWarningAsError>true</TreatWarningAsError>

+      <UseFullPaths>false</UseFullPaths>

+      <WarningLevel>Level3</WarningLevel>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <DebugInformationFormat>

+      </DebugInformationFormat>

+    </ClCompile>

+    <ResourceCompile>

+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SBCS;WINVER=0x501;NOMINMAX;STRICT;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+    </ResourceCompile>

+    <Midl>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-7.0\configs\windows\include;$(SolutionDir)third_party\llvm-7.0\llvm\include;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\include;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\IR;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\AArch64;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\ARM;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\Mips;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\PowerPC;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Target\X86;$(SolutionDir)third_party\llvm-7.0\configs\common\lib\Transforms\InstCombine;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>

+      <HeaderFileName>%(Filename).h</HeaderFileName>

+      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>

+      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>

+      <ProxyFileName>%(Filename)_p.c</ProxyFileName>

+    </Midl>

+    <Lib>

+      <AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasAnalysisSummary.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasSetTracker.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AssumptionCache.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BasicAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BlockFrequencyInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BlockFrequencyInfoImpl.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BranchProbabilityInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CallGraph.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CallGraphSCCPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CaptureTracking.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFLAndersAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFLSteensAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CmpInstAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CodeMetrics.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ConstantFolding.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DemandedBits.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DependenceAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DivergenceAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DominanceFrontier.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\EHPersonalities.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\GlobalsModRef.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\InlineCost.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\InstructionSimplify.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\IteratedDominanceFrontier.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\IVUsers.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyBlockFrequencyInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyBranchProbabilityInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyValueInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\Loads.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopAnalysisManager.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryBuiltins.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryDependenceAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryLocation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemorySSA.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemorySSAUpdater.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MustExecute.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCAnalysisUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCInstKind.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\OptimizationRemarkEmitter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\OrderedBasicBlock.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PHITransAddr.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PhiValues.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PostDominators.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ProfileSummaryInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PtrUseVisitor.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolution.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionExpander.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionNormalization.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScopedNoAliasAA.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TargetLibraryInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TargetTransformInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TypeBasedAliasAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueLattice.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueLatticeUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueTracking.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\VectorUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\LLLexer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\LLParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\Parser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Dwarf.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Magic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Wasm.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\BitcodeReader.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\BitstreamReader.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\MetadataLoader.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\ValueList.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AggressiveAntiDepBreaker.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AllocationOrder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\Analysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AccelTable.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AddressPool.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\ARMException.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinterDwarf.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinterInlineAsm.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\CodeViewDebug.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DbgValueHistoryCalculator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DebugHandlerBase.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DebugLocStream.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DIE.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DIEHash.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfCFIException.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfCompileUnit.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfDebug.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfExpression.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfStringPool.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfUnit.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\EHStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\WinCFGuard.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\WinException.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AtomicExpandPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BasicTargetTransformInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BranchFolding.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BranchRelaxation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BreakFalseDeps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CalcSpillWeights.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CallingConvLower.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CFIInstrInserter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CodeGen.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CodeGenPrepare.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CriticalAntiDepBreaker.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DeadMachineInstructionElim.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DetectDeadLanes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DFAPacketizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DwarfEHPrepare.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\EarlyIfConversion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\EdgeBundles.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExecutionDomainFix.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandISelPseudos.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandMemCmp.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandPostRAPseudos.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandReductions.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FaultMaps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FEntryInserter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FuncletLayout.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCMetadata.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCMetadataPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCRootLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCStrategy.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\CallLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\GlobalISel.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\InstructionSelect.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\InstructionSelector.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\IRTranslator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\LegalityPredicates.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\LegalizeMutations.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\Legalizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\LegalizerHelper.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\LegalizerInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\Localizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\MachineIRBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\RegBankSelect.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\RegisterBank.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\RegisterBankInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GlobalISel\Utils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\IfConversion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ImplicitNullChecks.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\IndirectBrExpandPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\InlineSpiller.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\InterferenceCache.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\InterleavedAccessPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\IntrinsicLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LatencyPriorityQueue.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LazyMachineBlockFrequencyInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LexicalScopes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveDebugValues.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveDebugVariables.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveInterval.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveIntervals.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveIntervalUnion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LivePhysRegs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveRangeCalc.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveRangeEdit.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveRangeShrink.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveRegMatrix.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveRegUnits.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveStacks.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LiveVariables.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LLVMTargetMachine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LocalStackSlotAllocation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LoopTraversal.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LowerEmuTLS.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\LowLevelType.cpp">

+      <ObjectFileName>$(IntDir)/third_party/llvm-7.0/llvm/lib/CodeGen/LowLevelType.cpp.obj</ObjectFileName>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineBasicBlock.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineBlockFrequencyInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineBlockPlacement.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineBranchProbabilityInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineCombiner.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineCopyPropagation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineCSE.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineDominanceFrontier.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineDominators.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineFrameInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineFunction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineFunctionPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineFunctionPrinterPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineInstr.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineInstrBundle.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineLICM.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineLoopInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineModuleInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineModuleInfoImpls.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineOperand.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineOptimizationRemarkEmitter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineOutliner.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachinePassRegistry.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachinePipeliner.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachinePostDominators.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineRegionInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineRegisterInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineScheduler.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineSink.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineSSAUpdater.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineTraceMetrics.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MachineVerifier.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MacroFusion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MIRCanonicalizerPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MIRPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\MIRPrintingPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\OptimizePHIs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PatchableFunction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PeepholeOptimizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PHIElimination.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PHIEliminationUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PostRAHazardRecognizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PostRASchedulerList.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PreISelIntrinsicLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ProcessImplicitDefs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PrologEpilogInserter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\PseudoSourceValue.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ReachingDefAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegAllocBase.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegAllocBasic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegAllocFast.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegAllocGreedy.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegisterClassInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegisterCoalescer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegisterPressure.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegisterScavenging.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegisterUsageInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegUsageInfoCollector.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RegUsageInfoPropagate.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\RenameIndependentSubregs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ResetMachineFunctionPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SafeStack.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SafeStackColoring.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SafeStackLayout.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ScalarizeMaskedMemIntrin.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ScheduleDAG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ScheduleDAGInstrs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ScheduleDAGPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ScoreboardHazardRecognizer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\DAGCombiner.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\FastISel.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\FunctionLoweringInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\InstrEmitter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeDAG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeFloatTypes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeIntegerTypes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeTypes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeTypesGeneric.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeVectorOps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\LegalizeVectorTypes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\ResourcePriorityQueue.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\ScheduleDAGRRList.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\ScheduleDAGSDNodes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\ScheduleDAGVLIW.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGAddressAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGDumper.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\SelectionDAGTargetInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\StatepointLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SelectionDAG\TargetLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ShadowStackGCLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ShrinkWrap.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SjLjEHPrepare.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SlotIndexes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SpillPlacement.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\SplitKit.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\StackColoring.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\StackMapLivenessAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\StackMaps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\StackProtector.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\StackSlotColoring.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TailDuplication.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TailDuplicator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetFrameLoweringImpl.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetInstrInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetLoweringBase.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetLoweringObjectFileImpl.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetOptionsImpl.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetPassConfig.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetRegisterInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetSchedule.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TargetSubtargetInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\TwoAddressInstructionPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\UnreachableBlockElim.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ValueTypes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\VirtRegMap.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\WasmEHPrepare.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\WinEHPrepare.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\XRayInstrumentation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\CodeViewError.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\CodeViewRecordIO.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\ContinuationRecordBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\CVTypeVisitor.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\Formatters.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\GlobalTypeTableBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\Line.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\RecordName.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\RecordSerialization.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\SimpleTypeSerializer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\SymbolRecordMapping.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeDumpVisitor.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeHashing.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeIndex.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeIndexDiscovery.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeRecordMapping.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\DebugInfo\CodeView\TypeTableCollection.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\ExecutionEngine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\GDBRegistrationListener.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\Orc\Core.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\Orc\Legacy.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\Orc\OrcError.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\JITSymbol.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RTDyldMemoryManager.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RuntimeDyld.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RuntimeDyldChecker.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RuntimeDyldCOFF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RuntimeDyldELF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\RuntimeDyldMachO.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\RuntimeDyld\Targets\RuntimeDyldELFMips.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\SectionMemoryManager.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ExecutionEngine\TargetSelect.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\AsmWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Attributes.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\AutoUpgrade.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\BasicBlock.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Comdat.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\ConstantFold.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\ConstantRange.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Constants.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DataLayout.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DebugInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DebugInfoMetadata.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DebugLoc.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DiagnosticHandler.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DiagnosticInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DiagnosticPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\DIBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Dominators.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Function.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Globals.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\GVMaterializer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\InlineAsm.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Instruction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Instructions.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\IntrinsicInst.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\IRBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\IRPrintingPasses.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\LegacyPassManager.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\LLVMContext.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\LLVMContextImpl.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Mangler.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\MDBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Metadata.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Module.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Operator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\OptBisect.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Pass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\PassManager.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\PassRegistry.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\ProfileSummary.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Statepoint.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Type.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\TypeFinder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Use.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\User.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Value.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\ValueSymbolTable.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\IR\Verifier.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\ELFObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MachObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmBackend.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmInfoCOFF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmInfoDarwin.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmInfoELF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmMacro.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAsmStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCAssembler.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCCodeEmitter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCCodePadder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCCodeView.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCContext.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCDisassembler\MCRelocationInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCDwarf.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCELFObjectTargetWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCELFStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCExpr.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCFragment.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCInst.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCInstPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCInstrAnalysis.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCInstrDesc.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCLinkerOptimizationHint.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCMachObjectTargetWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCMachOStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCNullStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCObjectFileInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCObjectStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\AsmLexer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\AsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\COFFAsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\DarwinAsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\ELFAsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\MCAsmLexer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\MCAsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\MCAsmParserExtension.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCParser\MCTargetAsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCRegisterInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSchedule.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSection.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSectionCOFF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSectionELF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSectionMachO.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSectionWasm.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSubtargetInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSymbol.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCSymbolELF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCTargetOptions.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCValue.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCWasmStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCWin64EH.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCWinCOFFStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\MCWinEH.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\StringTableBuilder.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\SubtargetFeature.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\WasmObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\MC\WinCOFFObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\Archive.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\Binary.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\COFFObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\ELF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\ELFObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\Error.cpp">

+      <ObjectFileName>$(IntDir)/third_party/llvm-7.0/llvm/lib/Object/Error.cpp.obj</ObjectFileName>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\IRObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\IRSymtab.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\MachOObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\MachOUniversal.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\ModuleSymbolTable.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\ObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\RecordStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\SymbolicFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\WasmObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Object\WindowsResource.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\ProfileData\InstrProf.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\APFloat.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\APInt.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\APSInt.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ARMAttributeParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ARMBuildAttrs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Atomic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BinaryStreamError.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BinaryStreamReader.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BinaryStreamRef.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BinaryStreamWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BlockFrequency.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\BranchProbability.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Chrono.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\circular_raw_ostream.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\CodeGenCoverage.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\CommandLine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Compression.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ConvertUTF.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ConvertUTFWrapper.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\DataExtractor.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Debug.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\DebugCounter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\DJB.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\DynamicLibrary.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Errno.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Error.cpp">

+      <ObjectFileName>$(IntDir)/third_party/llvm-7.0/llvm/lib/Support/Error.cpp.obj</ObjectFileName>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ErrorHandling.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\FoldingSet.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\FormattedStream.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\FormatVariadic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\GraphWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Hashing.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Host.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\IntEqClasses.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\IntervalMap.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\JamCRC.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\KnownBits.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\LEB128.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\LineIterator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Locale.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\LowLevelType.cpp">

+      <ObjectFileName>$(IntDir)/third_party/llvm-7.0/llvm/lib/Support/LowLevelType.cpp.obj</ObjectFileName>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ManagedStatic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\MathExtras.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\MD5.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Memory.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\MemoryBuffer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Mutex.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\NativeFormatting.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Path.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\PrettyStackTrace.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Process.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Program.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\RandomNumberGenerator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\raw_ostream.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\regcomp.c">

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsC</CompileAs>

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\regerror.c">

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsC</CompileAs>

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Regex.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\regexec.c">

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsC</CompileAs>

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\regfree.c">

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsC</CompileAs>

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\regstrlcpy.c">

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsC</CompileAs>

+      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\RWMutex.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ScaledNumber.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ScopedPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\SHA1.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Signals.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\SmallPtrSet.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\SmallVector.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\SourceMgr.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Statistic.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\StringExtras.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\StringMap.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\StringRef.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\StringSaver.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\TargetParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\TargetRegistry.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Threading.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Timer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\ToolOutputFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Triple.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Twine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Unicode.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\UnicodeCaseFold.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\Valgrind.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\YAMLParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Support\YAMLTraits.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\TargetLoweringObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\TargetMachine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\CoroCleanup.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\CoroEarly.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\CoroElide.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\CoroFrame.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\CoroSplit.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Coroutines\Coroutines.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineAddSub.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineAndOrXor.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineCalls.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineCasts.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineCompares.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineLoadStoreAlloca.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineMulDivRem.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombinePHI.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineSelect.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineShifts.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineSimplifyDemanded.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstCombineVectorOps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\InstCombine\InstructionCombining.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\IPO\BarrierNoopPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\ADCE.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\ConstantHoisting.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\DeadStoreElimination.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\EarlyCSE.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\GVN.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\LICM.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\LoopDataPrefetch.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\LoopStrengthReduce.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\MergeICmps.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\PartiallyInlineLibCalls.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\Reassociate.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\SCCP.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\SeparateConstOffsetFromGEP.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\SimplifyCFGPass.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Scalar\SROA.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\BasicBlockUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\BreakCriticalEdges.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\BuildLibCalls.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\BypassSlowDivision.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\CloneFunction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\DemoteRegToStack.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\EntryExitInstrumenter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\EscapeEnumerator.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\InlineFunction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\LCSSA.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\Local.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\LoopSimplify.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\LoopUtils.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\LowerInvoke.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\OrderedInstructions.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\PromoteMemoryToRegister.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\SimplifyCFG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\SimplifyLibCalls.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\SSAUpdater.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\SymbolRewriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\ValueMapper.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Transforms\Utils\VNCoercion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\stubs\Stubs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\AsmParser\X86AsmInstrumentation.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\AsmParser\X86AsmParser.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\InstPrinter\X86ATTInstPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\InstPrinter\X86InstComments.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\InstPrinter\X86InstPrinterCommon.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\InstPrinter\X86IntelInstPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86AsmBackend.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86ELFObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86MachObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86MCAsmInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86MCCodeEmitter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86MCTargetDesc.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86WinCOFFObjectWriter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86WinCOFFStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\MCTargetDesc\X86WinCOFFTargetStreamer.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\ShadowCallStack.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\TargetInfo\X86TargetInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\Utils\X86ShuffleDecode.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86AsmPrinter.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86AvoidStoreForwardingBlocks.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86CallFrameOptimization.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86CallingConv.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86CallLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86CmovConversion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86DomainReassignment.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86EvexToVex.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86ExpandPseudo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FastISel.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FixupBWInsts.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FixupLEAs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FixupSetCC.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FlagsCopyLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FloatingPoint.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86FrameLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86IndirectBranchTracking.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86InstrFMA3Info.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86InstrFoldTables.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86InstrInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86InstructionSelector.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86InterleavedAccess.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86ISelDAGToDAG.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86ISelLowering.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86LegalizerInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86MachineFunctionInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86MacroFusion.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86MCInstLower.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86OptimizeLEAs.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86PadShortFunction.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86RegisterBankInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86RegisterInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86RetpolineThunks.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86SelectionDAGInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86ShuffleDecodeConstantPool.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86SpeculativeLoadHardening.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86Subtarget.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86TargetMachine.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86TargetObjectFile.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86TargetTransformInfo.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86VZeroUpper.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86WinAllocaExpander.cpp" />

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Target\X86\X86WinEHState.cpp" />

+  </ItemGroup>

+  <ItemGroup>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/build/Visual Studio 15 2017 Win64/llvm.vcxproj.filters b/build/Visual Studio 15 2017 Win64/llvm.vcxproj.filters
new file mode 100644
index 0000000..994b1f6
--- /dev/null
+++ b/build/Visual Studio 15 2017 Win64/llvm.vcxproj.filters
@@ -0,0 +1,1975 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasAnalysisSummary.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AliasSetTracker.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\AssumptionCache.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BasicAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BlockFrequencyInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BlockFrequencyInfoImpl.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\BranchProbabilityInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CallGraph.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CallGraphSCCPass.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CaptureTracking.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFG.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFLAndersAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CFLSteensAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CmpInstAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\CodeMetrics.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ConstantFolding.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DemandedBits.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DependenceAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DivergenceAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\DominanceFrontier.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\EHPersonalities.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\GlobalsModRef.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\InlineCost.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\InstructionSimplify.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\IteratedDominanceFrontier.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\IVUsers.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyBlockFrequencyInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyBranchProbabilityInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LazyValueInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\Loads.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopAnalysisManager.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\LoopPass.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryBuiltins.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryDependenceAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemoryLocation.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemorySSA.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MemorySSAUpdater.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\MustExecute.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCAnalysisUtils.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ObjCARCInstKind.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\OptimizationRemarkEmitter.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\OrderedBasicBlock.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PHITransAddr.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PhiValues.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PostDominators.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ProfileSummaryInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\PtrUseVisitor.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolution.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionExpander.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScalarEvolutionNormalization.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ScopedNoAliasAA.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TargetLibraryInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TargetTransformInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\TypeBasedAliasAnalysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueLattice.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueLatticeUtils.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\ValueTracking.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Analysis\VectorUtils.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\LLLexer.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\LLParser.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\AsmParser\Parser.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Dwarf.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Magic.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\BinaryFormat\Wasm.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\BitcodeReader.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\BitstreamReader.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\MetadataLoader.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\Bitcode\Reader\ValueList.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AggressiveAntiDepBreaker.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AllocationOrder.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\Analysis.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AccelTable.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AddressPool.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\ARMException.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinter.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinterDwarf.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\AsmPrinterInlineAsm.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\CodeViewDebug.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DbgValueHistoryCalculator.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DebugHandlerBase.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DebugLocStream.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DIE.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DIEHash.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfCFIException.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfCompileUnit.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfDebug.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfExpression.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfFile.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfStringPool.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\DwarfUnit.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\EHStreamer.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\WinCFGuard.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AsmPrinter\WinException.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\AtomicExpandPass.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BasicTargetTransformInfo.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BranchFolding.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BranchRelaxation.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\BreakFalseDeps.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CalcSpillWeights.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CallingConvLower.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CFIInstrInserter.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CodeGen.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CodeGenPrepare.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\CriticalAntiDepBreaker.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DeadMachineInstructionElim.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DetectDeadLanes.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DFAPacketizer.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\DwarfEHPrepare.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\EarlyIfConversion.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\EdgeBundles.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExecutionDomainFix.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandISelPseudos.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandMemCmp.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandPostRAPseudos.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\ExpandReductions.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FaultMaps.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FEntryInserter.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\FuncletLayout.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCMetadata.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCMetadataPrinter.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCRootLowering.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\llvm-7.0\llvm\lib\CodeGen\GCStrategy.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(Solution