Browse Source

add bzip2 and xz

ruki 6 years ago
parent
commit
40c0751996
3 changed files with 63 additions and 10 deletions
  1. 30 0
      packages/b/bzip2/xmake.lua
  2. 12 10
      packages/f/ffmpeg/xmake.lua
  3. 21 0
      packages/x/xz/xmake.lua

+ 30 - 0
packages/b/bzip2/xmake.lua

@@ -0,0 +1,30 @@
+package("bzip2")
+
+    set_homepage("https://en.wikipedia.org/wiki/Bzip2")
+    set_description("Freely available high-quality data compressor.")
+
+    set_urls("https://ftp.osuosl.org/pub/clfs/conglomeration/bzip2/bzip2-$(version).tar.gz",
+             "https://fossies.org/linux/misc/bzip2-$(version).tar.gz")
+    add_versions("1.0.6", "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd")
+
+    on_load("windows", function (package)
+        package:addenv("PATH", "bin")
+        package:add("links", "libbz2")
+    end)
+
+    on_install("windows", function (package)
+        io.gsub("makefile.msc", "%-MD", "-" .. package:config("vs_runtime"))
+        os.vrunv("nmake", {"-f", "makefile.msc"})
+        os.cp("libbz2.lib", package:installdir("lib"))
+        os.cp("*.h", package:installdir("include"))
+        os.cp("*.exe", package:installdir("bin"))
+    end)
+
+    on_install("macosx", "linux", function (package)
+        os.vrunv("make", {"install", "PREFIX=" .. package:installdir()})
+    end)
+
+    on_test(function (package)
+        os.vrun("bzip2 --help")
+        assert(package:has_cfuncs("BZ2_bzCompressInit", {includes = "bzlib.h"}))
+    end)

+ 12 - 10
packages/f/ffmpeg/xmake.lua

@@ -9,12 +9,15 @@ package("ffmpeg")
     add_versions("home:4.0.2", "346c51735f42c37e0712e0b3d2f6476c86ac15863e4445d9e823fe396420d056")
     add_versions("github:4.0.2", "4df1ef0bf73b7148caea1270539ef7bd06607e0ea8aa2fbf1bb34062a097f026")
 
-    add_configs("ffmpeg",  {description = "Enable ffmpeg program.", default = false, type = "boolean"})
-    add_configs("ffplay",  {description = "Enable ffplay program.", default = false, type = "boolean"})
-    add_configs("zlib",    {description = "Enable zlib compression library.", default = false, type = "boolean"})
-    add_configs("libx264", {description = "Enable libx264 decoder.", default = false, type = "boolean"})
-    add_configs("libx265", {description = "Enable libx265 decoder.", default = false, type = "boolean"})
-    add_configs("iconv",   {description = "Enable libiconv library.", default = false, type = "boolean"})
+    add_configs("ffmpeg",           { description = "Enable ffmpeg program.", default = false, type = "boolean"})
+    add_configs("ffplay",           { description = "Enable ffplay program.", default = false, type = "boolean"})
+    add_configs("zlib",             { description = "Enable zlib compression library.", default = false, type = "boolean"})
+    add_configs("lzma",             { description = "Enable liblzma compression library.", default = false, type = "boolean"})
+    add_configs("bzlib",            { description = "Enable bzlib compression library.", default = false, type = "boolean"})
+    add_configs("libx264",          { description = "Enable libx264 decoder.", default = false, type = "boolean"})
+    add_configs("libx265",          { description = "Enable libx265 decoder.", default = false, type = "boolean"})
+    add_configs("iconv",            { description = "Enable libiconv library.", default = false, type = "boolean"})
+    add_configs("hardcoded-tables", { description = "Enable hardcoded tables.", default = true, type = "boolean"})
 
     add_links("avfilter", "avdevice", "avformat", "avcodec", "swscale", "swresample", "avutil")
     if is_plat("macosx") then
@@ -23,6 +26,8 @@ package("ffmpeg")
 
     on_load(function (package)
         local configdeps = {zlib    = "zlib",
+                            bzlib   = "bzip2",
+                            lzma    = "xz",
                             libx264 = "x264",
                             libx265 = "x265",
                             iconv   = "libiconv"}
@@ -34,11 +39,8 @@ package("ffmpeg")
     end)
   
     on_install("linux", "macosx", function (package)
-        local configs = {"--disable-lzma",
-                         "--disable-bzlib",
-                         "--enable-gpl",
+        local configs = {"--enable-gpl",
                          "--enable-version3",
-                         "--enable-hardcoded-tables",
                          "--enable-avresample"}
         if is_plat("macosx") and macos.version():ge("10.8") then
             table.insert(configs, "--enable-videotoolbox")

+ 21 - 0
packages/x/xz/xmake.lua

@@ -0,0 +1,21 @@
+package("xz")
+
+    set_homepage("https://tukaani.org/xz/")
+    set_description("General-purpose data compression with high compression ratio.")
+
+    set_urls("https://downloads.sourceforge.net/project/lzmautils/xz-$(version).tar.gz",
+             "https://tukaani.org/xz/xz-$(version).tar.gz")
+    add_versions("5.2.4", "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145")
+
+    on_install("macosx", "linux", function (package)
+        local configs = {"--disable-dependency-tracking", "--disable-silent-rules"}
+        if package:debug() then
+            table.insert(configs, "--enable-debug")
+        end
+        import("package.tools.autoconf").install(package, configs)
+    end)
+
+    on_test(function (package)
+        os.vrun("xz --version")
+        assert(package:has_cfuncs("lzma_code", {includes = "lzma.h"}))
+    end)