|
@@ -3,8 +3,8 @@ package("libpng")
|
|
|
set_description("The official PNG reference library")
|
|
|
set_license("libpng-2.0")
|
|
|
|
|
|
- add_urls("https://github.com/glennrp/libpng/archive/refs/tags/$(version).tar.gz")
|
|
|
- add_urls("https://github.com/glennrp/libpng.git")
|
|
|
+ add_urls("https://github.com/glennrp/libpng/archive/refs/tags/$(version).tar.gz",
|
|
|
+ "https://github.com/glennrp/libpng.git")
|
|
|
|
|
|
add_versions("v1.6.47", "631a4c58ea6c10c81f160c4b21fa8495b715d251698ebc2552077e8450f30454")
|
|
|
add_versions("v1.6.46", "767b01936f9620d4ab4cdf6ec348f6526f861f825648b610b1d604167dc738d2")
|
|
@@ -16,6 +16,7 @@ package("libpng")
|
|
|
add_versions("v1.6.36", "5bef5a850a9255365a2dc344671b7e9ef810de491bd479c2506ac3c337e2d84f")
|
|
|
add_versions("v1.6.35", "6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210")
|
|
|
add_versions("v1.6.34", "e45ce5f68b1d80e2cb9a2b601605b374bdf51e1798ef1c2c2bd62131dfcf9eef")
|
|
|
+ add_versions("v1.2.56", "dadb07d7d96c20f2b53b923b582b078821423f356c0bd52d9a7c14e5e2eafb87")
|
|
|
|
|
|
add_deps("zlib")
|
|
|
|
|
@@ -32,12 +33,18 @@ package("libpng")
|
|
|
end
|
|
|
|
|
|
on_install(function (package)
|
|
|
- io.writefile("xmake.lua", [[
|
|
|
- add_rules("mode.debug", "mode.release")
|
|
|
- add_requires("zlib")
|
|
|
- target("png")
|
|
|
- set_kind("$(kind)")
|
|
|
- add_files("*.c|example.c|pngtest.c")
|
|
|
+ local src_include
|
|
|
+ if package:version() and package:version():le("v1.2.56") then
|
|
|
+ src_include = [[
|
|
|
+ add_defines("LIBPNG_NO_MMX")
|
|
|
+ add_defines("PNG_NO_MMX_CODE")
|
|
|
+ if is_plat("windows") then
|
|
|
+ add_defines("PNG_NO_MODULEDEF")
|
|
|
+ add_defines("_CRT_SECURE_NO_DEPRECATE")
|
|
|
+ end
|
|
|
+ ]]
|
|
|
+ else
|
|
|
+ src_include = [[
|
|
|
if is_arch("x86", "x64", "i386", "x86_64") then
|
|
|
add_files("intel/*.c")
|
|
|
add_defines("PNG_INTEL_SSE_OPT=1")
|
|
@@ -58,19 +65,27 @@ package("libpng")
|
|
|
add_files("powerpc/*.c")
|
|
|
add_defines("PNG_POWERPC_VSX_OPT=2")
|
|
|
end
|
|
|
+ ]]
|
|
|
+ if package:is_plat("android") and package:is_arch("armeabi-v7a") then
|
|
|
+ io.replace("arm/filter_neon.S", ".func", ".hidden", {plain = true})
|
|
|
+ io.replace("arm/filter_neon.S", ".endfunc", "", {plain = true})
|
|
|
+ end
|
|
|
+ os.cp("scripts/pnglibconf.h.prebuilt", "pnglibconf.h")
|
|
|
+ end
|
|
|
+ io.writefile("xmake.lua", format([[
|
|
|
+ add_rules("mode.debug", "mode.release")
|
|
|
+ add_requires("zlib")
|
|
|
+ target("png")
|
|
|
+ set_kind("$(kind)")
|
|
|
+ add_files("*.c|example.c|pngtest.c")
|
|
|
+ %s
|
|
|
add_headerfiles("*.h")
|
|
|
add_packages("zlib")
|
|
|
if is_kind("shared") and is_plat("windows") then
|
|
|
add_defines("PNG_BUILD_DLL")
|
|
|
end
|
|
|
- ]])
|
|
|
- local configs = {}
|
|
|
- if package:is_plat("android") and package:is_arch("armeabi-v7a") then
|
|
|
- io.replace("arm/filter_neon.S", ".func", ".hidden", {plain = true})
|
|
|
- io.replace("arm/filter_neon.S", ".endfunc", "", {plain = true})
|
|
|
- end
|
|
|
- os.cp("scripts/pnglibconf.h.prebuilt", "pnglibconf.h")
|
|
|
- import("package.tools.xmake").install(package, configs)
|
|
|
+ ]], src_include))
|
|
|
+ import("package.tools.xmake").install(package)
|
|
|
end)
|
|
|
|
|
|
on_test(function (package)
|