From 45eaf149b878dd772af0c3d515d1c06c75c204e9 Mon Sep 17 00:00:00 2001 From: star9029 Date: Thu, 21 Dec 2023 21:02:12 +0800 Subject: [PATCH 1/9] gstreamer: add package --- packages/g/gstreamer/xmake.lua | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/g/gstreamer/xmake.lua diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua new file mode 100644 index 00000000000..d8a77a8cdd5 --- /dev/null +++ b/packages/g/gstreamer/xmake.lua @@ -0,0 +1,33 @@ +package("gstreamer") + set_homepage("https://gstreamer.freedesktop.org") + set_description("GStreamer is a development framework for creating applications like media players, video editors, streaming media broadcasters and so on") + set_license("LGPL-2.0-or-later") + + add_urls("https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$(version).tar.xz", {alias = "home"}) + -- add_urls("https://github.com/GStreamer/gstreamer/archive/refs/tags/$(version).tar.gz", {alias = "github"}) + + add_versions("home:1.22.8", "ad4e3db1771139b1db17b1afa7c05db083ae0100bd4da244b71f162dcce41bfc") + -- add_versions("github:1.22.8", "ebe085820a32f135d9a5a3442b2cb2238d8ce1d3bc66f4d6bfbc11d0873dbecc") + + add_deps("meson", "ninja") + add_deps("glib") + if is_plat("windows") then + add_deps("winflexbison") + else + add_deps("flex", "bison") + end + + on_install(function (package) + local configs = { + "-Dtools=disabled", + "-Dexamples=disabled", + "-Dbenchmarks=disabled", + "-Dtests=disabled", + } + table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static")) + import("package.tools.meson").install(package, configs) + end) + + on_test(function (package) + assert(package:has_cfuncs("gst_init", {includes = "gst/gst.h"})) + end) From 6fdd60f7dd6f563a614086dd76585098677dd418 Mon Sep 17 00:00:00 2001 From: star9029 Date: Thu, 21 Dec 2023 21:41:14 +0800 Subject: [PATCH 2/9] try shared glib --- packages/g/gstreamer/xmake.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index d8a77a8cdd5..676d6cd55e7 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -10,14 +10,14 @@ package("gstreamer") -- add_versions("github:1.22.8", "ebe085820a32f135d9a5a3442b2cb2238d8ce1d3bc66f4d6bfbc11d0873dbecc") add_deps("meson", "ninja") - add_deps("glib") + add_deps("glib", {configs = {shared = true}}) if is_plat("windows") then add_deps("winflexbison") else add_deps("flex", "bison") end - on_install(function (package) + on_install("windows", "macosx", "linux", "cross", function (package) local configs = { "-Dtools=disabled", "-Dexamples=disabled", From 61bcf01d12037c19f3d43e0b1464edfd23d6fa3b Mon Sep 17 00:00:00 2001 From: star9029 Date: Thu, 21 Dec 2023 22:05:06 +0800 Subject: [PATCH 3/9] fix includedirs --- packages/g/gstreamer/xmake.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index 676d6cd55e7..d0caf94c728 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -9,6 +9,14 @@ package("gstreamer") add_versions("home:1.22.8", "ad4e3db1771139b1db17b1afa7c05db083ae0100bd4da244b71f162dcce41bfc") -- add_versions("github:1.22.8", "ebe085820a32f135d9a5a3442b2cb2238d8ce1d3bc66f4d6bfbc11d0873dbecc") + if is_plat("linux") then + add_extsources("pacman::gstreamer", "apt::libgstreamer1.0-dev") + elseif is_plat("macosx") then + add_extsources("brew::gstreamer") + elseif is_plat("mingw") and is_subhost("msys") then + add_extsources("pacman::gstreamer") + end + add_deps("meson", "ninja") add_deps("glib", {configs = {shared = true}}) if is_plat("windows") then @@ -17,6 +25,8 @@ package("gstreamer") add_deps("flex", "bison") end + add_includedirs("gstreamer-1.0") + on_install("windows", "macosx", "linux", "cross", function (package) local configs = { "-Dtools=disabled", From f3025465364ca883fd22c88cf5b5571de7817a8b Mon Sep 17 00:00:00 2001 From: star9029 Date: Thu, 21 Dec 2023 22:30:28 +0800 Subject: [PATCH 4/9] fix libiconv --- packages/g/gstreamer/xmake.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index d0caf94c728..fd36ca53479 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -18,14 +18,14 @@ package("gstreamer") end add_deps("meson", "ninja") - add_deps("glib", {configs = {shared = true}}) + add_deps("glib") if is_plat("windows") then add_deps("winflexbison") else add_deps("flex", "bison") end - add_includedirs("gstreamer-1.0") + add_includedirs("include", "include/gstreamer-1.0") on_install("windows", "macosx", "linux", "cross", function (package) local configs = { @@ -35,7 +35,11 @@ package("gstreamer") "-Dtests=disabled", } table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static")) - import("package.tools.meson").install(package, configs) + local packagedeps = {} + if not package:dep("glib"):config("shared") then + table.insert(packagedeps, "libiconv") + end + import("package.tools.meson").install(package, configs, {packagedeps = packagedeps}) end) on_test(function (package) From fb8a4177655017a4050bbd2bd60361151832c15a Mon Sep 17 00:00:00 2001 From: star9029 Date: Thu, 21 Dec 2023 23:22:47 +0800 Subject: [PATCH 5/9] fix macosx libintl --- packages/g/gstreamer/xmake.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index fd36ca53479..4a044848d02 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -9,6 +9,8 @@ package("gstreamer") add_versions("home:1.22.8", "ad4e3db1771139b1db17b1afa7c05db083ae0100bd4da244b71f162dcce41bfc") -- add_versions("github:1.22.8", "ebe085820a32f135d9a5a3442b2cb2238d8ce1d3bc66f4d6bfbc11d0873dbecc") + add_configs("libunwind", {description = "Use libunwind to generate backtraces", default = false, type = "boolean"}) + if is_plat("linux") then add_extsources("pacman::gstreamer", "apt::libgstreamer1.0-dev") elseif is_plat("macosx") then @@ -27,6 +29,12 @@ package("gstreamer") add_includedirs("include", "include/gstreamer-1.0") + on_load(function (package) + if package:config("libunwind") then + package:add("deps", "libunwind") + end + end) + on_install("windows", "macosx", "linux", "cross", function (package) local configs = { "-Dtools=disabled", @@ -34,11 +42,16 @@ package("gstreamer") "-Dbenchmarks=disabled", "-Dtests=disabled", } + table.insert(configs, "-Dgst_debug=" .. (package:is_debug() and "true" or "false")) table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static")) + table.insert(configs, "-Dlibunwind=" .. (package:config("libunwind") and "true" or "false")) local packagedeps = {} if not package:dep("glib"):config("shared") then table.insert(packagedeps, "libiconv") end + if package:is_plat("macosx") then + table.insert(packagedeps, "libintl") + end import("package.tools.meson").install(package, configs, {packagedeps = packagedeps}) end) From e9eed80be6846910deaef43a8062c6dd3be1ceaf Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 22 Dec 2023 00:03:14 +0800 Subject: [PATCH 6/9] fix meson option --- packages/g/gstreamer/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index 4a044848d02..d49a89dcfef 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -44,7 +44,7 @@ package("gstreamer") } table.insert(configs, "-Dgst_debug=" .. (package:is_debug() and "true" or "false")) table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static")) - table.insert(configs, "-Dlibunwind=" .. (package:config("libunwind") and "true" or "false")) + table.insert(configs, "-Dlibunwind=" .. (package:config("libunwind") and "enabled" or "disabled")) local packagedeps = {} if not package:dep("glib"):config("shared") then table.insert(packagedeps, "libiconv") From 1b9691337d6a94bdf5e4c4ac7f46d9443da57882 Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 22 Dec 2023 22:48:18 +0800 Subject: [PATCH 7/9] fix windows setup --- packages/g/gstreamer/xmake.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index d49a89dcfef..4ab86f06ef6 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -52,6 +52,9 @@ package("gstreamer") if package:is_plat("macosx") then table.insert(packagedeps, "libintl") end + if package:is_plat("windows") then + table.insert(packagedeps, "glib") + end import("package.tools.meson").install(package, configs, {packagedeps = packagedeps}) end) From 8af250d6cd006e8693a54def22cc94f4bb31dde8 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sat, 20 Apr 2024 15:00:50 +0800 Subject: [PATCH 8/9] add pkgconf --- packages/g/gstreamer/xmake.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index 4ab86f06ef6..9083f4a75fd 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -4,11 +4,10 @@ package("gstreamer") set_license("LGPL-2.0-or-later") add_urls("https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$(version).tar.xz", {alias = "home"}) - -- add_urls("https://github.com/GStreamer/gstreamer/archive/refs/tags/$(version).tar.gz", {alias = "github"}) - add_versions("home:1.22.8", "ad4e3db1771139b1db17b1afa7c05db083ae0100bd4da244b71f162dcce41bfc") - -- add_versions("github:1.22.8", "ebe085820a32f135d9a5a3442b2cb2238d8ce1d3bc66f4d6bfbc11d0873dbecc") + add_versions("home:1.24.2", "9cafdd23bd180f1681c56cd3a6879a8497ccf24da6f422a6b6f356fa074a8481") + add_configs("tools", {description = "Build tools.", default = false, type = "boolean"}) add_configs("libunwind", {description = "Use libunwind to generate backtraces", default = false, type = "boolean"}) if is_plat("linux") then @@ -20,12 +19,12 @@ package("gstreamer") end add_deps("meson", "ninja") - add_deps("glib") if is_plat("windows") then - add_deps("winflexbison") + add_deps("pkgconf","winflexbison") else add_deps("flex", "bison") end + add_deps("glib") add_includedirs("include", "include/gstreamer-1.0") @@ -33,11 +32,13 @@ package("gstreamer") if package:config("libunwind") then package:add("deps", "libunwind") end + if not package:config("shared") then + package:add("defines", "GST_STATIC_COMPILATION") + end end) on_install("windows", "macosx", "linux", "cross", function (package) local configs = { - "-Dtools=disabled", "-Dexamples=disabled", "-Dbenchmarks=disabled", "-Dtests=disabled", @@ -45,16 +46,15 @@ package("gstreamer") table.insert(configs, "-Dgst_debug=" .. (package:is_debug() and "true" or "false")) table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static")) table.insert(configs, "-Dlibunwind=" .. (package:config("libunwind") and "enabled" or "disabled")) + table.insert(configs, "-Dtools=" .. (package:config("tools") and "enabled" or "disabled")) + local packagedeps = {} if not package:dep("glib"):config("shared") then table.insert(packagedeps, "libiconv") end - if package:is_plat("macosx") then + if package:is_plat("windows", "macosx") then table.insert(packagedeps, "libintl") end - if package:is_plat("windows") then - table.insert(packagedeps, "glib") - end import("package.tools.meson").install(package, configs, {packagedeps = packagedeps}) end) From bfa48bb488875628e9bbb08e33a32b27ae7dcdf9 Mon Sep 17 00:00:00 2001 From: star9029 Date: Mon, 22 Apr 2024 07:55:20 +0800 Subject: [PATCH 9/9] Update xmake.lua --- packages/g/gstreamer/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/g/gstreamer/xmake.lua b/packages/g/gstreamer/xmake.lua index 9083f4a75fd..48e63535907 100644 --- a/packages/g/gstreamer/xmake.lua +++ b/packages/g/gstreamer/xmake.lua @@ -20,7 +20,7 @@ package("gstreamer") add_deps("meson", "ninja") if is_plat("windows") then - add_deps("pkgconf","winflexbison") + add_deps("pkgconf", "winflexbison") else add_deps("flex", "bison") end