1- find_package (OpenGL REQUIRED )
2- find_package (ZLIB QUIET )
3-
41set (GLEW_USE_STATIC_LIBS ON )
52set (ZLIB_USE_STATIC_LIBS ON )
63
4+ find_package (OpenGL REQUIRED )
5+ if (RAWGL_WINDOWS_PREFIX_ONLY_FIND)
6+ set (CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF CACHE BOOL "Do not use PATH/system environment for RawGL Windows dependency discovery." FORCE )
7+ set (CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF CACHE BOOL "Do not use CMake system prefixes for RawGL Windows dependency discovery." FORCE )
8+ endif ()
9+ find_path (RAWGL_ZLIB_INCLUDE_DIR
10+ NAMES zlib.h )
11+ find_library (RAWGL_ZLIB_LIBRARY_RELEASE
12+ NAMES zlibstatic zlib z )
13+ find_library (RAWGL_ZLIB_LIBRARY_DEBUG
14+ NAMES zlibstaticd zlibd zd z_d )
15+ rawgl_add_windows_imported_library (ZLIB::ZLIBSTATIC
16+ INCLUDE_DIR "${RAWGL_ZLIB_INCLUDE_DIR} "
17+ RELEASE "${RAWGL_ZLIB_LIBRARY_RELEASE} "
18+ DEBUG "${RAWGL_ZLIB_LIBRARY_DEBUG} " )
19+ rawgl_add_windows_imported_library (ZLIB::ZLIB
20+ INCLUDE_DIR "${RAWGL_ZLIB_INCLUDE_DIR} "
21+ RELEASE "${RAWGL_ZLIB_LIBRARY_RELEASE} "
22+ DEBUG "${RAWGL_ZLIB_LIBRARY_DEBUG} " )
23+ if (TARGET ZLIB::ZLIB AND NOT TARGET ZLIB::ZLIBSTATIC)
24+ rawgl_add_imported_interface_alias (ZLIB::ZLIBSTATIC ZLIB::ZLIB )
25+ endif ()
26+ if (NOT TARGET ZLIB::ZLIB)
27+ find_package (ZLIB MODULE QUIET )
28+ endif ()
29+ if (TARGET ZLIB::ZLIB AND NOT TARGET ZLIB::ZLIBSTATIC)
30+ rawgl_add_imported_interface_alias (ZLIB::ZLIBSTATIC ZLIB::ZLIB )
31+ endif ()
32+
733if (RAWGL_WINDOWS_DEPS_ROOT AND NOT TARGET ZLIB::ZLIB)
834 rawgl_add_windows_imported_library (ZLIB::ZLIB
935 INCLUDE_DIR "${RAWGL_WINDOWS_DEPS_ROOT} /include"
@@ -124,6 +150,10 @@ find_package(PNG CONFIG QUIET)
124150find_package (libjpeg-turbo CONFIG QUIET )
125151find_package (JPEG QUIET )
126152find_package (TIFF CONFIG QUIET )
153+ find_package (WebP CONFIG QUIET )
154+ if (NOT TARGET WebP::webp)
155+ find_package (webp CONFIG QUIET )
156+ endif ()
127157find_package (GIFLIB CONFIG QUIET )
128158if (NOT TARGET GIF::GIF)
129159 if (TARGET GIFLIB::gif)
@@ -147,6 +177,44 @@ endif()
147177find_package (Ptex CONFIG QUIET )
148178find_package (OpenJPEG CONFIG QUIET )
149179find_package (AOM CONFIG QUIET )
180+ find_package (Brotli CONFIG QUIET )
181+ find_package (brotli CONFIG QUIET )
182+ find_path (RAWGL_BZIP2_INCLUDE_DIR
183+ NAMES bzlib.h )
184+ find_library (RAWGL_BZIP2_LIBRARY_RELEASE
185+ NAMES bz2_static bz2 bzip2 libbz2 )
186+ find_library (RAWGL_BZIP2_LIBRARY_DEBUG
187+ NAMES bz2_staticd bz2d bzip2d libbz2d bz2_d )
188+ rawgl_add_windows_imported_library (BZip2::BZip2
189+ INCLUDE_DIR "${RAWGL_BZIP2_INCLUDE_DIR} "
190+ RELEASE "${RAWGL_BZIP2_LIBRARY_RELEASE} "
191+ DEBUG "${RAWGL_BZIP2_LIBRARY_DEBUG} " )
192+ find_path (RAWGL_ICU_INCLUDE_DIR
193+ NAMES unicode/utypes.h )
194+ find_library (RAWGL_ICU_UC_LIBRARY_RELEASE
195+ NAMES icuuc )
196+ find_library (RAWGL_ICU_UC_LIBRARY_DEBUG
197+ NAMES icuucd icuuc_d )
198+ find_library (RAWGL_ICU_I18N_LIBRARY_RELEASE
199+ NAMES icuin icui18n )
200+ find_library (RAWGL_ICU_I18N_LIBRARY_DEBUG
201+ NAMES icuind icui18nd icuin_d icui18n_d )
202+ find_library (RAWGL_ICU_DATA_LIBRARY_RELEASE
203+ NAMES icudt icudata )
204+ find_library (RAWGL_ICU_DATA_LIBRARY_DEBUG
205+ NAMES icudtd icudatad icudt_d icudata_d )
206+ rawgl_add_windows_imported_library (ICU::uc
207+ INCLUDE_DIR "${RAWGL_ICU_INCLUDE_DIR} "
208+ RELEASE "${RAWGL_ICU_UC_LIBRARY_RELEASE} "
209+ DEBUG "${RAWGL_ICU_UC_LIBRARY_DEBUG} " )
210+ rawgl_add_windows_imported_library (ICU::i18n
211+ INCLUDE_DIR "${RAWGL_ICU_INCLUDE_DIR} "
212+ RELEASE "${RAWGL_ICU_I18N_LIBRARY_RELEASE} "
213+ DEBUG "${RAWGL_ICU_I18N_LIBRARY_DEBUG} " )
214+ rawgl_add_windows_imported_library (ICU::data
215+ INCLUDE_DIR "${RAWGL_ICU_INCLUDE_DIR} "
216+ RELEASE "${RAWGL_ICU_DATA_LIBRARY_RELEASE} "
217+ DEBUG "${RAWGL_ICU_DATA_LIBRARY_DEBUG} " )
150218find_package (harfbuzz CONFIG QUIET )
151219find_package (freetype CONFIG QUIET )
152220find_package (libheif CONFIG QUIET )
@@ -161,6 +229,12 @@ find_package(pugixml CONFIG QUIET)
161229find_package (yaml-cpp CONFIG QUIET )
162230find_package (minizip-ng CONFIG QUIET )
163231find_package (expat CONFIG QUIET )
232+ if (NOT TARGET EXPAT::EXPAT)
233+ find_package (EXPAT QUIET )
234+ endif ()
235+ if (TARGET expat::expat AND NOT TARGET EXPAT::EXPAT)
236+ rawgl_add_imported_interface_alias (EXPAT::EXPAT expat::expat )
237+ endif ()
164238find_package (glew CONFIG QUIET )
165239if (NOT TARGET GLEW::GLEW
166240 AND NOT TARGET GLEW::glew_s
@@ -197,6 +271,17 @@ if(TARGET libjpeg-turbo::jpeg-static AND NOT TARGET JPEG::JPEG)
197271 set_target_properties (JPEG::JPEG PROPERTIES
198272 INTERFACE_LINK_LIBRARIES "libjpeg-turbo::jpeg-static" )
199273endif ()
274+ rawgl_add_imported_interface_alias (WebP::webp WebP::WebP )
275+ rawgl_add_imported_interface_alias (WebP::webp webp::webp )
276+ rawgl_add_imported_interface_alias (WebP::webp webp )
277+ rawgl_add_imported_interface_alias (WebP::webp libwebp )
278+ rawgl_add_imported_interface_alias (WebP::webp libwebp::webp )
279+ rawgl_add_imported_interface_alias (WebP::webpdemux webpdemux )
280+ rawgl_add_imported_interface_alias (WebP::webpdemux libwebpdemux )
281+ rawgl_add_imported_interface_alias (WebP::webpdemux libwebp::webpdemux )
282+ rawgl_add_imported_interface_alias (WebP::libwebpmux webpmux )
283+ rawgl_add_imported_interface_alias (WebP::libwebpmux libwebpmux )
284+ rawgl_add_imported_interface_alias (WebP::libwebpmux libwebp::webpmux )
200285if (TARGET Ptex::Ptex AND NOT TARGET Ptex::Ptex_static)
201286 add_library (Ptex::Ptex_static ALIAS Ptex::Ptex )
202287elseif (TARGET Ptex AND NOT TARGET Ptex::Ptex_static)
@@ -249,6 +334,55 @@ if(NOT TARGET libuhdr::libuhdr
249334 DEBUG "${RAWGL_WINDOWS_DEPS_ROOT} /lib/uhdrd.lib" )
250335endif ()
251336
337+ if (NOT TARGET WebP::webp)
338+ find_path (RAWGL_WEBP_INCLUDE_DIR
339+ NAMES webp/decode.h )
340+ find_library (RAWGL_WEBP_LIBRARY_RELEASE
341+ NAMES webp libwebp )
342+ find_library (RAWGL_WEBP_LIBRARY_DEBUG
343+ NAMES webpd libwebpd webp_d )
344+ rawgl_add_windows_imported_library (WebP::webp
345+ INCLUDE_DIR "${RAWGL_WEBP_INCLUDE_DIR} "
346+ RELEASE "${RAWGL_WEBP_LIBRARY_RELEASE} "
347+ DEBUG "${RAWGL_WEBP_LIBRARY_DEBUG} " )
348+ endif ()
349+ if (NOT TARGET WebP::webpdemux)
350+ find_library (RAWGL_WEBPDEMUX_LIBRARY_RELEASE
351+ NAMES webpdemux libwebpdemux )
352+ find_library (RAWGL_WEBPDEMUX_LIBRARY_DEBUG
353+ NAMES webpdemuxd libwebpdemuxd webpdemux_d )
354+ rawgl_add_windows_imported_library (WebP::webpdemux
355+ INCLUDE_DIR "${RAWGL_WEBP_INCLUDE_DIR} "
356+ RELEASE "${RAWGL_WEBPDEMUX_LIBRARY_RELEASE} "
357+ DEBUG "${RAWGL_WEBPDEMUX_LIBRARY_DEBUG} " )
358+ endif ()
359+ if (NOT TARGET WebP::libwebpmux)
360+ find_library (RAWGL_WEBPMUX_LIBRARY_RELEASE
361+ NAMES webpmux libwebpmux )
362+ find_library (RAWGL_WEBPMUX_LIBRARY_DEBUG
363+ NAMES webpmuxd libwebpmuxd webpmux_d )
364+ rawgl_add_windows_imported_library (WebP::libwebpmux
365+ INCLUDE_DIR "${RAWGL_WEBP_INCLUDE_DIR} "
366+ RELEASE "${RAWGL_WEBPMUX_LIBRARY_RELEASE} "
367+ DEBUG "${RAWGL_WEBPMUX_LIBRARY_DEBUG} " )
368+ endif ()
369+
370+ rawgl_map_imported_config_targets (
371+ GIF::GIF
372+ GIFLIB::gif
373+ GIFLIB::GIFLIB
374+ Brotli::common
375+ Brotli::decoder
376+ Brotli::encoder
377+ Brotli::brotlicommon
378+ Brotli::brotlidec
379+ Brotli::brotlienc
380+ WebP::webp
381+ WebP::webpdemux
382+ WebP::libwebpmux
383+ EXPAT::EXPAT
384+ expat::expat )
385+
252386if (TARGET GLEW::GLEW)
253387 set (RAWGL_OPENGL_LOADER_TARGET GLEW::GLEW)
254388elseif (TARGET GLEW::glew_s)
0 commit comments