فهرست منبع

liba52: add package

star9029 1 سال پیش
والد
کامیت
f824055f8f
2فایلهای تغییر یافته به همراه106 افزوده شده و 0 حذف شده
  1. 56 0
      packages/l/liba52/port/xmake.lua
  2. 50 0
      packages/l/liba52/xmake.lua

+ 56 - 0
packages/l/liba52/port/xmake.lua

@@ -0,0 +1,56 @@
+option("tools", {default = false})
+
+add_rules("mode.debug", "mode.release")
+
+add_includedirs("include")
+if is_plat("windows", "mingw") and (not is_subhost("msys")) then
+    add_includedirs("vc++")
+end
+
+if is_plat("windows") then
+    add_requires("strings_h")
+end
+
+rule("tools")
+    on_load(function (target)
+        if not get_config("tools") then
+            target:set("enabled", false)
+            return
+        end
+
+        target:add("kind", "binary")
+        target:add("files", "src/getopt.c")
+        target:add("includedirs", "src")
+        target:add("deps", "a52")
+        if target:is_plat("windows") then
+            target:add("packages", "strings_h")
+        end
+    end)
+
+target("a52")
+    set_kind("$(kind)")
+    add_files("liba52/*.c", "libao/*.c")
+    add_headerfiles(
+        "include/a52.h",
+        "include/attributes.h",
+        "include/audio_out.h",
+        "include/mm_accel.h", {prefixdir = "a52dec"}
+    )
+
+    if is_plat("windows", "mingw") then
+        add_syslinks("winmm")
+    elseif is_plat("linux", "bsd") then
+        add_syslinks("m")
+    end
+
+    if is_plat("windows") and is_kind("shared") then
+        add_rules("utils.symbols.export_all")
+    end
+
+target("a52dec")
+    add_rules("tools")
+    add_files("src/a52dec.c", "src/gettimeofday.c")
+
+target("extract_a52")
+    add_rules("tools")
+    add_files("src/extract_a52.c")

+ 50 - 0
packages/l/liba52/xmake.lua

@@ -0,0 +1,50 @@
+package("liba52")
+    set_homepage("https://pagure.io/libaio")
+    set_description("Library for decoding ATSC A/52 (AC-3) audio streams")
+    set_license("GPL-2.0")
+
+    add_urls("https://git.adelielinux.org/community/a52dec/-/archive/$(version)/a52dec-$(version).tar.bz2",
+             "https://git.adelielinux.org/community/a52dec.git",
+             "https://code.videolan.org/videolan/liba52.git",
+             "https://github.com/Distrotech/a52dec.git")
+
+    add_versions("v0.8.0", "d4f26685d32a8c85f86a5cb800554160fb85400298a0a27151c3d1e63a170943")
+
+    add_configs("tools", {description = "Build tools", default = false, type = "boolean"})
+
+    if is_plat("mingw") and is_subhost("msys") then
+        add_extsources("pacman::a52dec")
+    elseif is_plat("linux") then
+        add_extsources("pacman::a52dec", "apt::liba52-dev")
+    elseif is_plat("macosx") then
+        add_extsources("brew::a52dec")
+    end
+
+    if is_plat("windows", "mingw") then
+        add_syslinks("winmm")
+    elseif is_plat("linux", "bsd") then
+        add_syslinks("m")
+    end
+
+    if not (is_plat("windows") or (is_plat("mingw") and is_subhost("msys"))) then
+        add_deps("autoconf", "automake", "libtool", "m4")
+    end
+
+    on_load("windows", function (package)
+        if package:config("tools") then
+            package:add("deps", "strings_h", {private = true})
+        end
+    end)
+
+    on_install(function (package)
+        if not (is_plat("windows") or (is_plat("mingw") and is_subhost("msys"))) then
+            -- Generate config.h by autotools
+            os.vrun("./configure")
+        end
+        os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
+        import("package.tools.xmake").install(package, {tools = package:config("tools")})
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("a52_init", {includes = {"inttypes.h", "a52dec/a52.h"}}))
+    end)