Browse Source

add tidy support

crazywhalecc 1 year ago
parent
commit
04f100da8b

+ 6 - 6
config/ext.json

@@ -278,11 +278,6 @@
             "sqlite"
         ]
     },
-    "rar": {
-        "type": "external",
-        "source": "rar",
-        "cpp-extension": true
-    },
     "pgsql": {
         "type": "builtin",
         "arg-type": "with-prefix",
@@ -311,6 +306,11 @@
             "aspell"
         ]
     },
+    "rar": {
+        "type": "external",
+        "source": "rar",
+        "cpp-extension": true
+    },
     "readline": {
         "type": "builtin",
         "arg-type": "with-prefix",
@@ -435,7 +435,7 @@
     },
     "tidy": {
         "type": "builtin",
-        "arg-type": "with",
+        "arg-type": "with-prefix",
         "lib-depends": [
             "tidy"
         ]

+ 6 - 0
config/lib.json

@@ -483,6 +483,12 @@
             "sqlite3ext.h"
         ]
     },
+    "tidy": {
+        "source": "tidy",
+        "static-libs-unix": [
+            "libtidy.a"
+        ]
+    },
     "xz": {
         "source": "xz",
         "static-libs-unix": [

+ 19 - 10
config/source.json

@@ -51,16 +51,6 @@
             "path": "LICENSE"
         }
     },
-    "rar": {
-        "type": "git",
-        "url": "https://github.com/static-php/php-rar.git",
-        "path": "php-src/ext/rar",
-        "rev": "issue-php82",
-        "license": {
-            "type": "file",
-            "path": "LICENSE"
-        }
-    },
     "ext-glfw": {
         "type": "git",
         "url": "https://github.com/mario-deluna/php-glfw",
@@ -412,6 +402,16 @@
             "path": "LICENSE"
         }
     },
+    "rar": {
+        "type": "git",
+        "url": "https://github.com/static-php/php-rar.git",
+        "path": "php-src/ext/rar",
+        "rev": "issue-php82",
+        "license": {
+            "type": "file",
+            "path": "LICENSE"
+        }
+    },
     "readline": {
         "type": "filelist",
         "url": "https://ftp.gnu.org/pub/gnu/readline/",
@@ -469,6 +469,15 @@
             "path": "LICENSE"
         }
     },
+    "tidy": {
+        "type": "url",
+        "url": "https://github.com/htacg/tidy-html5/archive/refs/tags/5.8.0.tar.gz",
+        "filename": "tidy-html5.tgz",
+        "license": {
+            "type": "file",
+            "path": "README/LICENSE.md"
+        }
+    },
     "xlswriter": {
         "type": "url",
         "url": "https://pecl.php.net/get/xlswriter",

+ 12 - 0
src/SPC/builder/macos/library/tidy.php

@@ -0,0 +1,12 @@
+<?php
+
+declare(strict_types=1);
+
+namespace SPC\builder\macos\library;
+
+class tidy extends MacOSLibraryBase
+{
+    use \SPC\builder\unix\library\tidy;
+
+    public const NAME = 'tidy';
+}

+ 32 - 0
src/SPC/builder/unix/library/tidy.php

@@ -0,0 +1,32 @@
+<?php
+
+declare(strict_types=1);
+
+namespace SPC\builder\unix\library;
+
+use SPC\exception\FileSystemException;
+use SPC\exception\RuntimeException;
+use SPC\store\FileSystem;
+
+trait tidy
+{
+    /**
+     * @throws RuntimeException
+     * @throws FileSystemException
+     */
+    protected function build(): void
+    {
+        FileSystem::resetDir($this->source_dir . '/build-dir');
+        shell()->cd($this->source_dir . '/build-dir')
+            ->exec(
+                'cmake ' .
+                "{$this->builder->makeCmakeArgs()} " .
+                '-DBUILD_SHARED_LIB=OFF ' .
+                '-DSUPPORT_CONSOLE_APP=OFF ' .
+                '..'
+            )
+            ->exec("cmake --build . -j {$this->builder->concurrency}")
+            ->exec('make install DESTDIR=' . BUILD_ROOT_PATH);
+        $this->patchPkgconfPrefix(['tidy.pc']);
+    }
+}