38 lines
1.2 KiB
CMake
38 lines
1.2 KiB
CMake
|
|
# FindZLIB.cmake - WASM builds use Emscripten's zlib port
|
||
|
|
# Emscripten provides zlib via -sUSE_ZLIB=1 flag
|
||
|
|
|
||
|
|
if(EMSCRIPTEN)
|
||
|
|
message(STATUS "Using Emscripten's zlib port (-sUSE_ZLIB=1)")
|
||
|
|
|
||
|
|
# Find the Emscripten cache sysroot
|
||
|
|
execute_process(
|
||
|
|
COMMAND em-config CACHE
|
||
|
|
OUTPUT_VARIABLE EMSCRIPTEN_CACHE
|
||
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||
|
|
)
|
||
|
|
|
||
|
|
# Set ZLIB variables
|
||
|
|
set(ZLIB_FOUND TRUE)
|
||
|
|
set(ZLIB_INCLUDE_DIR "${EMSCRIPTEN_CACHE}/sysroot/include")
|
||
|
|
set(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}")
|
||
|
|
|
||
|
|
# The library will be linked via -sUSE_ZLIB=1
|
||
|
|
# We set a placeholder for CMake checks
|
||
|
|
set(ZLIB_LIBRARY "-sUSE_ZLIB=1")
|
||
|
|
set(ZLIB_LIBRARIES "-sUSE_ZLIB=1")
|
||
|
|
set(ZLIB_VERSION_STRING "1.3.1")
|
||
|
|
|
||
|
|
# Create imported target
|
||
|
|
if(NOT TARGET ZLIB::ZLIB)
|
||
|
|
add_library(ZLIB::ZLIB INTERFACE IMPORTED)
|
||
|
|
set_target_properties(ZLIB::ZLIB PROPERTIES
|
||
|
|
INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIR}"
|
||
|
|
INTERFACE_LINK_LIBRARIES "-sUSE_ZLIB=1"
|
||
|
|
)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
mark_as_advanced(ZLIB_INCLUDE_DIR ZLIB_LIBRARY)
|
||
|
|
else()
|
||
|
|
# For non-WASM builds, use the system FindZLIB
|
||
|
|
include(${CMAKE_ROOT}/Modules/FindZLIB.cmake OPTIONAL)
|
||
|
|
endif()
|