Update to gn files for Windows
This cl allows SwiftShader to be built on Windows within Chromium
Change-Id: I0fc9ec1dfc5012cc310695e13edc64c639b23fda
Reviewed-on: https://swiftshader-review.googlesource.com/5680
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 318d422..37e34b0 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -13,7 +13,7 @@
# limitations under the License.
config("swiftshader_config") {
-if (is_clang) {
+ if (is_clang) {
cflags = [
"-std=c++11",
]
diff --git a/src/Common/BUILD.gn b/src/Common/BUILD.gn
index 71ccbb9..5d1fc65 100644
--- a/src/Common/BUILD.gn
+++ b/src/Common/BUILD.gn
@@ -22,10 +22,15 @@
if (!is_debug) {
cflags += [
- "-DNDEBUG",
"-DANGLE_DISABLE_TRACE",
]
}
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
+ ]
+ }
}
}
diff --git a/src/Main/BUILD.gn b/src/Main/BUILD.gn
index 254256f..ac84b5b 100644
--- a/src/Main/BUILD.gn
+++ b/src/Main/BUILD.gn
@@ -19,14 +19,19 @@
"-DLOG_TAG=\"swiftshader_main\"",
"-msse2",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_main") {
@@ -57,6 +62,14 @@
]
}
+ if (host_os == "win") {
+ configs -= [
+ "//build/config/win:unicode"
+ ]
+ libs = [
+ "dxguid.lib" # For FrameBufferDD
+ ]
+ }
configs += [
":swiftshader_main_private_config",
]
diff --git a/src/OpenGL/common/BUILD.gn b/src/OpenGL/common/BUILD.gn
index 0a23385..653db78 100644
--- a/src/OpenGL/common/BUILD.gn
+++ b/src/OpenGL/common/BUILD.gn
@@ -18,14 +18,20 @@
cflags = [
"-DLOG_TAG=\"swiftshader_opengl_common\"",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
+ "/wd4324", # structure was padded due to alignment specifier
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_opengl_common") {
diff --git a/src/OpenGL/compiler/BUILD.gn b/src/OpenGL/compiler/BUILD.gn
index a7b4c2b..e0c7171 100644
--- a/src/OpenGL/compiler/BUILD.gn
+++ b/src/OpenGL/compiler/BUILD.gn
@@ -19,14 +19,22 @@
"-DLOG_TAG=\"swiftshader_opengl_compiler\"",
"-Wno-sign-compare",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4005", # macro redefinition (in autogenerated code)
+ "/wd4201", # nameless struct/union
+ "/wd4267", # conversion from size_t to int/unsigned int
+ "/wd4702", # unreachable code (in autogenerated code)
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_opengl_compiler") {
diff --git a/src/OpenGL/compiler/preprocessor/BUILD.gn b/src/OpenGL/compiler/preprocessor/BUILD.gn
index 6c6ff25..f5feb01 100644
--- a/src/OpenGL/compiler/preprocessor/BUILD.gn
+++ b/src/OpenGL/compiler/preprocessor/BUILD.gn
@@ -18,14 +18,21 @@
cflags = [
"-DLOG_TAG=\"swiftshader_opengl_compiler\"",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4005", # macro redefinition (in autogenerated code)
+ "/wd4267", # conversion from size_t to int/unsigned int (in autogenerated code)
+ "/wd4702", # unreachable code (in autogenerated code)
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_opengl_preprocessor") {
diff --git a/src/OpenGL/libEGL/BUILD.gn b/src/OpenGL/libEGL/BUILD.gn
index ddd4b94..bed0df0 100644
--- a/src/OpenGL/libEGL/BUILD.gn
+++ b/src/OpenGL/libEGL/BUILD.gn
@@ -21,14 +21,22 @@
"-DEGL_EGLEXT_PROTOTYPES",
"-Wno-sign-compare",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/DEGLAPI=",
+ "/DEGL_EGLEXT_PROTOTYPES",
+ "/wd4201", # nameless struct/union
+ "/wd4065", # switch statement contains 'default' but no 'case' labels
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
shared_library("swiftshader_libEGL") {
@@ -55,6 +63,10 @@
sources += [
"OSXUtils.mm",
]
+ } else if (host_os == "win") {
+ configs -= [
+ "//build/config/win:unicode"
+ ]
}
configs += [
diff --git a/src/OpenGL/libGLESv2/BUILD.gn b/src/OpenGL/libGLESv2/BUILD.gn
index 90a811f..2f8f935 100644
--- a/src/OpenGL/libGLESv2/BUILD.gn
+++ b/src/OpenGL/libGLESv2/BUILD.gn
@@ -25,14 +25,24 @@
"-DGL_GLEXT_PROTOTYPES",
"-Wno-sign-compare",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/DGL_API=",
+ "/DGL_APICALL=",
+ "/DGL_GLEXT_PROTOTYPES",
+ "/DLIBGLESV2_EXPORTS",
+ "/wd4201", # nameless struct/union
+ "/wd4324", # structure was padded due to alignment specifier
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
shared_library("swiftshader_libGLESv2") {
@@ -69,6 +79,12 @@
"VertexDataManager.cpp",
]
+ if (host_os == "win") {
+ configs -= [
+ "//build/config/win:unicode"
+ ]
+ }
+
configs += [
":swiftshader_libGLESv2_private_config",
]
diff --git a/src/Reactor/BUILD.gn b/src/Reactor/BUILD.gn
index aa65be2..98b33fc 100644
--- a/src/Reactor/BUILD.gn
+++ b/src/Reactor/BUILD.gn
@@ -22,14 +22,20 @@
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_LIMIT_MACROS",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
+ "/wd4245", # conversion from int to unsigned int (llvm)
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_reactor") {
@@ -48,6 +54,9 @@
sources += [
"DLL.cpp",
]
+ configs -= [
+ "//build/config/win:unicode"
+ ]
}
configs += [
diff --git a/src/Renderer/BUILD.gn b/src/Renderer/BUILD.gn
index ee5213d..2cdcf78 100644
--- a/src/Renderer/BUILD.gn
+++ b/src/Renderer/BUILD.gn
@@ -21,14 +21,20 @@
"-msse2",
"-Wno-sign-compare",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
+ "/wd4324", # structure was padded due to alignment specifier
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_renderer") {
@@ -58,6 +64,12 @@
"VertexProcessor.cpp",
]
+ if (host_os == "win") {
+ configs -= [
+ "//build/config/win:unicode"
+ ]
+ }
+
configs += [
":swiftshader_renderer_private_config",
]
diff --git a/src/Shader/BUILD.gn b/src/Shader/BUILD.gn
index 3e9a96c..a5e9262 100644
--- a/src/Shader/BUILD.gn
+++ b/src/Shader/BUILD.gn
@@ -19,14 +19,20 @@
"-DLOG_TAG=\"swiftshader_shader\"",
"-fno-operator-names",
]
-
- if (!is_debug) {
- cflags += [
- "-DNDEBUG",
- "-DANGLE_DISABLE_TRACE",
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4201", # nameless struct/union
+ "/wd4324", # structure was padded due to alignment specifier
]
}
}
+
+ if (!is_debug) {
+ cflags += [
+ "-DANGLE_DISABLE_TRACE",
+ ]
+ }
}
source_set("swiftshader_shader") {
diff --git a/third_party/LLVM/BUILD.gn b/third_party/LLVM/BUILD.gn
index ba7ab69..d886ad5 100644
--- a/third_party/LLVM/BUILD.gn
+++ b/third_party/LLVM/BUILD.gn
@@ -28,6 +28,26 @@
"-Wno-deprecated-declarations",
"-Wno-unused-variable",
]
+ } else {
+ if (host_os == "win") {
+ cflags = [
+ "/wd4005",
+ "/wd4065",
+ "/wd4146",
+ "/wd4245",
+ "/wd4267",
+ "/wd4310",
+ "/wd4319",
+ "/wd4334",
+ "/wd4389",
+ "/wd4624",
+ "/wd4701",
+ "/wd4702",
+ "/wd4703",
+ "/wd4706",
+ "/wd4800",
+ ]
+ }
}
}
@@ -407,13 +427,23 @@
"lib/VMCore/Verifier.cpp",
]
+ if (host_os == "win") {
+ configs -= [
+ "//build/config/win:unicode"
+ ]
+ }
configs += [
":swiftshader_llvm_private_config",
]
include_dirs = [
- "include-linux",
"include",
"lib/Target/X86",
]
+
+ if (host_os == "linux") {
+ include_dirs += [
+ "include-linux",
+ ]
+ }
}
\ No newline at end of file