zlib transfer

This commit is contained in:
2026-08-28 01:51:12 +03:00
parent 616840fda9
commit 4689e59b5a
29 changed files with 22790 additions and 30 deletions
+21 -30
View File
@@ -88,42 +88,33 @@ include(GNUInstallDirs)
# игры («Processor failed, invalid outputs»). Сменить Java не выйдет — сборки
# OpenJDK под Linux берут libz.so.1 из системы.
#
# Поэтому собираем рядом обычный zlib и подсовываем его через LD_PRELOAD
# только процессу установщика. Сам лаунчер с ним не линкуется, системный
# Поэтому собираем обычный zlib из zlib/ — его исходники лежат в репозитории,
# чтобы сборка не зависела от сети, а версия была зафиксирована: от неё зависит
# побайтовый результат сжатия. Готовую библиотеку подсовываем через LD_PRELOAD
# только процессу установщика. Сам лаунчер с ней не линкуется, системный
# zlib-ng остаётся на месте.
if(UNIX AND NOT APPLE)
include(FetchContent)
# SOURCE_SUBDIR указывает на несуществующий каталог: нужны только исходники.
# add_subdirectory от zlib притащил бы свои install-правила и цели example
# и minigzip.
FetchContent_Declare(zlib_reference
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG v1.3.1
GIT_SHALLOW TRUE
SOURCE_SUBDIR do-not-configure
)
FetchContent_MakeAvailable(zlib_reference)
set(LAUNCHER_ZLIB_DIR "${CMAKE_INSTALL_LIBDIR}/galeonLauncher")
set(LAUNCHER_ZLIB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/zlib")
add_library(launcher_zlib_reference SHARED
${zlib_reference_SOURCE_DIR}/adler32.c
${zlib_reference_SOURCE_DIR}/compress.c
${zlib_reference_SOURCE_DIR}/crc32.c
${zlib_reference_SOURCE_DIR}/deflate.c
${zlib_reference_SOURCE_DIR}/gzclose.c
${zlib_reference_SOURCE_DIR}/gzlib.c
${zlib_reference_SOURCE_DIR}/gzread.c
${zlib_reference_SOURCE_DIR}/gzwrite.c
${zlib_reference_SOURCE_DIR}/infback.c
${zlib_reference_SOURCE_DIR}/inffast.c
${zlib_reference_SOURCE_DIR}/inflate.c
${zlib_reference_SOURCE_DIR}/inftrees.c
${zlib_reference_SOURCE_DIR}/trees.c
${zlib_reference_SOURCE_DIR}/uncompr.c
${zlib_reference_SOURCE_DIR}/zutil.c
${LAUNCHER_ZLIB_SOURCES}/adler32.c
${LAUNCHER_ZLIB_SOURCES}/compress.c
${LAUNCHER_ZLIB_SOURCES}/crc32.c
${LAUNCHER_ZLIB_SOURCES}/deflate.c
${LAUNCHER_ZLIB_SOURCES}/gzclose.c
${LAUNCHER_ZLIB_SOURCES}/gzlib.c
${LAUNCHER_ZLIB_SOURCES}/gzread.c
${LAUNCHER_ZLIB_SOURCES}/gzwrite.c
${LAUNCHER_ZLIB_SOURCES}/infback.c
${LAUNCHER_ZLIB_SOURCES}/inffast.c
${LAUNCHER_ZLIB_SOURCES}/inflate.c
${LAUNCHER_ZLIB_SOURCES}/inftrees.c
${LAUNCHER_ZLIB_SOURCES}/trees.c
${LAUNCHER_ZLIB_SOURCES}/uncompr.c
${LAUNCHER_ZLIB_SOURCES}/zutil.c
)
target_include_directories(launcher_zlib_reference PRIVATE ${zlib_reference_SOURCE_DIR})
target_include_directories(launcher_zlib_reference PRIVATE ${LAUNCHER_ZLIB_SOURCES})
# То же, что выставляет собственный configure zlib: без этого gz*-часть не
# видит unistd.h и не собирается.
target_compile_definitions(launcher_zlib_reference PRIVATE