浏览代码

Merge pull request #34 from fasiondog/master

update for fmt
ruki 5 年之前
父节点
当前提交
abfae2efe8
共有 1 个文件被更改,包括 24 次插入9 次删除
  1. 24 9
      packages/f/fmt/xmake.lua

+ 24 - 9
packages/f/fmt/xmake.lua

@@ -7,18 +7,33 @@ package("fmt")
     add_versions("6.0.0", "b4a16b38fa171f15dbfb958b02da9bbef2c482debadf64ac81ec61b5ac422440")
     add_versions("5.3.0", "4c0741e10183f75d7d6f730b8708a99b329b2f942dad5a9da3385ab92bb4a15c")
 
-    if is_plat("linux", "macosx") then
-        add_deps("cmake")
-    end
+    add_configs("header_only", {description = "Use header only", default = true, type = "boolean"})
 
-    on_install("windows", function (package)
-        os.cp("include/fmt", package:installdir("include"))
+    on_load(function (package)
+        if package:config("header_only") then
+            package:add("defines", "FMT_HEADER_ONLY=1")
+        else
+            package:add("deps", "cmake")
+        end
+        if package:config("shared") then
+            package:add("defines", "FMT_EXPORT")
+        end
     end)
-
-    on_install("linux", "macosx", function (package)
-        import("package.tools.cmake").install(package)
+    
+    on_install("windows", function (package)
+        if package:config("header_only") then
+            os.cp("include/fmt", package:installdir("include"))
+            return
+        end
+        
+        local configs = {}
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        table.insert(configs, "-DFMT_TEST=OFF")
+        table.insert(configs, "-DFMT_DOC=OFF")
+        table.insert(configs, "-DFMT_FUZZ=OFF")
+        import("package.tools.cmake").install(package, configs)
     end)
-
+    
     on_test(function (package)
         assert(package:check_cxxsnippets({test = [[
             #include <fmt/format.h>