Browse Source

improve libjpeg (#645)

ruki 4 years ago
parent
commit
d1deb70ec5
1 changed files with 19 additions and 4 deletions
  1. 19 4
      packages/l/libjpeg/xmake.lua

+ 19 - 4
packages/l/libjpeg/xmake.lua

@@ -9,6 +9,8 @@ package("libjpeg")
     add_versions("v9b", "240fd398da741669bf3c90366f58452ea59041cacc741a489b99f2f6a0bad052")
     add_versions("v9b", "240fd398da741669bf3c90366f58452ea59041cacc741a489b99f2f6a0bad052")
     add_versions("v9d", "6c434a3be59f8f62425b2e3c077e785c9ce30ee5874ea1c270e843f273ba71ee")
     add_versions("v9d", "6c434a3be59f8f62425b2e3c077e785c9ce30ee5874ea1c270e843f273ba71ee")
 
 
+    add_configs("headeronly", { description = "Install headerfiles only.", default = false, type = "boolean"})
+
     on_install(function (package)
     on_install(function (package)
         io.writefile("xmake.lua", [[
         io.writefile("xmake.lua", [[
             add_rules("mode.debug", "mode.release")
             add_rules("mode.debug", "mode.release")
@@ -26,9 +28,9 @@ package("libjpeg")
                 add_files("jquant2.c", "jutils.c", "jmemmgr.c", "jmemansi.c")
                 add_files("jquant2.c", "jutils.c", "jmemmgr.c", "jmemansi.c")
 
 
                 if is_plat("windows") then
                 if is_plat("windows") then
-                    add_configfiles("jconfig.txt", {filename = "jconfig.h"})
-                else
                     add_configfiles("jconfig.vc", {filename = "jconfig.h"})
                     add_configfiles("jconfig.vc", {filename = "jconfig.h"})
+                else
+                    add_configfiles("jconfig.txt", {filename = "jconfig.h"})
                 end
                 end
                 add_includedirs("$(buildir)", {public = true})
                 add_includedirs("$(buildir)", {public = true})
                 add_headerfiles("jerror.h", "jmorecfg.h", "jpeglib.h", "$(buildir)/jconfig.h")
                 add_headerfiles("jerror.h", "jmorecfg.h", "jpeglib.h", "$(buildir)/jconfig.h")
@@ -39,9 +41,22 @@ package("libjpeg")
         elseif not package:is_plat("windows", "mingw") and package:config("pic") ~= false then
         elseif not package:is_plat("windows", "mingw") and package:config("pic") ~= false then
             configs.cxflags = "-fPIC"
             configs.cxflags = "-fPIC"
         end
         end
-        import("package.tools.xmake").install(package, configs)
+        if package:config("headeronly") then
+            if package:is_plat("windows") then
+                os.cp("jconfig.vc", "jconfig.h")
+            else
+                os.cp("jconfig.txt", "jconfig.h")
+            end
+            os.cp("*.h", package:installdir("include"))
+        else
+            import("package.tools.xmake").install(package, configs)
+        end
     end)
     end)
 
 
     on_test(function (package)
     on_test(function (package)
-        assert(package:has_cfuncs("jpeg_create_compress(0)", {includes = {"stdio.h", "jpeglib.h"}}))
+        if package:config("headeronly") then
+            assert(package:has_cincludes({"stdio.h", "jpeglib.h"}))
+        else
+            assert(package:has_cfuncs("jpeg_create_compress(0)", {includes = {"stdio.h", "jpeglib.h"}}))
+        end
     end)
     end)