diff --git a/config/ext.json b/config/ext.json index 3ee4cd32c..37660339c 100644 --- a/config/ext.json +++ b/config/ext.json @@ -3,6 +3,14 @@ "type": "external", "source": "apcu" }, + "ardillo": { + "type": "external", + "source": "ardillo", + "arg-type": "enable", + "lib-depends": [ + "libui-ng" + ] + }, "bcmath": { "type": "builtin" }, diff --git a/config/lib.json b/config/lib.json index d9400b768..91ea1f335 100644 --- a/config/lib.json +++ b/config/lib.json @@ -294,6 +294,17 @@ "zlib" ] }, + "libui-ng": { + "source": "ardillo", + "static-libs-unix": [ + "libui.a", + "libcmocka.a" + ], + "frameworks": [ + "CoreFoundation", + "AppKit" + ] + }, "libuv": { "source": "libuv", "static-libs-unix": [ diff --git a/config/source.json b/config/source.json index b62ac3347..6827e3528 100644 --- a/config/source.json +++ b/config/source.json @@ -16,6 +16,15 @@ "path": "LICENSE" } }, + "ardillo": { + "type": "git", + "rev": "master", + "url": "https://github.com/ardillo-php/ext.git", + "license": { + "type": "text", + "text": "NO LICENSE FILE" + } + }, "brotli": { "type": "ghtar", "repo": "google/brotli", diff --git a/src/SPC/builder/extension/ardillo.php b/src/SPC/builder/extension/ardillo.php new file mode 100644 index 000000000..10d2b5ac8 --- /dev/null +++ b/src/SPC/builder/extension/ardillo.php @@ -0,0 +1,31 @@ +cd(SOURCE_PATH . '/ardillo/libui-ng') + ->exec('meson setup --default-library=static --prefix=' . BUILD_ROOT_PATH . ' build') + ->exec('ninja -C build install'); + } +} diff --git a/src/SPC/doctor/item/LinuxToolCheckList.php b/src/SPC/doctor/item/LinuxToolCheckList.php index f57f01ce5..0c1cb83a9 100644 --- a/src/SPC/doctor/item/LinuxToolCheckList.php +++ b/src/SPC/doctor/item/LinuxToolCheckList.php @@ -21,7 +21,7 @@ class LinuxToolCheckList 'tar', 'unzip', 'gzip', 'bzip2', 'cmake', 'gcc', 'g++', 'patch', 'binutils-gold', - 'libtoolize', + 'libtoolize', 'meson', ]; public const TOOLS_DEBIAN = [ @@ -29,7 +29,7 @@ class LinuxToolCheckList 'git', 'autoconf', 'automake', 'tar', 'unzip', 'gzip', 'bzip2', 'cmake', 'patch', - 'xz', 'libtoolize', + 'xz', 'libtoolize', 'meson', ]; public const TOOLS_RHEL = [ @@ -37,7 +37,7 @@ class LinuxToolCheckList 'git', 'autoconf', 'automake', 'tar', 'unzip', 'gzip', 'gcc', 'bzip2', 'cmake', 'patch', - 'xz', + 'xz', 'meson', ]; /** @noinspection PhpUnused */ diff --git a/src/SPC/doctor/item/MacOSToolCheckList.php b/src/SPC/doctor/item/MacOSToolCheckList.php index 9f43e8fb6..f0a916e21 100644 --- a/src/SPC/doctor/item/MacOSToolCheckList.php +++ b/src/SPC/doctor/item/MacOSToolCheckList.php @@ -31,6 +31,7 @@ class MacOSToolCheckList 'gzip', 'bzip2', 'cmake', + 'meson', ]; #[AsCheckItem('if homebrew has installed', limit_os: 'Darwin', level: 998)] diff --git a/src/SPC/doctor/item/OSCheckList.php b/src/SPC/doctor/item/OSCheckList.php index eef30f60f..1b7dba421 100644 --- a/src/SPC/doctor/item/OSCheckList.php +++ b/src/SPC/doctor/item/OSCheckList.php @@ -21,6 +21,6 @@ public function checkOS(): ?CheckResult } $distro = PHP_OS_FAMILY === 'Linux' ? (' ' . SystemUtil::getOSRelease()['dist']) : ''; $known_distro = PHP_OS_FAMILY === 'Linux' && in_array(SystemUtil::getOSRelease()['dist'], SystemUtil::getSupportedDistros()); - return CheckResult::ok(PHP_OS_FAMILY . ' ' . php_uname('m') . $distro . ', supported' . ($known_distro ? '' : ' (but not tested on this distro)')); + return CheckResult::ok(PHP_OS_FAMILY . ' ' . php_uname('m') . $distro . ', supported' . ($known_distro && PHP_OS_FAMILY === 'Linux' ? '' : ' (but not tested on this distro)')); } } diff --git a/src/globals/test-extensions.php b/src/globals/test-extensions.php index 32bbd0825..f8b24586c 100644 --- a/src/globals/test-extensions.php +++ b/src/globals/test-extensions.php @@ -13,7 +13,8 @@ // If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`). $extensions = match (PHP_OS_FAMILY) { - 'Linux', 'Darwin' => '', + 'Linux' => '', + 'Darwin' => 'ardillo', 'Windows' => 'mbstring,openssl', }; @@ -27,7 +28,7 @@ // You can use `common`, `bulk`, `minimal` or `none`. // note: combination is only available for *nix platform. Windows must use `none` combination $base_combination = match (PHP_OS_FAMILY) { - 'Linux', 'Darwin' => 'bulk', + 'Linux', 'Darwin' => 'common', 'Windows' => 'none', };