Sfoglia il codice sorgente

libpng: add older version (#6834)

* libpng: add older version

* code too long

* fix windows shared symbol unresolved

* clean code

---------

Co-authored-by: star9029 <[email protected]>
Elite-stay 5 mesi fa
parent
commit
df2791eedb
1 ha cambiato i file con 31 aggiunte e 16 eliminazioni
  1. 31 16
      packages/l/libpng/xmake.lua

+ 31 - 16
packages/l/libpng/xmake.lua

@@ -3,8 +3,8 @@ package("libpng")
     set_description("The official PNG reference library")
     set_description("The official PNG reference library")
     set_license("libpng-2.0")
     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.47", "631a4c58ea6c10c81f160c4b21fa8495b715d251698ebc2552077e8450f30454")
     add_versions("v1.6.46", "767b01936f9620d4ab4cdf6ec348f6526f861f825648b610b1d604167dc738d2")
     add_versions("v1.6.46", "767b01936f9620d4ab4cdf6ec348f6526f861f825648b610b1d604167dc738d2")
@@ -16,6 +16,7 @@ package("libpng")
     add_versions("v1.6.36", "5bef5a850a9255365a2dc344671b7e9ef810de491bd479c2506ac3c337e2d84f")
     add_versions("v1.6.36", "5bef5a850a9255365a2dc344671b7e9ef810de491bd479c2506ac3c337e2d84f")
     add_versions("v1.6.35", "6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210")
     add_versions("v1.6.35", "6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210")
     add_versions("v1.6.34", "e45ce5f68b1d80e2cb9a2b601605b374bdf51e1798ef1c2c2bd62131dfcf9eef")
     add_versions("v1.6.34", "e45ce5f68b1d80e2cb9a2b601605b374bdf51e1798ef1c2c2bd62131dfcf9eef")
+    add_versions("v1.2.56", "dadb07d7d96c20f2b53b923b582b078821423f356c0bd52d9a7c14e5e2eafb87")
 
 
     add_deps("zlib")
     add_deps("zlib")
 
 
@@ -32,12 +33,18 @@ package("libpng")
     end
     end
 
 
     on_install(function (package)
     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
                 if is_arch("x86", "x64", "i386", "x86_64") then
                     add_files("intel/*.c")
                     add_files("intel/*.c")
                     add_defines("PNG_INTEL_SSE_OPT=1")
                     add_defines("PNG_INTEL_SSE_OPT=1")
@@ -58,19 +65,27 @@ package("libpng")
                     add_files("powerpc/*.c")
                     add_files("powerpc/*.c")
                     add_defines("PNG_POWERPC_VSX_OPT=2")
                     add_defines("PNG_POWERPC_VSX_OPT=2")
                 end
                 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_headerfiles("*.h")
                 add_packages("zlib")
                 add_packages("zlib")
                 if is_kind("shared") and is_plat("windows") then
                 if is_kind("shared") and is_plat("windows") then
                     add_defines("PNG_BUILD_DLL")
                     add_defines("PNG_BUILD_DLL")
                 end
                 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)
     end)
 
 
     on_test(function (package)
     on_test(function (package)