package("fontconfig")

    set_homepage("https://www.freedesktop.org/wiki/Software/fontconfig/")
    set_description("A library for configuring and customizing font access.")

    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_versions("2.14.0", "b8f607d556e8257da2f3616b4d704be30fd73bd71e367355ca78963f9a7f0434")
    add_versions("2.14.2", "3ba2dd92158718acec5caaf1a716043b5aa055c27b081d914af3ccb40dce8a55")

    -- fix the build issue with --enable-static
    add_patches("2.13.1", "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/8208f99fa1676c42bfd8d74de3e9dac5366c150c.diff",
                          "2abdff214b99f2d074170e6512b0149cc858ea26cd930690aa6b4ccea2c549ef")

    add_configs("nls", {description = "Enable Native Language Support (NLS)", default = false, type = "boolean"})

    add_deps("meson", "ninja", "freetype", "expat", "gperf")
    add_deps("python 3.x", {kind = "binary"})
    if is_plat("linux") then
        add_deps("pkg-config")
    end

    on_load("windows", "linux", "macosx", function (package)
        if package:config("nls") and not package:is_plat("linux") then
            package:add("deps", "libintl")
        end
        if package:is_plat("linux") and package:version():lt("2.13.91") then
            package:add("deps", "util-linux", {configs = {libuuid = true}})
            package:add("deps", "autoconf", "automake", "libtool", "bzip2")
        end
    end)

    on_install("windows", "linux", "macosx", function (package)
        if package:is_plat("windows") then
            io.replace("meson.build", "c_args = []", "c_args = ['-DXML_STATIC']", {plain = true})
        end
        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"))
        table.insert(configs, "-Dnls=" .. (package:config("nls") and "enabled" or "disabled"))
        import("package.tools.meson").install(package, configs)
    end)

    on_test(function (package)
        assert(package:has_cfuncs("FcInitLoadConfigAndFonts", {includes = "fontconfig/fontconfig.h"}))
    end)
