ソースを参照

improve zlib and libjpeg to support iphoneos and android

ruki 6 年 前
コミット
e1c95d5902
3 ファイル変更20 行追加4 行削除
  1. 6 2
      packages/l/libjpeg/xmake.lua
  2. 10 2
      packages/z/zlib/xmake.lua
  3. 4 0
      scripts/test.lua

+ 6 - 2
packages/l/libjpeg/xmake.lua

@@ -15,6 +15,10 @@ package("libjpeg")
         os.cp("libjpeg.lib", package:installdir("lib"))
     end)
 
-    on_install("macosx", "linux", function (package)
-        import("package.tools.autoconf").install(package)
+    on_install(function (package)
+        import("package.tools.autoconf").install(package, {"--enable-shared=no"})
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("jpeg_create_compress(0)", {includes = {"stdio.h", "jpeglib.h"}}))
     end)

+ 10 - 2
packages/z/zlib/xmake.lua

@@ -9,8 +9,8 @@ package("zlib")
     add_versions("1.2.10", "8d7e9f698ce48787b6e1c67e6bff79e487303e66077e25cb9784ac8835978017")
     add_versions("1.2.11", "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1")
 
-    on_install("macosx", "linux", function (package)
-        import("package.tools.autoconf").install(package)
+    on_install("linux", "macosx", function (package)
+        import("package.tools.autoconf").install(package, {"--static"})
     end)
 
     on_install("windows", function (package)
@@ -20,6 +20,14 @@ package("zlib")
         os.cp("*.h", package:installdir("include"))
     end)
 
+    on_install("iphoneos", "android", "cross", function (package)
+        import("package.tools.autoconf").configure(package, {host = "", "--static"})
+        io.gsub("Makefile", "\nAR=.-\n",      "\nAR=" .. (package:build_getenv("ar") or "") .. "\n")
+        io.gsub("Makefile", "\nARFLAGS=.-\n", "\nARFLAGS=cr\n")
+        io.gsub("Makefile", "\nRANLIB=.-\n",  "\nRANLIB=\n")
+        os.vrun("make install -j4")
+    end)
+
     on_test(function (package)
         assert(package:has_cfuncs("inflate", {includes = "zlib.h"}))
     end)

+ 4 - 0
scripts/test.lua

@@ -8,6 +8,7 @@ local options =
 ,   {'D', "diagnosis",  "k",  nil, "Enable diagnosis information." }
 ,   {'p', "plat",       "kv", nil, "Set the given platform."       }
 ,   {'a', "arch",       "kv", nil, "Set the given architecture."   }
+,   {nil, "ndk",        "kv", nil, "Set the android NDK directory."}
 ,   {nil, "packages",   "vs", nil, "The package list."             }
 }
 
@@ -54,6 +55,9 @@ function main(...)
     if argv.arch then
         table.insert(config_argv, "--arch=" .. argv.arch)
     end
+    if argv.ndk then
+        table.insert(config_argv, "--ndk=" .. argv.ndk)
+    end
     os.execv("xmake", config_argv)
     os.exec("xmake repo --add local-repo %s", repodir)
     os.exec("xmake repo -l")