2
0
Эх сурвалжийг харах

lightgbm: add version v3.3.2 (#1778)

* lightgbm: add version v3.3.2

LightGBM v3.3.3 ~ v3.3.5 are special release used to prevent R package
from being archived on CRAN. So v3.3.2 is the actual latest release for now.

* Install libomp-dev for ubuntu_clang workflow.

* Update xmake.lua

* Update ubuntu_clang.yml

---------

Co-authored-by: ruki <[email protected]>
Chen Yufei 2 жил өмнө
parent
commit
ec47748a0f

+ 18 - 0
packages/l/lightgbm/xmake.lua

@@ -5,6 +5,7 @@ package("lightgbm")
     set_license("MIT")
 
     add_urls("https://github.com/microsoft/LightGBM/releases/download/v$(version)/lightgbm-$(version).tar.gz")
+    add_versions("3.3.2", "5d25d16e77c844c297ece2044df57651139bc3c8ad8c4108916374267ac68b64")
     add_versions("3.2.1", "bd98e3b501b4c24dc127f4ad93e467f42923fe3eefa99e143b5b93158f024395")
 
     add_configs("gpu", {description = "Enable GPU-accelerated training.", default = false, type = "boolean"})
@@ -15,6 +16,9 @@ package("lightgbm")
             package:add("deps", "opencl")
             package:add("deps", "boost", {configs = {filesystem = true, system = true}})
         end
+        if package:is_plat("linux") and package:has_tool("cc", "clang", "clangxx") then
+            package:add("deps", "libomp")
+        end
     end)
 
     on_install("windows|x64", "linux", function (package)
@@ -25,6 +29,20 @@ package("lightgbm")
         if package:is_plat("windows") then
             table.insert(configs, "-DBoost_USE_STATIC_RUNTIME=" .. (package:config("vs_runtime"):startswith("MT") and "ON" or "OFF"))
         end
+        if package:is_plat("linux") and package:has_tool("cc", "clang", "clangxx") then
+            local libomp = package:dep("libomp"):fetch()
+            if libomp then
+                local includedirs = table.wrap(libomp.includedirs or libomp.sysincludedirs)
+                local libfiles = table.wrap(libomp.libfiles)
+                if #includedirs > 0 and #libfiles > 0 then
+                    table.insert(configs, "-DOpenMP_C_LIB_NAMES=libomp")
+                    table.insert(configs, "-DOpenMP_C_FLAGS=-I" .. includedirs[1])
+                    table.insert(configs, "-DOpenMP_CXX_LIB_NAMES=libomp")
+                    table.insert(configs, "-DOpenMP_CXX_FLAGS=-I" .. includedirs[1])
+                    table.insert(configs, "-DOpenMP_libomp_LIBRARY=" .. table.concat(libfiles, " "))
+                end
+            end
+        end
         import("package.tools.cmake").install(package, configs)
         package:addenv("PATH", "bin")
     end)