Hoildkv 3 gadi atpakaļ
vecāks
revīzija
6fb405d937
2 mainītis faili ar 44 papildinājumiem un 0 dzēšanām
  1. 15 0
      packages/z/zfp/patches/0.5.5/msvc.patch
  2. 29 0
      packages/z/zfp/xmake.lua

+ 15 - 0
packages/z/zfp/patches/0.5.5/msvc.patch

@@ -0,0 +1,15 @@
+diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
+--- a/utils/CMakeLists.txt
++++ b/utils/CMakeLists.txt
+@@ -1,5 +1,10 @@
+ add_executable(zfpcmd zfp.c)
+-set_property(TARGET zfpcmd PROPERTY OUTPUT_NAME zfp)
++
++# protect against LNK1114: cannot overwrite the original file 'lib/Release/zfp.lib'; error code 32;
++# rationale: linker can't handle the case of an executable file having the same name as a library file
++if(NOT MSVC)
++  set_property(TARGET zfpcmd PROPERTY OUTPUT_NAME zfp)
++endif()
+ target_link_libraries(zfpcmd zfp)
+ if(HAVE_LIBM_MATH)
+   target_link_libraries(zfpcmd m)

+ 29 - 0
packages/z/zfp/xmake.lua

@@ -0,0 +1,29 @@
+package("zfp")
+
+    set_homepage("https://computing.llnl.gov/projects/zfp")
+    set_description("zfp is a compressed format for representing multidimensional floating-point and integer arrays.")
+    set_license("BSD-3-Clause")
+
+    add_urls("https://github.com/LLNL/zfp/releases/download/$(version)/zfp-$(version).tar.gz")
+    add_versions("0.5.5", "fdf7b948bab1f4e5dccfe2c2048fd98c24e417ad8fb8a51ed3463d04147393c5")
+
+    add_patches("0.5.5", path.join(os.scriptdir(), "patches", "0.5.5", "msvc.patch"), "5934c3fcd2abc64857c89c8dc16a2af855ab278e935e8a259bbcea89ddfe9a52")
+
+    add_deps("cmake")
+    on_load("windows", function (package)
+        if package:config("shared") then
+            package:add("defines", "ZFP_SHARED_LIBS")
+        end
+    end)
+
+    on_install("windows", "macosx", "linux", function (package)
+        local configs = {"-DZFP_WITH_OPENMP=OFF", "-DBUILD_TESTING=OFF", "-DCMAKE_INSTALL_LIBDIR=lib"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        import("package.tools.cmake").install(package, configs)
+        package:addenv("PATH", "bin")
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("zfp_field_3d", {includes = "zfp.h"}))
+    end)