From 727600a73aab31569252e2fd6a8589162f8c912e Mon Sep 17 00:00:00 2001 From: henderkes Date: Tue, 26 May 2026 21:10:00 +0700 Subject: [PATCH] disable a whole lot of things we don't need to build --- src/Package/Library/brotli.php | 5 ++++- src/Package/Library/imagemagick.php | 3 +++ src/Package/Library/ldap.php | 1 + src/Package/Library/libavif.php | 9 +++++++-- src/Package/Library/libffi.php | 3 ++- src/Package/Library/libheif.php | 1 + src/Package/Library/libjxl.php | 1 + src/Package/Library/libmemcached.php | 12 ++++++++++-- src/Package/Library/libpng.php | 2 ++ src/Package/Library/librabbitmq.php | 16 ++++++++++++++-- src/Package/Library/libtiff.php | 3 +++ src/Package/Library/libuv.php | 10 ++++++++-- src/Package/Library/libxslt.php | 1 + src/Package/Library/mimalloc.php | 1 + src/Package/Library/nghttp3.php | 1 + src/Package/Library/ngtcp2.php | 1 + src/Package/Library/readline.php | 1 + src/Package/Library/tidy.php | 6 ++++-- src/Package/Library/unixodbc.php | 1 + src/Package/Library/xz.php | 5 +++++ src/Package/Library/zstd.php | 17 +++++++++-------- src/Package/Target/curl.php | 5 +++++ 22 files changed, 85 insertions(+), 20 deletions(-) diff --git a/src/Package/Library/brotli.php b/src/Package/Library/brotli.php index cab05112..7a56afe7 100644 --- a/src/Package/Library/brotli.php +++ b/src/Package/Library/brotli.php @@ -27,7 +27,10 @@ class brotli { UnixCMakeExecutor::create($lib) ->setBuildDir($lib->getSourceDir() . '/build-dir') - ->addConfigureArgs("-DSHARE_INSTALL_PREFIX={$lib->getBuildRootPath()}") + ->addConfigureArgs( + "-DSHARE_INSTALL_PREFIX={$lib->getBuildRootPath()}", + '-DBROTLI_DISABLE_TESTS=ON', + ) ->build(); // Patch pkg-config files diff --git a/src/Package/Library/imagemagick.php b/src/Package/Library/imagemagick.php index d423163a..7fd7ec61 100644 --- a/src/Package/Library/imagemagick.php +++ b/src/Package/Library/imagemagick.php @@ -45,6 +45,9 @@ class imagemagick // implicit --with-gcc-arch // bleeds host cpu features into built binaries '--without-gcc-arch', + '--disable-docs', + '--without-utilities', + '--disable-dpc', ); // special: linux-static target needs `-static` diff --git a/src/Package/Library/ldap.php b/src/Package/Library/ldap.php index 21e7f8c0..bbaf06b4 100644 --- a/src/Package/Library/ldap.php +++ b/src/Package/Library/ldap.php @@ -35,6 +35,7 @@ class ldap ->optionalPackage('libsodium', '--with-argon2=libsodium', '--enable-argon2=no') ->addConfigureArgs( '--disable-slapd', + '--disable-debug', '--without-systemd', '--without-cyrus-sasl', 'ac_cv_func_pthread_kill_other_threads_np=no' diff --git a/src/Package/Library/libavif.php b/src/Package/Library/libavif.php index b8321375..ef86386d 100644 --- a/src/Package/Library/libavif.php +++ b/src/Package/Library/libavif.php @@ -35,7 +35,12 @@ class libavif ->optionalPackage('libjpeg', '-DAVIF_JPEG=SYSTEM', '-DAVIF_JPEG=OFF') ->optionalPackage('libxml2', '-DAVIF_LIBXML2=SYSTEM', '-DAVIF_LIBXML2=OFF') ->optionalPackage('libpng', '-DAVIF_LIBPNG=SYSTEM', '-DAVIF_LIBPNG=OFF') - ->addConfigureArgs('-DAVIF_LIBYUV=OFF') + ->addConfigureArgs( + '-DAVIF_LIBYUV=OFF', + '-DAVIF_BUILD_APPS=OFF', + '-DAVIF_BUILD_TESTS=OFF', + '-DAVIF_GTEST=OFF', + ) ->build(); // patch pkgconfig $lib->patchPkgconfPrefix(['libavif.pc']); @@ -49,7 +54,7 @@ class libavif '-DAVIF_BUILD_APPS=OFF', '-DAVIF_BUILD_TESTS=OFF', '-DAVIF_LIBYUV=OFF', - '-DAVIF_ENABLE_GTEST=OFF', + '-DAVIF_GTEST=OFF', ) ->build(); } diff --git a/src/Package/Library/libffi.php b/src/Package/Library/libffi.php index 351b9076..74000ef5 100644 --- a/src/Package/Library/libffi.php +++ b/src/Package/Library/libffi.php @@ -16,7 +16,7 @@ class libffi extends LibraryPackage public function buildLinux(): void { UnixAutoconfExecutor::create($this) - ->configure()->make(); + ->configure('--disable-docs')->make(); if (is_file("{$this->getBuildRootPath()}/lib64/libffi.a")) { copy("{$this->getBuildRootPath()}/lib64/libffi.a", "{$this->getBuildRootPath()}/lib/libffi.a"); @@ -33,6 +33,7 @@ class libffi extends LibraryPackage ->configure( "--host={$arch}-apple-darwin", "--target={$arch}-apple-darwin", + '--disable-docs', ) ->make(); $this->patchPkgconfPrefix(['libffi.pc']); diff --git a/src/Package/Library/libheif.php b/src/Package/Library/libheif.php index 19ad4c61..935817f7 100644 --- a/src/Package/Library/libheif.php +++ b/src/Package/Library/libheif.php @@ -47,6 +47,7 @@ class libheif '-DWITH_EXAMPLES=OFF', '-DWITH_GDK_PIXBUF=OFF', '-DBUILD_TESTING=OFF', + '-DBUILD_DOCUMENTATION=OFF', '-DWITH_LIBSHARPYUV=ON', // optional: libwebp '-DENABLE_PLUGIN_LOADING=OFF', ) diff --git a/src/Package/Library/libjxl.php b/src/Package/Library/libjxl.php index 74b87907..668f2bb9 100644 --- a/src/Package/Library/libjxl.php +++ b/src/Package/Library/libjxl.php @@ -25,6 +25,7 @@ class libjxl extends LibraryPackage '-DJPEGXL_ENABLE_MANPAGES=OFF', '-DJPEGXL_ENABLE_BENCHMARK=OFF', '-DJPEGXL_ENABLE_PLUGINS=OFF', + '-DJPEGXL_ENABLE_DOXYGEN=OFF', '-DJPEGXL_ENABLE_SJPEG=ON', '-DJPEGXL_ENABLE_JNI=OFF', '-DJPEGXL_ENABLE_TRANSCODE_JPEG=ON', diff --git a/src/Package/Library/libmemcached.php b/src/Package/Library/libmemcached.php index ea632192..7744f3f0 100644 --- a/src/Package/Library/libmemcached.php +++ b/src/Package/Library/libmemcached.php @@ -12,17 +12,25 @@ use StaticPHP\Runtime\Executor\UnixCMakeExecutor; #[Library('libmemcached')] class libmemcached extends LibraryPackage { + private const array DISABLE_ARGS = [ + '-DBUILD_TESTING=OFF', + '-DBUILD_DOCS=OFF', + '-DENABLE_MEMASLAP=OFF', + ]; + #[BuildFor('Linux')] public function buildLinux(): void { UnixCMakeExecutor::create($this) - ->addConfigureArgs('-DCMAKE_INSTALL_RPATH=""') + ->addConfigureArgs('-DCMAKE_INSTALL_RPATH=""', ...self::DISABLE_ARGS) ->build(); } #[BuildFor('Darwin')] public function buildDarwin(): void { - UnixCMakeExecutor::create($this)->build(); + UnixCMakeExecutor::create($this) + ->addConfigureArgs(...self::DISABLE_ARGS) + ->build(); } } diff --git a/src/Package/Library/libpng.php b/src/Package/Library/libpng.php index 6a169010..8613c2db 100644 --- a/src/Package/Library/libpng.php +++ b/src/Package/Library/libpng.php @@ -20,6 +20,8 @@ class libpng { $args = [ '--enable-hardware-optimizations', + '--disable-tests', + '--disable-tools', "--with-zlib-prefix={$lib->getBuildRootPath()}", ]; diff --git a/src/Package/Library/librabbitmq.php b/src/Package/Library/librabbitmq.php index 03eda2a7..990c7023 100644 --- a/src/Package/Library/librabbitmq.php +++ b/src/Package/Library/librabbitmq.php @@ -13,17 +13,29 @@ use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; #[Library('librabbitmq')] class librabbitmq extends LibraryPackage { + private const array DISABLE_ARGS = [ + '-DBUILD_EXAMPLES=OFF', + '-DBUILD_TESTING=OFF', + '-DBUILD_TOOLS=OFF', + '-DBUILD_TOOLS_DOCS=OFF', + '-DBUILD_API_DOCS=OFF', + ]; + #[BuildFor('Darwin')] #[BuildFor('Linux')] public function buildUnix(): void { - UnixCMakeExecutor::create($this)->addConfigureArgs('-DBUILD_STATIC_LIBS=ON')->build(); + UnixCMakeExecutor::create($this) + ->addConfigureArgs('-DBUILD_STATIC_LIBS=ON', ...self::DISABLE_ARGS) + ->build(); } #[BuildFor('Windows')] public function buildWin(): void { - WindowsCMakeExecutor::create($this)->build(); + WindowsCMakeExecutor::create($this) + ->addConfigureArgs(...self::DISABLE_ARGS) + ->build(); rename("{$this->getLibDir()}\\librabbitmq.4.lib", "{$this->getLibDir()}\\rabbitmq.4.lib"); } } diff --git a/src/Package/Library/libtiff.php b/src/Package/Library/libtiff.php index 385ff3ca..1626db3c 100644 --- a/src/Package/Library/libtiff.php +++ b/src/Package/Library/libtiff.php @@ -41,6 +41,9 @@ class libtiff '--disable-libdeflate', '--disable-tools', '--disable-contrib', + '--disable-tests', + '--disable-docs', + '--disable-sphinx', '--disable-cxx', '--without-x', ) diff --git a/src/Package/Library/libuv.php b/src/Package/Library/libuv.php index c27b499c..95fbae40 100644 --- a/src/Package/Library/libuv.php +++ b/src/Package/Library/libuv.php @@ -13,12 +13,18 @@ use StaticPHP\Runtime\Executor\WindowsCMakeExecutor; #[Library('libuv')] class libuv { + private const array DISABLE_ARGS = [ + '-DLIBUV_BUILD_SHARED=OFF', + '-DLIBUV_BUILD_TESTS=OFF', + '-DLIBUV_BUILD_BENCH=OFF', + ]; + #[BuildFor('Darwin')] #[BuildFor('Linux')] public function buildUnix(LibraryPackage $lib): void { UnixCMakeExecutor::create($lib) - ->addConfigureArgs('-DLIBUV_BUILD_SHARED=OFF') + ->addConfigureArgs(...self::DISABLE_ARGS) ->build(); // patch pkgconfig $lib->patchPkgconfPrefix(['libuv-static.pc']); @@ -28,7 +34,7 @@ class libuv public function buildWindows(LibraryPackage $lib): void { WindowsCMakeExecutor::create($lib) - ->addConfigureArgs('-DLIBUV_BUILD_SHARED=OFF') + ->addConfigureArgs(...self::DISABLE_ARGS) ->build(); } } diff --git a/src/Package/Library/libxslt.php b/src/Package/Library/libxslt.php index 7513d146..35118c77 100644 --- a/src/Package/Library/libxslt.php +++ b/src/Package/Library/libxslt.php @@ -34,6 +34,7 @@ class libxslt '--without-crypto', '--without-debug', '--without-debugger', + '--without-profiler', "--with-libxml-prefix={$lib->getBuildRootPath()}", ); if (getenv('SPC_LD_LIBRARY_PATH') && getenv('SPC_LIBRARY_PATH')) { diff --git a/src/Package/Library/mimalloc.php b/src/Package/Library/mimalloc.php index fd7a7351..241e08aa 100644 --- a/src/Package/Library/mimalloc.php +++ b/src/Package/Library/mimalloc.php @@ -21,6 +21,7 @@ class mimalloc ->addConfigureArgs( '-DMI_BUILD_SHARED=OFF', '-DMI_BUILD_OBJECT=OFF', + '-DMI_BUILD_TESTS=OFF', '-DMI_INSTALL_TOPLEVEL=ON', ); if (SystemTarget::getLibc() === 'musl') { diff --git a/src/Package/Library/nghttp3.php b/src/Package/Library/nghttp3.php index 4659c571..f20fbc94 100644 --- a/src/Package/Library/nghttp3.php +++ b/src/Package/Library/nghttp3.php @@ -24,6 +24,7 @@ class nghttp3 '-DBUILD_SHARED_LIBS=OFF', '-DENABLE_STATIC_CRT=ON', '-DENABLE_LIB_ONLY=ON', + '-DBUILD_TESTING=OFF', ) ->build(); } diff --git a/src/Package/Library/ngtcp2.php b/src/Package/Library/ngtcp2.php index 0a5ca8f5..e392431f 100644 --- a/src/Package/Library/ngtcp2.php +++ b/src/Package/Library/ngtcp2.php @@ -25,6 +25,7 @@ class ngtcp2 '-DENABLE_STATIC_CRT=ON', '-DENABLE_LIB_ONLY=ON', '-DENABLE_OPENSSL=OFF', + '-DBUILD_TESTING=OFF', ) ->build(); } diff --git a/src/Package/Library/readline.php b/src/Package/Library/readline.php index a3233472..6213c37f 100644 --- a/src/Package/Library/readline.php +++ b/src/Package/Library/readline.php @@ -20,6 +20,7 @@ class readline ->configure( '--with-curses', '--enable-multibyte=yes', + '--disable-install-examples', ) ->make(); $lib->patchPkgconfPrefix(['readline.pc']); diff --git a/src/Package/Library/tidy.php b/src/Package/Library/tidy.php index 5e16b2d1..1f40c535 100644 --- a/src/Package/Library/tidy.php +++ b/src/Package/Library/tidy.php @@ -22,7 +22,8 @@ class tidy ->setBuildDir("{$lib->getSourceDir()}/build-dir") ->addConfigureArgs( '-DSUPPORT_CONSOLE_APP=OFF', - '-DBUILD_SHARED_LIB=OFF' + '-DBUILD_SHARED_LIB=OFF', + '-DSUPPORT_LOCALIZATIONS=OFF', ); if (version_compare(get_cmake_version(), '4.0.0', '>=')) { $cmake->addConfigureArgs('-DCMAKE_POLICY_VERSION_MINIMUM=3.5'); @@ -38,7 +39,8 @@ class tidy ->setBuildDir("{$lib->getSourceDir()}/build-dir") ->addConfigureArgs( '-DSUPPORT_CONSOLE_APP=OFF', - '-DBUILD_SHARED_LIB=OFF' + '-DBUILD_SHARED_LIB=OFF', + '-DSUPPORT_LOCALIZATIONS=OFF', )->build(); // rename tidy_static.lib to tidy_a.lib diff --git a/src/Package/Library/unixodbc.php b/src/Package/Library/unixodbc.php index e482e68b..9048acf6 100644 --- a/src/Package/Library/unixodbc.php +++ b/src/Package/Library/unixodbc.php @@ -35,6 +35,7 @@ class unixodbc extends LibraryPackage '--with-included-ltdl', "--sysconfdir={$sysconf_selector}", '--enable-gui=no', + '--enable-readline=no', ) ->make(); $this->patchPkgconfPrefix(['odbc.pc', 'odbccr.pc', 'odbcinst.pc']); diff --git a/src/Package/Library/xz.php b/src/Package/Library/xz.php index 44a20090..4671c77d 100644 --- a/src/Package/Library/xz.php +++ b/src/Package/Library/xz.php @@ -22,6 +22,11 @@ class xz ->configure( '--disable-scripts', '--disable-doc', + '--disable-xz', + '--disable-xzdec', + '--disable-lzmadec', + '--disable-lzmainfo', + '--disable-lzma-links', '--with-libiconv', '--bindir=/tmp/xz', // xz binary will corrupt `tar` command, that's really strange. ) diff --git a/src/Package/Library/zstd.php b/src/Package/Library/zstd.php index a5df737e..a038e6a6 100644 --- a/src/Package/Library/zstd.php +++ b/src/Package/Library/zstd.php @@ -14,16 +14,20 @@ use StaticPHP\Util\FileSystem; #[Library('zstd')] class zstd { + private const array DISABLE_ARGS = [ + '-DZSTD_BUILD_STATIC=ON', + '-DZSTD_BUILD_SHARED=OFF', + '-DZSTD_BUILD_PROGRAMS=OFF', + '-DZSTD_BUILD_TESTS=OFF', + ]; + #[BuildFor('Windows')] public function buildWin(LibraryPackage $package): void { WindowsCMakeExecutor::create($package) ->setWorkingDir("{$package->getSourceDir()}/build/cmake") ->setBuildDir("{$package->getSourceDir()}/build/cmake/build") - ->addConfigureArgs( - '-DZSTD_BUILD_STATIC=ON', - '-DZSTD_BUILD_SHARED=OFF', - ) + ->addConfigureArgs(...self::DISABLE_ARGS) ->build(); FileSystem::copy($package->getLibDir() . '\zstd_static.lib', $package->getLibDir() . '/zstd.lib'); FileSystem::copy($package->getLibDir() . '\zstd_static.lib', $package->getLibDir() . '/libzstd.lib'); @@ -35,10 +39,7 @@ class zstd { UnixCMakeExecutor::create($lib) ->setBuildDir("{$lib->getSourceDir()}/build/cmake/build") - ->addConfigureArgs( - '-DZSTD_BUILD_STATIC=ON', - '-DZSTD_BUILD_SHARED=OFF', - ) + ->addConfigureArgs(...self::DISABLE_ARGS) ->build(); $lib->patchPkgconfPrefix(['libzstd.pc'], PKGCONF_PATCH_PREFIX); diff --git a/src/Package/Target/curl.php b/src/Package/Target/curl.php index 3117a8cd..35898254 100644 --- a/src/Package/Target/curl.php +++ b/src/Package/Target/curl.php @@ -43,6 +43,8 @@ class curl '-DZSTD_LIBRARY=zstd_static.lib', '-DBUILD_TESTING=OFF', '-DBUILD_EXAMPLES=OFF', + '-DBUILD_LIBCURL_DOCS=OFF', + '-DENABLE_CURL_MANUAL=OFF', '-DUSE_LIBIDN2=OFF', '-DCURL_USE_LIBPSL=OFF', '-DUSE_WINDOWS_SSPI=ON', @@ -81,6 +83,9 @@ class curl ->addConfigureArgs( '-DBUILD_CURL_EXE=ON', '-DBUILD_LIBCURL_DOCS=OFF', + '-DBUILD_TESTING=OFF', + '-DBUILD_EXAMPLES=OFF', + '-DENABLE_CURL_MANUAL=OFF', '-DOPENSSL_ROOT_DIR=' . BUILD_ROOT_PATH, ) ->build();