shaderc.lua 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. --
  2. -- Copyright 2010-2016 Branimir Karadzic. All rights reserved.
  3. -- License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
  4. --
  5. project "glslang"
  6. kind "StaticLib"
  7. buildoptions {
  8. "-Wno-ignored-qualifiers",
  9. "-Wno-inconsistent-missing-override",
  10. "-Wno-missing-field-initializers",
  11. "-Wno-reorder",
  12. "-Wno-shadow",
  13. "-Wno-sign-compare",
  14. "-Wno-undef",
  15. "-Wno-unknown-pragmas",
  16. "-Wno-unused-parameter",
  17. "-Wno-unused-variable",
  18. }
  19. configuration { "osx" }
  20. buildoptions {
  21. "-Wno-c++11-extensions",
  22. "-Wno-unused-const-variable",
  23. }
  24. configuration { "not osx" }
  25. buildoptions {
  26. "-Wno-unused-but-set-variable",
  27. }
  28. configuration {}
  29. includedirs {
  30. "../3rdparty/glslang",
  31. }
  32. files {
  33. "../3rdparty/glslang/glslang/**.cpp",
  34. "../3rdparty/glslang/glslang/**.h",
  35. "../3rdparty/glslang/hlsl/**.cpp",
  36. "../3rdparty/glslang/hlsl/**.h",
  37. "../3rdparty/glslang/SPIRV/**.cpp",
  38. "../3rdparty/glslang/SPIRV/**.h",
  39. "../3rdparty/glslang/OGLCompilersDLL/**.cpp",
  40. "../3rdparty/glslang/OGLCompilersDLL/**.h",
  41. "../3rdparty/glsl-parser/**.cpp",
  42. "../3rdparty/glsl-parser/**.h",
  43. }
  44. removefiles {
  45. "../3rdparty/glslang/glslang/OSDependent/Windows/**.cpp",
  46. "../3rdparty/glslang/glslang/OSDependent/Windows/**.h",
  47. "../3rdparty/glsl-parser/main.cpp",
  48. }
  49. project "shaderc"
  50. kind "ConsoleApp"
  51. local GLSL_OPTIMIZER = path.join(BGFX_DIR, "3rdparty/glsl-optimizer")
  52. local FCPP_DIR = path.join(BGFX_DIR, "3rdparty/fcpp")
  53. includedirs {
  54. path.join(GLSL_OPTIMIZER, "src"),
  55. }
  56. removeflags {
  57. -- GCC 4.9 -O2 + -fno-strict-aliasing don't work together...
  58. "OptimizeSpeed",
  59. }
  60. configuration { "vs*" }
  61. includedirs {
  62. path.join(GLSL_OPTIMIZER, "src/glsl/msvc"),
  63. }
  64. defines { -- glsl-optimizer
  65. "__STDC__",
  66. "__STDC_VERSION__=199901L",
  67. "strdup=_strdup",
  68. "alloca=_alloca",
  69. "isascii=__isascii",
  70. }
  71. buildoptions {
  72. "/wd4996" -- warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.
  73. }
  74. configuration { "mingw-*" }
  75. targetextension ".exe"
  76. configuration { "mingw* or linux or osx" }
  77. buildoptions {
  78. "-fno-strict-aliasing", -- glsl-optimizer has bugs if strict aliasing is used.
  79. "-Wno-unused-parameter",
  80. }
  81. removebuildoptions {
  82. "-Wshadow", -- glsl-optimizer is full of -Wshadow warnings ignore it.
  83. }
  84. configuration { "osx" }
  85. links {
  86. "Cocoa.framework",
  87. }
  88. configuration { "vs*" }
  89. includedirs {
  90. path.join(GLSL_OPTIMIZER, "include/c99"),
  91. }
  92. configuration {}
  93. defines { -- fcpp
  94. "NINCLUDE=64",
  95. "NWORK=65536",
  96. "NBUFF=65536",
  97. "OLD_PREPROCESSOR=0",
  98. }
  99. includedirs {
  100. path.join(BX_DIR, "include"),
  101. path.join(BGFX_DIR, "include"),
  102. path.join(BGFX_DIR, "3rdparty/dxsdk/include"),
  103. FCPP_DIR,
  104. path.join(BGFX_DIR, "3rdparty/glslang/glslang/Public"),
  105. path.join(BGFX_DIR, "3rdparty/glslang/glslang/Include"),
  106. path.join(BGFX_DIR, "3rdparty/glslang"),
  107. -- path.join(BGFX_DIR, "3rdparty/spirv-tools/include"),
  108. path.join(GLSL_OPTIMIZER, "include"),
  109. path.join(GLSL_OPTIMIZER, "src/mesa"),
  110. path.join(GLSL_OPTIMIZER, "src/mapi"),
  111. path.join(GLSL_OPTIMIZER, "src/glsl"),
  112. }
  113. files {
  114. path.join(BGFX_DIR, "tools/shaderc/**.cpp"),
  115. path.join(BGFX_DIR, "tools/shaderc/**.h"),
  116. path.join(BGFX_DIR, "src/vertexdecl.**"),
  117. path.join(BGFX_DIR, "src/shader_spirv.**"),
  118. path.join(FCPP_DIR, "**.h"),
  119. path.join(FCPP_DIR, "cpp1.c"),
  120. path.join(FCPP_DIR, "cpp2.c"),
  121. path.join(FCPP_DIR, "cpp3.c"),
  122. path.join(FCPP_DIR, "cpp4.c"),
  123. path.join(FCPP_DIR, "cpp5.c"),
  124. path.join(FCPP_DIR, "cpp6.c"),
  125. path.join(FCPP_DIR, "cpp6.c"),
  126. path.join(GLSL_OPTIMIZER, "src/mesa/**.c"),
  127. path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
  128. path.join(GLSL_OPTIMIZER, "src/mesa/**.h"),
  129. path.join(GLSL_OPTIMIZER, "src/glsl/**.c"),
  130. path.join(GLSL_OPTIMIZER, "src/glsl/**.cpp"),
  131. path.join(GLSL_OPTIMIZER, "src/glsl/**.h"),
  132. path.join(GLSL_OPTIMIZER, "src/util/**.c"),
  133. path.join(GLSL_OPTIMIZER, "src/util/**.h"),
  134. }
  135. removefiles {
  136. path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/glcpp.c"),
  137. path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/tests/**"),
  138. path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.l"),
  139. path.join(GLSL_OPTIMIZER, "src/glsl/glcpp/**.y"),
  140. path.join(GLSL_OPTIMIZER, "src/glsl/ir_set_program_inouts.cpp"),
  141. path.join(GLSL_OPTIMIZER, "src/glsl/main.cpp"),
  142. path.join(GLSL_OPTIMIZER, "src/glsl/builtin_stubs.cpp"),
  143. }
  144. links {
  145. "glslang",
  146. }
  147. if filesexist(BGFX_DIR, path.join(BGFX_DIR, "../bgfx-ext"), {
  148. path.join(BGFX_DIR, "scripts/shaderc.lua"), }) then
  149. if filesexist(BGFX_DIR, path.join(BGFX_DIR, "../bgfx-ext"), {
  150. path.join(BGFX_DIR, "tools/shaderc/shaderc_pssl.cpp"), }) then
  151. removefiles {
  152. path.join(BGFX_DIR, "tools/shaderc/shaderc_pssl.cpp"),
  153. }
  154. end
  155. dofile(path.join(BGFX_DIR, "../bgfx-ext/scripts/shaderc.lua") )
  156. end
  157. configuration { "osx or linux-*" }
  158. links {
  159. "pthread",
  160. }
  161. configuration {}
  162. strip()