From 05724ea4f02ba0a6b9df9b1485116ccf91575e69 Mon Sep 17 00:00:00 2001 From: star9029 Date: Wed, 13 Nov 2024 14:24:16 +0800 Subject: [PATCH] patch shared build --- packages/s/soil2/xmake.lua | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/s/soil2/xmake.lua b/packages/s/soil2/xmake.lua index 115fe4daf..265a83b42 100644 --- a/packages/s/soil2/xmake.lua +++ b/packages/s/soil2/xmake.lua @@ -13,7 +13,20 @@ package("soil2") add_deps("cmake") add_deps("opengl") - on_install("!android and !wasm and !cross", function (package) + if on_check then + on_check("windows", function (package) + if package:is_arch("arm.*") then + local vs_toolset = package:toolchain("msvc"):config("vs_toolset") + if vs_toolset then + local vs_toolset_ver = import("core.base.semver").new(vs_toolset) + local minor = vs_toolset_ver:minor() + assert(minor and minor >= 30, "package(soil2) require vs_toolset >= 14.3") + end + end + end) + end + + on_install("!android and !wasm and !cross and !iphoneos", function (package) io.replace("CMakeLists.txt", "$<$:-fPIC>", "", {plain = true}) io.replace("CMakeLists.txt", "$<$:-fPIC>", "", {plain = true}) @@ -23,7 +36,12 @@ package("soil2") if package:is_plat("windows") and package:config("shared") then table.insert(configs, "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON") end - import("package.tools.cmake").install(package, configs) + + local opt = {packagedeps = "opengl"} + if package:is_plat("macosx") then + opt.shflags = {"-framework", "CoreFoundation"} + end + import("package.tools.cmake").install(package, configs, opt) if package:is_plat("windows") and package:is_debug() then local dir = package:installdir(package:config("shared") and "bin" or "lib")