浏览代码

fix libraw package define file.

vkensou 5 年之前
父节点
当前提交
52d586d0b8
共有 1 个文件被更改,包括 20 次插入13 次删除
  1. 20 13
      packages/l/libraw/xmake.lua

+ 20 - 13
packages/l/libraw/xmake.lua

@@ -2,36 +2,43 @@ package("libraw")
     set_homepage("http://www.libraw.org")
     set_description("LibRaw is a library for reading RAW files from digital cameras.")
 
-    add_urls("https://github.com/LibRaw/LibRaw/archive/$(version).tar.gz", {alias = "binary"})
+    add_urls("https://github.com/LibRaw/LibRaw/archive/$(version).tar.gz", {alias = "archive"})
     add_urls("https://github.com/LibRaw/LibRaw.git", {alias = "git"})
     
-    add_versions("binary:0.19.5", "9a2a40418e4fb0ab908f6d384ff6f9075f4431f8e3d79a0e44e5a6ea9e75abdc")
+    add_versions("archive:0.19.5", "9a2a40418e4fb0ab908f6d384ff6f9075f4431f8e3d79a0e44e5a6ea9e75abdc")
     add_versions("git:0.19.5", "0.19.5")
 
     on_install(function(package)
-        os.mkdir("include")
-        os.cp("libraw", "include")
-        io.writefile("xmake.lua", [[
+        io.writefile("xmake.lua", format([[
             target("libraw")
-                set_kind("shared")
-                add_defines("LIBRAW_BUILDLIB")
+                set_kind("%s")
+
+                if get_config("shared") then
+                    add_defines("LIBRAW_BUILDLIB")
+                else
+                    add_defines("LIBRAW_NODLL")
+                end
+                
                 if is_plat("windows") then
                     add_defines("WIN32")
                 end
-                add_includedirs("include", {public = true})
-                add_headerfiles("include(/libraw/*.h)")
-                add_includedirs("")
+
+                add_headerfiles("(libraw/*.h)")
+                add_includedirs(".")
                 add_files("src/libraw_cxx.cpp", 
                     "src/libraw_datastream.cpp", 
                     "src/libraw_c_api.cpp")
                 add_files("internal/dcraw_common.cpp", 
                     "internal/dcraw_fileio.cpp", 
-                    "internal/demosaic_packs.cpp")        
-        ]])
+                    "internal/demosaic_packs.cpp")
+        ]], package:config("shared") and "shared" or "static"))
         import("package.tools.xmake").install(package)
     end)
 
     on_test(function(package)
-        local defines = is_plat("windows") and {"WIN32"} or {}
+        local defines = package:is_plat("windows") and {"WIN32"} or {}
+        if not package:config("shared") then
+            table.insert(defines, "LIBRAW_NODLL")
+        end
         assert(package:has_cfuncs("libraw_version", {configs = {defines = defines}, includes = {"libraw/libraw.h"}, }))
     end)