fix-build-deps-pkgconf.diff 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. diff --git a/Graphics/Archiver/CMakeLists.txt b/Graphics/Archiver/CMakeLists.txt
  2. index 6af0f44..2077ff7 100644
  3. --- a/Graphics/Archiver/CMakeLists.txt
  4. +++ b/Graphics/Archiver/CMakeLists.txt
  5. @@ -88,9 +88,16 @@ PRIVATE
  6. ../GraphicsEngineNextGenBase/include
  7. )
  8. +if (NOT DILIGENT_NO_GLSLANG)
  9. + target_include_directories(Diligent-Archiver-static
  10. + PRIVATE
  11. + ${spirv-cross-c_INCLUDEDIR}
  12. + )
  13. +endif()
  14. +
  15. target_compile_definitions(Diligent-Archiver-static
  16. PRIVATE
  17. - DILIGENT_NO_GLSLANG=$<BOOL:$<NOT:$<TARGET_EXISTS:glslang>>>
  18. + DILIGENT_NO_GLSLANG=$<BOOL:${DILIGENT_NO_GLSLANG}>
  19. )
  20. if(DEFINED DILIGENT_CORE_COMMIT_HASH)
  21. target_compile_definitions(Diligent-Archiver-static PRIVATE DILIGENT_CORE_COMMIT_HASH="${DILIGENT_CORE_COMMIT_HASH}")
  22. @@ -121,10 +128,11 @@ if(D3D12_SUPPORTED)
  23. endif()
  24. if(VULKAN_SUPPORTED)
  25. - target_link_libraries(Diligent-Archiver-static PRIVATE Diligent-GraphicsEngineVk-static Vulkan::Headers)
  26. + target_link_libraries(Diligent-Archiver-static PRIVATE Diligent-GraphicsEngineVk-static)
  27. target_include_directories(Diligent-Archiver-static
  28. PRIVATE
  29. ../GraphicsEngineVulkan/include
  30. + ${vulkan-headers_INCLUDEDIR}
  31. )
  32. endif()
  33. @@ -135,17 +143,18 @@ if(GL_SUPPORTED OR GLES_SUPPORTED)
  34. spirv-cross-core
  35. spirv-cross-glsl
  36. )
  37. - target_include_directories(Diligent-Archiver-static PRIVATE ../GraphicsEngineOpenGL/include)
  38. + target_include_directories(Diligent-Archiver-static PRIVATE ../GraphicsEngineOpenGL/include ${glew_INCLUDE_DIRS})
  39. if(PLATFORM_WIN32)
  40. - target_link_libraries(Diligent-Archiver-static PRIVATE GLEW::glew opengl32.lib)
  41. + target_link_directories(Diligent-Archiver-static PRIVATE ${glew_LIBRARY_DIRS})
  42. + target_link_libraries(Diligent-Archiver-static PRIVATE ${glew_LIBRARIES})
  43. elseif(PLATFORM_LINUX)
  44. find_package(X11 REQUIRED)
  45. - find_package(OpenGL REQUIRED)
  46. - target_link_libraries(Diligent-Archiver-static PRIVATE GLEW::glew OpenGL::GL X11::X11)
  47. + target_link_directories(Diligent-Archiver-static PRIVATE ${glew_LIBRARY_DIRS})
  48. + target_link_libraries(Diligent-Archiver-static PRIVATE ${glew_LIBRARIES} X11::X11)
  49. elseif(PLATFORM_MACOS)
  50. - find_package(OpenGL REQUIRED)
  51. - target_link_libraries(Diligent-Archiver-static PRIVATE GLEW::glew OpenGL::GL)
  52. + target_link_directories(Diligent-Archiver-static PRIVATE ${glew_LIBRARY_DIRS})
  53. + target_link_libraries(Diligent-Archiver-static PRIVATE ${glew_LIBRARIES} "-framework OpenGL")
  54. elseif(PLATFORM_ANDROID)
  55. target_link_libraries(Diligent-Archiver-static PRIVATE GLESv3 EGL)
  56. elseif(PLATFORM_EMSCRIPTEN)
  57. @@ -176,12 +185,28 @@ if(WEBGPU_SUPPORTED)
  58. )
  59. endif()
  60. +if (glew_FOUND)
  61. + target_link_directories(Diligent-Archiver-shared PRIVATE ${glew_LIBRARY_DIRS})
  62. +endif()
  63. +
  64. +if(spirv-cross-c_FOUND)
  65. + target_link_directories(Diligent-Archiver-shared PRIVATE ${spirv-cross-c_LIBDIR})
  66. +endif()
  67. +
  68. +if(glslang_FOUND)
  69. + target_link_directories(Diligent-Archiver-shared PRIVATE ${glslang_LIBDIR})
  70. +endif()
  71. +
  72. +if (NOT DILIGENT_NO_GLSLANG)
  73. + target_link_directories(Diligent-Archiver-shared PRIVATE ${SPIRV-Tools_LIBDIR})
  74. +endif()
  75. +
  76. target_link_libraries(Diligent-Archiver-shared
  77. PUBLIC
  78. Diligent-ArchiverInterface
  79. PRIVATE
  80. Diligent-BuildSettings
  81. - ${WHOLE_ARCHIVE_FLAG} Diligent-Archiver-static ${NO_WHOLE_ARCHIVE_FLAG}
  82. + ${WHOLE_ARCHIVE_FLAG} Diligent-Archiver-static ${NO_WHOLE_ARCHIVE_FLAG} $<$<NOT:$<BOOL:${DILIGENT_NO_GLSLANG}>>:${SPIRV-Tools_LIBRARIES}>
  83. )
  84. if(PLATFORM_WIN32)
  85. diff --git a/Graphics/GraphicsEngineD3D11/CMakeLists.txt b/Graphics/GraphicsEngineD3D11/CMakeLists.txt
  86. index adef784..75944e8 100644
  87. --- a/Graphics/GraphicsEngineD3D11/CMakeLists.txt
  88. +++ b/Graphics/GraphicsEngineD3D11/CMakeLists.txt
  89. @@ -136,6 +136,18 @@ PUBLIC
  90. Diligent-GraphicsEngineD3D11Interface
  91. )
  92. +if(SPIRV-Tools_FOUND)
  93. + target_link_directories(Diligent-GraphicsEngineD3D11-shared PRIVATE ${SPIRV-Tools_LIBDIR})
  94. +endif()
  95. +
  96. +if(spirv-cross-c_FOUND)
  97. + target_link_directories(Diligent-GraphicsEngineD3D11-shared PRIVATE ${spirv-cross-c_LIBRARY_DIRS})
  98. +endif()
  99. +
  100. +if(glslang_FOUND)
  101. + target_link_directories(Diligent-GraphicsEngineD3D11-shared PRIVATE ${glslang_LIBDIR})
  102. +endif()
  103. +
  104. target_link_libraries(Diligent-GraphicsEngineD3D11-shared
  105. PRIVATE
  106. Diligent-BuildSettings
  107. diff --git a/Graphics/GraphicsEngineD3D12/CMakeLists.txt b/Graphics/GraphicsEngineD3D12/CMakeLists.txt
  108. index 4b01eff..868e627 100644
  109. --- a/Graphics/GraphicsEngineD3D12/CMakeLists.txt
  110. +++ b/Graphics/GraphicsEngineD3D12/CMakeLists.txt
  111. @@ -206,6 +206,18 @@ if(NOT ${USE_D3D12_LOADER})
  112. target_link_libraries(Diligent-GraphicsEngineD3D12-static PRIVATE d3d12.lib)
  113. endif()
  114. +if(SPIRV-Tools_FOUND)
  115. + target_link_directories(Diligent-GraphicsEngineD3D12-shared PRIVATE ${SPIRV-Tools_LIBDIR})
  116. +endif()
  117. +
  118. +if(spirv-cross-c_FOUND)
  119. + target_link_directories(Diligent-GraphicsEngineD3D12-shared PRIVATE ${spirv-cross-c_LIBRARY_DIRS})
  120. +endif()
  121. +
  122. +if(glslang_FOUND)
  123. + target_link_directories(Diligent-GraphicsEngineD3D12-shared PRIVATE ${glslang_LIBDIR})
  124. +endif()
  125. +
  126. target_link_libraries(Diligent-GraphicsEngineD3D12-shared
  127. PRIVATE
  128. Diligent-BuildSettings
  129. diff --git a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
  130. index 839dad7..c544296 100644
  131. --- a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
  132. +++ b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
  133. @@ -175,6 +175,7 @@ endif()
  134. target_include_directories(Diligent-GraphicsEngineOpenGL-static
  135. PRIVATE
  136. include
  137. + ${glew_INCLUDE_DIRS}
  138. )
  139. set(PRIVATE_DEPENDENCIES
  140. @@ -198,16 +199,17 @@ set(PUBLIC_DEPENDENCIES
  141. )
  142. if(PLATFORM_WIN32)
  143. - set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} GLEW::glew opengl32.lib)
  144. + target_link_directories(Diligent-GraphicsEngineOpenGL-static PRIVATE ${glew_LIBRARY_DIRS})
  145. + set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} ${glew_LIBRARIES})
  146. elseif(PLATFORM_ANDROID)
  147. set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} GLESv3 EGL)
  148. elseif(PLATFORM_LINUX)
  149. find_package(X11 REQUIRED)
  150. - find_package(OpenGL REQUIRED)
  151. - set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} GLEW::glew OpenGL::GL X11::X11)
  152. + target_link_directories(Diligent-GraphicsEngineOpenGL-static PRIVATE ${glew_LIBRARY_DIRS})
  153. + set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} ${glew_LIBRARIES} X11::X11)
  154. elseif(PLATFORM_MACOS)
  155. - find_package(OpenGL REQUIRED)
  156. - set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} GLEW::glew OpenGL::GL)
  157. + target_link_directories(Diligent-GraphicsEngineOpenGL-static PRIVATE ${glew_LIBRARY_DIRS})
  158. + set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} ${glew_LIBRARIES} "-framework OpenGL")
  159. elseif(PLATFORM_IOS)
  160. set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPENDENCIES} ${OPENGLES})
  161. elseif(PLATFORM_EMSCRIPTEN)
  162. @@ -264,6 +266,19 @@ PUBLIC
  163. ${PUBLIC_DEPENDENCIES}
  164. )
  165. +if(SPIRV-Tools_FOUND)
  166. + target_link_directories(Diligent-GraphicsEngineOpenGL-shared PRIVATE ${SPIRV-Tools_LIBDIR})
  167. +endif()
  168. +
  169. +if(spirv-cross-c_FOUND)
  170. + target_link_directories(Diligent-GraphicsEngineOpenGL-shared PRIVATE ${spirv-cross-c_LIBRARY_DIRS})
  171. +endif()
  172. +
  173. +if(glslang_FOUND)
  174. + target_link_directories(Diligent-GraphicsEngineOpenGL-shared PRIVATE ${glslang_LIBDIR})
  175. +endif()
  176. +
  177. +target_link_directories(Diligent-GraphicsEngineOpenGL-shared PRIVATE ${glew_LIBRARY_DIRS})
  178. target_compile_definitions(Diligent-GraphicsEngineOpenGL-shared PUBLIC ENGINE_DLL=1)
  179. if(PLATFORM_MACOS)
  180. # Silence OpenGL deprecation warnings
  181. diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt
  182. index 9d45358..fb650ee 100644
  183. --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt
  184. +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt
  185. @@ -164,15 +164,19 @@ endif()
  186. target_include_directories(Diligent-GraphicsEngineVk-static
  187. PRIVATE
  188. include
  189. + ${vulkan-headers_INCLUDEDIR}
  190. )
  191. +if (SPIRV-Tools_FOUND)
  192. + target_include_directories(Diligent-GraphicsEngineVk-static PRIVATE ${SPIRV-Tools_INCLUDEDIR})
  193. +endif()
  194. +
  195. set(PRIVATE_DEPENDENCIES
  196. Diligent-BuildSettings
  197. Diligent-Common
  198. Diligent-TargetPlatform
  199. Diligent-GraphicsEngineNextGenBase
  200. Diligent-ShaderTools
  201. - Vulkan::Headers
  202. )
  203. if (${DILIGENT_NO_HLSL})
  204. @@ -246,9 +250,9 @@ else()
  205. endif()
  206. if(PLATFORM_WIN32)
  207. - list(APPEND PRIVATE_DEPENDENCIES volk::volk_headers)
  208. + target_include_directories(Diligent-GraphicsEngineVk-static PRIVATE ${volk_INCLUDEDIR})
  209. elseif(PLATFORM_MACOS)
  210. - list(APPEND PRIVATE_DEPENDENCIES volk::volk_headers)
  211. + target_include_directories(Diligent-GraphicsEngineVk-static PRIVATE ${volk_INCLUDEDIR})
  212. elseif(PLATFORM_IOS OR PLATFORM_TVOS)
  213. find_library(CORE_GRAPHICS CoreGraphics)
  214. find_library(METAL_LIBRARY Metal)
  215. @@ -258,9 +262,9 @@ elseif(PLATFORM_IOS OR PLATFORM_TVOS)
  216. # Note that volk may be defined by external CMake, but we don't use it on iOS/tvOS
  217. list(APPEND PRIVATE_DEPENDENCIES ${MOLTENVK_LIBRARY} ${CORE_GRAPHICS} ${METAL_LIBRARY} ${QUARTZ_CORE} ${UI_KIT} ${IO_SURFACE})
  218. elseif(PLATFORM_LINUX)
  219. - list(APPEND PRIVATE_DEPENDENCIES volk::volk_headers)
  220. + target_include_directories(Diligent-GraphicsEngineVk-static PRIVATE ${volk_INCLUDEDIR})
  221. elseif(PLATFORM_ANDROID)
  222. - list(APPEND PRIVATE_DEPENDENCIES volk::volk_headers)
  223. + target_include_directories(Diligent-GraphicsEngineVk-static PRIVATE ${volk_INCLUDEDIR})
  224. else()
  225. find_library(Vulkan_LIBRARY NAMES vulkan)
  226. list(APPEND PRIVATE_DEPENDENCIES ${Vulkan_LIBRARY})
  227. @@ -311,6 +315,19 @@ if (${DILIGENT_NO_GLSLANG})
  228. message("GLSLang is not being built. Vulkan backend will only be able to consume SPIRV byte code.")
  229. endif()
  230. +if(SPIRV-Tools_FOUND)
  231. + target_link_directories(Diligent-GraphicsEngineVk-shared PRIVATE ${SPIRV-Tools_LIBDIR})
  232. + target_link_libraries(Diligent-GraphicsEngineVk-shared PRIVATE SPIRV-Tools-opt SPIRV-Tools)
  233. +endif()
  234. +
  235. +if(spirv-cross-c_FOUND)
  236. + target_link_directories(Diligent-GraphicsEngineVk-shared PRIVATE ${spirv-cross-c_LIBRARY_DIRS})
  237. +endif()
  238. +
  239. +if(glslang_FOUND)
  240. + target_link_directories(Diligent-GraphicsEngineVk-shared PRIVATE ${glslang_LIBDIR})
  241. +endif()
  242. +
  243. target_compile_definitions(Diligent-GraphicsEngineVk-static
  244. PRIVATE
  245. ${PRIVATE_COMPILE_DEFINITIONS}
  246. diff --git a/Graphics/GraphicsTools/CMakeLists.txt b/Graphics/GraphicsTools/CMakeLists.txt
  247. index c7f8706..bb9e94a 100644
  248. --- a/Graphics/GraphicsTools/CMakeLists.txt
  249. +++ b/Graphics/GraphicsTools/CMakeLists.txt
  250. @@ -88,7 +88,7 @@ if(D3D12_SUPPORTED)
  251. endif()
  252. if(VULKAN_SUPPORTED)
  253. - list(APPEND DEPENDENCIES Diligent-GraphicsEngineVkInterface Vulkan::Headers)
  254. + list(APPEND DEPENDENCIES Diligent-GraphicsEngineVkInterface)
  255. endif()
  256. if(D3D12_SUPPORTED OR VULKAN_SUPPORTED)
  257. @@ -122,10 +122,15 @@ target_include_directories(Diligent-GraphicsTools
  258. PUBLIC
  259. interface
  260. PRIVATE
  261. + ${XXHASH_INCLUDE_DIRS}
  262. ../GraphicsEngineD3DBase/include
  263. include
  264. )
  265. +if(VULKAN_SUPPORTED)
  266. + target_include_directories(Diligent-GraphicsTools PRIVATE ${vulkan-headers_INCLUDEDIR})
  267. +endif()
  268. +
  269. target_link_libraries(Diligent-GraphicsTools
  270. PRIVATE
  271. Diligent-Common
  272. @@ -134,7 +139,7 @@ PRIVATE
  273. Diligent-GraphicsAccessories
  274. Diligent-ShaderTools
  275. Diligent-GraphicsEngine
  276. - xxHash::xxhash
  277. + ${XXHASH_LIBRARIES}
  278. ${DEPENDENCIES}
  279. PUBLIC
  280. Diligent-GraphicsEngineInterface
  281. diff --git a/Graphics/ShaderTools/CMakeLists.txt b/Graphics/ShaderTools/CMakeLists.txt
  282. index bf956ea..42bf3be 100644
  283. --- a/Graphics/ShaderTools/CMakeLists.txt
  284. +++ b/Graphics/ShaderTools/CMakeLists.txt
  285. @@ -102,11 +102,11 @@ if(DILIGENT_USE_SPIRV_TOOLCHAIN)
  286. # (e.g. added by external project), but DILIGENT_NO_GLSLANG may still be set
  287. if (NOT ${DILIGENT_NO_GLSLANG})
  288. set(USE_GLSLANG TRUE)
  289. - if (TARGET SPIRV-Tools-opt)
  290. + if (SPIRV-Tools_FOUND)
  291. set(USE_SPIRV_TOOLS TRUE)
  292. endif()
  293. endif()
  294. - if (NOT ${DILIGENT_NO_HLSL} AND TARGET SPIRV-Tools-opt)
  295. + if (NOT ${DILIGENT_NO_HLSL})
  296. set(USE_SPIRV_TOOLS TRUE)
  297. endif()
  298. endif()
  299. @@ -133,6 +133,10 @@ PUBLIC
  300. include
  301. PRIVATE
  302. ../GraphicsEngine/include
  303. + $<$<BOOL:${ENABLE_SPIRV}>:${spirv-cross-c_INCLUDEDIR}>
  304. + $<$<BOOL:${USE_GLSLANG}>:${glslang_INCLUDEDIR}>
  305. + $<$<BOOL:${USE_GLSLANG}>:${glslang_INCLUDEDIR}/glslang>
  306. + $<$<BOOL:${USE_SPIRV_TOOLS}>:${SPIRV-Tools_INCLUDEDIR}>
  307. )
  308. if (DXC_SUPPORTED)
  309. @@ -150,6 +154,12 @@ if (DXC_SUPPORTED)
  310. endif()
  311. endif()
  312. +target_link_directories(Diligent-ShaderTools
  313. +PRIVATE
  314. + $<$<BOOL:${ENABLE_SPIRV}>:${spirv-cross-c_LIBDIR}>
  315. + $<$<BOOL:${USE_GLSLANG}>:${glslang_LIBDIR}>
  316. +)
  317. +
  318. target_link_libraries(Diligent-ShaderTools
  319. PRIVATE
  320. Diligent-BuildSettings
  321. @@ -171,9 +181,7 @@ if(ENABLE_SPIRV)
  322. PRIVATE
  323. spirv-cross-core
  324. )
  325. - if(SPIRV_CROSS_NAMESPACE_OVERRIDE)
  326. - target_compile_definitions(Diligent-ShaderTools PUBLIC DILIGENT_SPIRV_CROSS_NAMESPACE=${SPIRV_CROSS_NAMESPACE_OVERRIDE})
  327. - endif()
  328. + target_compile_definitions(Diligent-ShaderTools PUBLIC DILIGENT_SPIRV_CROSS_NAMESPACE=spirv_cross)
  329. if (${USE_SPIRV_TOOLS})
  330. target_link_libraries(Diligent-ShaderTools