Răsfoiți Sursa

add onednn (#1103)

* add onednn

* update llvm-mingw

* update binutils

* fix onednn

* fix binutils
Hoildkv 3 ani în urmă
părinte
comite
8767237de7
3 a modificat fișierele cu 67 adăugiri și 16 ștergeri
  1. 17 15
      packages/b/binutils/xmake.lua
  2. 7 1
      packages/l/llvm-mingw/xmake.lua
  3. 43 0
      packages/o/onednn/xmake.lua

+ 17 - 15
packages/b/binutils/xmake.lua

@@ -7,7 +7,7 @@ package("binutils")
 
     set_urls("https://ftp.gnu.org/gnu/binutils/binutils-$(version).tar.xz",
              "https://ftpmirror.gnu.org/binutils/binutils-$(version).tar.xz")
-
+    add_versions("2.38", "e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024")
     add_versions("2.34", "f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952")
     
     if is_plat("mingw") and is_subhost("msys") then
@@ -20,26 +20,28 @@ package("binutils")
 
     on_install("@linux", "@macosx", "@msys", function (package)
         local configs = {"--disable-debug",
-                          "--disable-dependency-tracking",
-                          "--enable-deterministic-archives",
-                          "--infodir=" .. package:installdir("share/info"),
-                          "--mandir=" .. package:installdir("share/man"),
-                          "--disable-werror",
-                          "--enable-interwork",
-                          "--enable-multilib",
-                          "--enable-64-bit-bfd",
-                          "--enable-targets=all"}
+                         "--disable-dependency-tracking",
+                         "--enable-deterministic-archives",
+                         "--infodir=" .. package:installdir("share/info"),
+                         "--mandir=" .. package:installdir("share/man"),
+                         "--disable-werror",
+                         "--enable-interwork",
+                         "--enable-multilib",
+                         "--enable-64-bit-bfd",
+                         "--enable-targets=all"}
         if package:is_plat("linux") then
             table.insert(configs, "--with-sysroot=/")
             table.insert(configs, "--enable-gold")
             table.insert(configs, "--enable-plugins")
         end
         -- fix 'makeinfo' is missing on your system.
-        io.replace("binutils/Makefile.in", "SUBDIRS = doc po", "SUBDIRS = ")
-        -- fix multiple definition of `program_name'
-        io.replace("binutils/srconv.c", "char *program_name;", "extern char *program_name;", {plain = true})
-        io.replace("binutils/sysdump.c", "char *program_name;", "extern char *program_name;", {plain = true})
-        io.replace("binutils/coffdump.c", "char * program_name;", "extern char *program_name;", {plain = true})
+        io.replace("binutils/Makefile.in", "SUBDIRS =.-po", "SUBDIRS = ")
+        if package:version():le("2.34") then
+            -- fix multiple definition of `program_name'
+            io.replace("binutils/srconv.c", "char *program_name;", "extern char *program_name;", {plain = true})
+            io.replace("binutils/sysdump.c", "char *program_name;", "extern char *program_name;", {plain = true})
+            io.replace("binutils/coffdump.c", "char * program_name;", "extern char *program_name;", {plain = true})
+        end
         import("package.tools.autoconf").install(package, configs)
     end)
 

+ 7 - 1
packages/l/llvm-mingw/xmake.lua

@@ -9,27 +9,33 @@ package("llvm-mingw")
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-i686.zip")
             add_versions("20201020", "4f07721a81a3ba0980fc089e839d1f1a5784bbc8cee1332c15cf1b6ba24525d6")
             add_versions("20211002", "e4faaea995c980f4b0808cc4ec17d5ea9fc2c83449f0cb3a8af07e52abe26679")
+            add_versions("20220323", "34889c54195c3d677c3751fd53fa49d005e9750651f3ce994817a3c7670e7eb5")
         elseif os.arch() == "arm64" then
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-aarch64.zip")
             add_versions("20201020", "57d6e0fff94774ccd958a3d0174686189d3ec1cb5981eb4ea37fc82a007cc674")
-            add_versions("20211002", "1f618c4323a7e64df8a97d4fe8a933e6c8bdc131c91f90b89888927ebd179f83  ")
+            add_versions("20211002", "1f618c4323a7e64df8a97d4fe8a933e6c8bdc131c91f90b89888927ebd179f83")
+            add_versions("20220323", "f8d7d30a5eb50e9e9769d8c544644e6d25c822913e0944b21c94b75421942085")
         elseif os.arch():find("arm.*") then
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-armv7.zip")
             add_versions("20201020", "c086562124fc79e157d2cb01eacd7bd3e937d488bacdac138ee45ed6a39d3b6c")
             add_versions("20211002", "a37c4cbd4b7c53f7c931d4ca84e1f9847315b528129310fefeafae48edd65407")
+            add_versions("20220323", "1008e8eeef74194c4662bef5a2afa4691a31d894fdad8ebf2ddc27dbf6e98c86")
         else
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-x86_64.zip")
             add_versions("20201020", "8f619911b61554d0394537305157f63284fab949ad0abed137b84440689fa77e")
             add_versions("20211002", "cd0c506789eb2fd3179836e55a7dd13ceade810ec094aeec28fa5a531423e7f8")
+            add_versions("20220323", "3014a95e4ec4d5c9d31f52fbd6ff43174a0d9c422c663de7f7be8c2fcc9d837a")
         end
     elseif is_host("linux") then
         -- Built on Ubuntu but hopefully run on other distributions
         if os.arch() == "x86_64" then
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-ubuntu-18.04-x86_64.tar.xz")
             add_versions("20211002", "30e9400783652091d9278ce21e5c170d01a5f44e4f1a25717b63cd9ad9fbe13b")
+            add_versions("20220323", "6d69ab28a3a9a2b7159178ff11cae8545fd44c9343573900fcf60434539695d8")
         elseif os.arch() == "arm64" then
             set_urls("https://github.com/mstorsjo/llvm-mingw/releases/download/$(version)/llvm-mingw-$(version)-ucrt-ubuntu-18.04-aarch64.tar.xz")
             add_versions("20211002", "9a26079af16713894e8a11c77e38896c4040b98daceca4408333bd1053c1a3d5")
+            add_versions("20220323", "89d4dc4515d7203b658f8257b19943a4055831a3738ed79bc179a1abcc83cde6")
         end
     end
 

+ 43 - 0
packages/o/onednn/xmake.lua

@@ -0,0 +1,43 @@
+package("onednn")
+
+    set_homepage("https://oneapi-src.github.io/oneDNN/")
+    set_description("oneAPI Deep Neural Network Library")
+    set_license("Apache-2.0")
+
+    add_urls("https://github.com/oneapi-src/oneDNN/archive/refs/tags/$(version).tar.gz",
+             "https://github.com/oneapi-src/oneDNN.git")
+    add_versions("v2.5.4", "a463ab05129e3e307333ff49d637568fa6ae1fb81742f40918b618e8ef714987")
+
+    add_configs("shared",      {description = "Build shared library.", default = true, type = "boolean"})
+    add_configs("cpu_runtime", {description = "Defines the threading runtime for CPU engines.", default = "seq", type = "string", values = {"none", "omp", "tbb", "seq", "threadpool", "dpcpp"}})
+    add_configs("gpu_runtime", {description = "Defines the offload runtime for GPU engines.", default = "none", type = "string", values = {"none", "ocl", "dpcpp"}})
+
+    add_deps("cmake")
+    on_load("windows|x64", "macosx", "linux|x86_64", function (package)
+        local cpu_runtime = package:config("cpu_runtime")
+        if cpu_runtime == "omp" then
+            package:add("deps", "openmp")
+        elseif cpu_runtime == "tbb" then
+            package:add("deps", "tbb")
+        end
+        local gpu_runtime = package:config("gpu_runtime")
+        if gpu_runtime == "ocl" then
+            package:add("deps", "opencl")
+        end
+    end)
+
+    on_install("windows|x64", "macosx", "linux|x86_64", function (package)
+        local configs = {"-DDNNL_BUILD_TESTS=OFF", "-DDNNL_BUILD_EXAMPLES=OFF"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DDNNL_LIBRARY_TYPE=" .. (package:config("shared") and "SHARED" or "STATIC"))
+        import("package.tools.cmake").install(package, configs)
+    end)
+
+    on_test(function (package)
+        assert(package:check_cxxsnippets({test = [[
+            #include "oneapi/dnnl/dnnl.hpp"
+            void test() {
+                dnnl::engine eng(dnnl::engine::kind::cpu, 0);
+            }
+        ]]}, {configs = {languages = "c++14"}}))
+    end)