Files
static-php-cli/src/SPC/builder/unix/library/libjxl.php

44 lines
1.4 KiB
PHP
Raw Normal View History

2025-07-20 00:10:30 +07:00
<?php
declare(strict_types=1);
namespace SPC\builder\unix\library;
use SPC\toolchain\ToolchainManager;
use SPC\toolchain\ZigToolchain;
2025-07-20 00:10:30 +07:00
use SPC\util\executor\UnixCMakeExecutor;
use SPC\util\SPCTarget;
2025-07-20 00:10:30 +07:00
trait libjxl
{
protected function build(): void
{
if (ToolchainManager::getToolchainClass() === ZigToolchain::class) {
if (str_contains(getenv('SPC_TARGET'), '.2.')) {
throw new \RuntimeException('Zig toolchain does not support libjxl with target version.');
}
putenv('CC=gcc');
putenv('CXX=g++');
}
2025-07-20 00:10:30 +07:00
UnixCMakeExecutor::create($this)
2025-07-24 14:28:34 +07:00
->addConfigureArgs(
'-DJPEGXL_ENABLE_TOOLS=OFF',
'-DJPEGXL_ENABLE_EXAMPLES=OFF',
'-DJPEGXL_ENABLE_MANPAGES=OFF',
'-DJPEGXL_ENABLE_BENCHMARK=OFF',
'-DJPEGXL_ENABLE_PLUGINS=OFF',
'-DJPEGXL_ENABLE_SJPOEG=ON',
'-DJPEGXL_ENABLE_JNI=OFF',
'-DJPEGXL_ENABLE_TRANSCODE_JPEG=ON',
'-DJPEGXL_STATIC=' . (SPCTarget::isStatic() ? 'ON' : 'OFF'),
'-DJPEGXL_FORCE_SYSTEM_BROTLI=ON',
'-DBUILD_TESTING=OFF'
)
2025-07-20 00:10:30 +07:00
->build();
if (ToolchainManager::getToolchainClass() === ZigToolchain::class) {
putenv('CC=zig-cc');
putenv('CXX=zig-c++');
}
2025-07-20 00:10:30 +07:00
}
}