Procházet zdrojové kódy

Moved glsl-optimizer into separate library.

Branimir Karadžić před 8 roky
rodič
revize
71ee9fffc0
1 změnil soubory, kde provedl 65 přidání a 29 odebrání
  1. 65 29
      scripts/shaderc.lua

+ 65 - 29
scripts/shaderc.lua

@@ -3,6 +3,9 @@
 -- License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
 -- License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
 --
 --
 
 
+local GLSL_OPTIMIZER = path.join(BGFX_DIR, "3rdparty/glsl-optimizer")
+local FCPP_DIR = path.join(BGFX_DIR, "3rdparty/fcpp")
+
 project "glslang"
 project "glslang"
 	kind "StaticLib"
 	kind "StaticLib"
 
 
@@ -19,6 +22,11 @@ project "glslang"
 		buildoptions {
 		buildoptions {
 			"/wd4005", -- warning C4005: '_CRT_SECURE_NO_WARNINGS': macro redefinition
 			"/wd4005", -- warning C4005: '_CRT_SECURE_NO_WARNINGS': macro redefinition
 			"/wd4100", -- error C4100: 'inclusionDepth' : unreferenced formal parameter
 			"/wd4100", -- error C4100: 'inclusionDepth' : unreferenced formal parameter
+			"/wd4127", -- warning C4127: conditional expression is constant
+			"/wd4456", -- warning C4456: declaration of 'feature' hides previous local declaration
+			"/wd4457", -- warning C4457: declaration of 'token' hides function parameter
+			"/wd4458", -- warning C4458: declaration of 'language' hides class member
+			"/wd4702", -- warning C4702: unreachable code
 		}
 		}
 
 
 	configuration { "not vs*" }
 	configuration { "not vs*" }
@@ -90,18 +98,51 @@ project "glslang"
 
 
 	configuration {}
 	configuration {}
 
 
-project "shaderc"
-	kind "ConsoleApp"
-
-	local GLSL_OPTIMIZER = path.join(BGFX_DIR, "3rdparty/glsl-optimizer")
-	local FCPP_DIR = path.join(BGFX_DIR, "3rdparty/fcpp")
+project "glsl-optimizer"
+	kind "StaticLib"
 
 
 	includedirs {
 	includedirs {
 		path.join(GLSL_OPTIMIZER, "src"),
 		path.join(GLSL_OPTIMIZER, "src"),
+		path.join(GLSL_OPTIMIZER, "include"),
+		path.join(GLSL_OPTIMIZER, "src/mesa"),
+		path.join(GLSL_OPTIMIZER, "src/mapi"),
+		path.join(GLSL_OPTIMIZER, "src/glsl"),
 	}
 	}
 
 
-	links {
-		"bx",
+	configuration { "vs*" }
+		buildoptions {
+			"/wd4100", -- error C4100: '' : unreferenced formal parameter
+			"/wd4127", -- warning C4127: conditional expression is constant
+			"/wd4132", -- warning C4132: 'deleted_key_value': const object should be initialized
+			"/wd4189", -- warning C4189: 'interface_type': local variable is initialized but not referenced
+			"/wd4204", -- warning C4204: nonstandard extension used: non-constant aggregate initializer
+			"/wd4244", -- warning C4244: '=': conversion from 'const flex_int32_t' to 'YY_CHAR', possible loss of data
+			"/wd4389", -- warning C4389: '!=': signed/unsigned mismatch
+			"/wd4245", -- warning C4245: 'return': conversion from 'int' to 'unsigned int', signed/unsigned mismatch
+			"/wd4701", -- warning C4701: potentially uninitialized local variable 'lower' used
+			"/wd4702", -- warning C4702: unreachable code
+			"/wd4706", -- warning C4706: assignment within conditional expression
+		}
+
+	files {
+		path.join(GLSL_OPTIMIZER, "src/mesa/**.c"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
+		path.join(GLSL_OPTIMIZER, "src/mesa/**.h"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/**.c"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/**.h"),
+		path.join(GLSL_OPTIMIZER, "src/util/**.c"),
+		path.join(GLSL_OPTIMIZER, "src/util/**.h"),
+	}
+
+	removefiles {
+		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/glcpp.c"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/tests/**"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.l"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.y"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/ir_set_program_inouts.cpp"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/main.cpp"),
+		path.join(GLSL_OPTIMIZER, "src/glsl/builtin_stubs.cpp"),
 	}
 	}
 
 
 	configuration { "Release" }
 	configuration { "Release" }
@@ -131,9 +172,6 @@ project "shaderc"
 			"/wd4996" -- warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.
 			"/wd4996" -- warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.
 		}
 		}
 
 
-	configuration { "mingw-*" }
-		targetextension ".exe"
-
 	configuration { "mingw* or linux or osx" }
 	configuration { "mingw* or linux or osx" }
 		buildoptions {
 		buildoptions {
 			"-fno-strict-aliasing", -- glsl-optimizer has bugs if strict aliasing is used.
 			"-fno-strict-aliasing", -- glsl-optimizer has bugs if strict aliasing is used.
@@ -143,6 +181,22 @@ project "shaderc"
 			"-Wshadow", -- glsl-optimizer is full of -Wshadow warnings ignore it.
 			"-Wshadow", -- glsl-optimizer is full of -Wshadow warnings ignore it.
 		}
 		}
 
 
+	configuration {}
+
+project "shaderc"
+	kind "ConsoleApp"
+
+	includedirs {
+		path.join(GLSL_OPTIMIZER, "include"),
+	}
+
+	links {
+		"bx",
+	}
+
+	configuration { "mingw-*" }
+		targetextension ".exe"
+
 	configuration { "osx" }
 	configuration { "osx" }
 		links {
 		links {
 			"Cocoa.framework",
 			"Cocoa.framework",
@@ -199,29 +253,11 @@ project "shaderc"
 		path.join(FCPP_DIR, "cpp5.c"),
 		path.join(FCPP_DIR, "cpp5.c"),
 		path.join(FCPP_DIR, "cpp6.c"),
 		path.join(FCPP_DIR, "cpp6.c"),
 		path.join(FCPP_DIR, "cpp6.c"),
 		path.join(FCPP_DIR, "cpp6.c"),
-
-		path.join(GLSL_OPTIMIZER, "src/mesa/**.c"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
-		path.join(GLSL_OPTIMIZER, "src/mesa/**.h"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/**.c"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/**.h"),
-		path.join(GLSL_OPTIMIZER, "src/util/**.c"),
-		path.join(GLSL_OPTIMIZER, "src/util/**.h"),
-	}
-
-	removefiles {
-		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/glcpp.c"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/tests/**"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.l"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.y"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/ir_set_program_inouts.cpp"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/main.cpp"),
-		path.join(GLSL_OPTIMIZER, "src/glsl/builtin_stubs.cpp"),
 	}
 	}
 
 
 	links {
 	links {
 		"glslang",
 		"glslang",
+		"glsl-optimizer",
 	}
 	}
 
 
 	if filesexist(BGFX_DIR, path.join(BGFX_DIR, "../bgfx-ext"), {
 	if filesexist(BGFX_DIR, path.join(BGFX_DIR, "../bgfx-ext"), {