From fce135cd38f0ac885de3ad098833437b48b3b18b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=9A=93?= Date: Mon, 30 Dec 2024 13:14:27 -0500 Subject: [PATCH] Statically link libzip and zlib --- .github/workflows/autobuild.yml | 2 +- meson.build | 17 ++++++++++++++++- subprojects/.gitignore | 1 + subprojects/libzip.wrap | 4 ++++ 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 subprojects/.gitignore create mode 100644 subprojects/libzip.wrap diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index d1b636d4..774f2247 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -352,7 +352,7 @@ jobs: - name: Install apt dependencies run: | sudo apt update - sudo apt install git curl build-essential automake libtool meson libzip-dev -y + sudo apt install git curl build-essential automake libtool meson cmake zlib1g-dev -y - name: Build phase 2 run: | diff --git a/meson.build b/meson.build index 8d4335ef..58e55dfe 100644 --- a/meson.build +++ b/meson.build @@ -33,10 +33,25 @@ global_args += '-DHAVE_NANOSLEEP' if get_option('retro') == true retro_phase1 = get_option('retro_phase1_path') + cmake = import('cmake') + libzip_options = cmake.subproject_options() + libzip_options.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': true}) + libzip_options.add_cmake_defines({'BUILD_SHARED_LIBS': false}) + libzip_options.add_cmake_defines({'LIBZIP_DO_INSTALL': false}) + libzip_options.add_cmake_defines({'ENABLE_COMMONCRYPTO': false}) + libzip_options.add_cmake_defines({'ENABLE_GNUTLS': false}) + libzip_options.add_cmake_defines({'ENABLE_MBEDTLS': false}) + libzip_options.add_cmake_defines({'ENABLE_OPENSSL': false}) + libzip_options.add_cmake_defines({'ENABLE_WINDOWS_CRYPTO': false}) + libzip_options.add_cmake_defines({'ENABLE_FDOPEN': false}) + libzip_options.add_cmake_defines({'ENABLE_BZIP2': false}) + libzip_options.add_cmake_defines({'ENABLE_LZMA': false}) + libzip_options.add_cmake_defines({'ENABLE_ZSTD': false}) library( 'retro-' + meson.project_name(), dependencies: [ - compilers['cpp'].find_library('zip', required: true), + compilers['cpp'].find_library('z', required: true, static: true), + cmake.subproject('libzip', options: libzip_options).dependency('zip'), ], c_args: [ '-fno-optimize-sibling-calls', diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 00000000..4f1db384 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1 @@ +/libzip diff --git a/subprojects/libzip.wrap b/subprojects/libzip.wrap new file mode 100644 index 00000000..db3763f3 --- /dev/null +++ b/subprojects/libzip.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://github.com/nih-at/libzip +revision = v1.11.2 +depth = 1