浏览代码

Enable fontconfig for cairo (#811)

Kelvin Zhang 3 年之前
父节点
当前提交
2506dff973

+ 10 - 5
packages/c/cairo/xmake.lua

@@ -12,10 +12,13 @@ package("cairo")
         add_deps("pkgconf")
     end
 
+    add_includedirs("include", "include/cairo")
+
     add_patches("2021.10.07", path.join(os.scriptdir(), "patches", "2021.10.07", "macosx.patch"), "8f47e272eb9112e0592b2fcf816fe225c6540a9298dbddc38543ae2fc9fe4e6d")
 
-    if is_plat("linux") or is_plat("macosx") then
+    if is_plat("linux", "macosx") then
         add_syslinks("pthread")
+        add_deps("fontconfig")
     end
 
     if is_plat("windows") then
@@ -34,8 +37,13 @@ package("cairo")
         local configs = {
             "-Dtests=disabled",
             "-Dgtk_doc=false",
-            "-Dfontconfig=disabled",
+            "-Dfreetype=enabled",
             "-Dgtk2-utils=disabled"}
+        if package:is_plat("macosx") or package:is_plat("linux") then
+            table.insert(configs, "-Dfontconfig=enabled")
+        else
+            table.insert(configs, "-Dfontconfig=disabled")
+        end
         table.insert(configs, "-Ddebug=" .. (package:debug() and "true" or "false"))
         table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
         io.replace("meson.build", "subdir('fuzzing')", "", {plain = true})
@@ -43,9 +51,6 @@ package("cairo")
         io.replace("meson.build", "fallback: ['fontconfig', 'fontconfig_dep'],", "", {plain = true})
         io.replace("meson.build", "'CoreFoundation'", "'CoreFoundation', 'Foundation'", {plain = true})
         io.replace("meson.build", "subdir('util')", "", {plain = true})
-        io.replace("src/meson.build", ", subdir: 'cairo'", "", {plain = true})
-        io.replace("util/cairo-gobject/meson.build", ", subdir: 'cairo'", "", {plain = true})
-        io.replace("util/cairo-script/meson.build", ", subdir: 'cairo'", "", {plain = true})
 
         import("package.tools.meson").install(package, configs)
     end)

+ 11 - 21
packages/f/fontconfig/xmake.lua

@@ -6,8 +6,10 @@ package("fontconfig")
     set_urls("https://www.freedesktop.org/software/fontconfig/release/fontconfig-$(version).tar.gz")
     add_versions("2.13.1", "9f0d852b39d75fc655f9f53850eb32555394f36104a044bb2b2fc9e66dbbfa7f")
     add_versions("2.13.93", "0f302a18ee52dde0793fe38b266bf269dfe6e0c0ae140e30d72c6cca5dc08db5")
+    add_versions("2.13.94",
+    "246d1640a7e54fba697b28e4445f4d9eb63dda1b511d19986249368ee7191882")
 
-    add_deps("pkg-config", "freetype >=2.9", "expat")
+    add_deps("meson", "pkg-config", "freetype >=2.9", "expat")
     add_deps("python 3.x", {kind = "binary"})
     if is_plat("macosx") then
         add_deps("gettext")
@@ -21,26 +23,14 @@ package("fontconfig")
                           "2abdff214b99f2d074170e6512b0149cc858ea26cd930690aa6b4ccea2c549ef")
 
     on_install("linux", "macosx", function (package)
-        import("package.tools.autoconf")
-        local font_dirs = {}
-        if is_plat("macosx") then
-            table.insert(font_dirs, "/System/Library/Fonts")
-            table.insert(font_dirs, "/Library/Fonts")
-            table.insert(font_dirs, "~/Library/Fonts")
-        end
-        local configs = {"--disable-dependency-tracking", "--disable-silent-rules", "--enable-static", "--disable-docs"}
-        if #font_dirs > 0 then
-            table.insert(configs, "--with-add-fonts=" .. table.concat(font_dirs, ','))
-        end
-        local envs = autoconf.buildenvs(package)
-        if package:is_plat("linux") then
-            envs.UUID_CFLAGS = "-I" .. package:dep("util-linux"):installdir("include")
-        end
-        table.insert(configs, "--enable-shared=no")
-        if package:config("pic") ~= false then
-            table.insert(configs, "--with-pic")
-        end
-        autoconf.install(package, configs, {envs = envs})
+        local configs = {
+            "-Dtests=disabled",
+            "-Dtools=disabled",
+            "-Ddoc=disabled"}
+        table.insert(configs, "-Ddebug=" .. (package:debug() and "true" or "false"))
+        table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
+
+        import("package.tools.meson").install(package, configs)
     end)
 
     on_test(function (package)

+ 4 - 0
packages/g/gperf/xmake.lua

@@ -8,6 +8,10 @@ package("gperf")
              "https://ftpmirror.gnu.org/gperf/gperf-$(version).tar.gz")
     add_versions("3.1", "588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2")
 
+    if is_plat("linux") then
+        add_extsources("apt::gperf")
+    end
+
     on_install("macosx", "linux", function (package)
         import("package.tools.autoconf").install(package)
     end)

+ 6 - 0
packages/h/harfbuzz/xmake.lua

@@ -16,6 +16,9 @@ package("harfbuzz")
 
     add_deps("meson")
     add_includedirs("include", "include/harfbuzz")
+    if is_plat("macosx") then
+        add_frameworks("CoreText", "CoreFoundation", "CoreGraphics")
+    end
     on_load("windows", "linux", "macosx", function (package)
         if package:config("icu") then
             package:add("deps", "icu4c")
@@ -29,6 +32,9 @@ package("harfbuzz")
         import("package.tools.meson")
 
         local configs = {"-Dtests=disabled", "-Ddocs=disabled", "-Dbenchmark=disabled", "-Dcairo=disabled", "-Dglib=disabled", "-Dgobject=disabled"}
+        if package:is_plat("macosx") then
+            table.insert(configs, "-Dcoretext=enabled")
+        end
         table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
         table.insert(configs, "-Dicu=" .. (package:config("icu") and "enabled" or "disabled"))
         table.insert(configs, "-Dfreetype=" .. (package:config("freetype") and "enabled" or "disabled"))

+ 1 - 1
packages/p/pixman/xmake.lua

@@ -8,7 +8,7 @@ package("pixman")
 
     add_deps("meson", "ninja")
 
-    add_includedirs("include/pixman-1")
+    add_includedirs("include", "include/pixman-1")
 
     on_install("macosx", "linux", "windows", function (package)
         local configs = {

+ 4 - 0
packages/u/util-linux/xmake.lua

@@ -17,6 +17,10 @@ package("util-linux")
         add_deps("ncurses", "zlib")
     end
 
+    if is_plat("linux") then
+        add_extsources("apt::util-linux")
+    end
+
     add_configs("ipcs",               { description = "Enable ipcs.", default = false, type = "boolean"})
     add_configs("ipcrm",              { description = "Enable ipcrm.", default = false, type = "boolean"})
     add_configs("wall",               { description = "Enable wall.", default = false, type = "boolean"})