43 lines
1.4 KiB
PHP
Raw Normal View History

2023-03-18 17:32:21 +08:00
<?php
declare(strict_types=1);
namespace SPC\builder\macos\library;
use SPC\exception\FileSystemException;
2023-03-18 17:32:21 +08:00
use SPC\exception\RuntimeException;
use SPC\store\FileSystem;
2023-03-18 17:32:21 +08:00
class libxml2 extends MacOSLibraryBase
{
public const NAME = 'libxml2';
/**
* @throws RuntimeException
* @throws FileSystemException
2023-03-18 17:32:21 +08:00
*/
protected function build(): void
2023-03-18 17:32:21 +08:00
{
2024-02-16 01:45:14 +08:00
$enable_zlib = $this->builder->getLib('zlib') ? ('ON -DZLIB_LIBRARY=' . BUILD_LIB_PATH . '/libz.a -DZLIB_INCLUDE_DIR=' . BUILD_INCLUDE_PATH) : 'OFF';
$enable_icu = $this->builder->getLib('icu') ? 'ON' : 'OFF';
2023-03-18 17:32:21 +08:00
$enable_xz = $this->builder->getLib('xz') ? 'ON' : 'OFF';
FileSystem::resetDir($this->source_dir . '/build');
shell()->cd($this->source_dir . '/build')
2023-04-03 20:47:24 +08:00
->exec(
2025-06-07 20:09:50 +07:00
"cmake {$this->builder->makeCmakeArgs()} " .
2023-04-03 20:47:24 +08:00
// '--debug-find ' .
'-DLIBXML2_WITH_ICONV=ON ' .
"-DLIBXML2_WITH_ZLIB={$enable_zlib} " .
"-DLIBXML2_WITH_ICU={$enable_icu} " .
2023-04-03 20:47:24 +08:00
"-DLIBXML2_WITH_LZMA={$enable_xz} " .
'-DLIBXML2_WITH_PYTHON=OFF ' .
'-DLIBXML2_WITH_PROGRAMS=OFF ' .
'-DLIBXML2_WITH_TESTS=OFF ' .
'..'
)
->exec("cmake --build . -j {$this->builder->concurrency}")
->exec('make install');
2023-03-18 17:32:21 +08:00
}
}