From 3774c705b83a323e66b789ce2475925e6e85cd9a Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 1 Dec 2022 11:31:41 +0800 Subject: [PATCH] fix mnn (#1667) * fix mnn * fix msvc errors * fix msvc errors --- packages/m/mnn/xmake.lua | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/packages/m/mnn/xmake.lua b/packages/m/mnn/xmake.lua index 0d9199618f1..ec3c51489df 100644 --- a/packages/m/mnn/xmake.lua +++ b/packages/m/mnn/xmake.lua @@ -6,7 +6,7 @@ package("mnn") add_urls("https://github.com/alibaba/MNN/archive/$(version).zip", "https://github.com/alibaba/MNN.git") - + add_versions("1.2.2", "78698b879f796a84d1aeb02f60ee38f6860dfdd03c27d1649aaaf9e0adfc8630") add_versions("1.2.1", "485ae09558ff5626a63d1467ca81ebe0e17fbc60222c386d8f0e857f487c74d0") @@ -26,7 +26,7 @@ package("mnn") add_links("") - on_load("windows", "linux", "macosx", "android", function (package) + on_load("windows", "linux", "macosx", "android", function (package) local mnn_path = package:installdir("include") local mnn_lib_dir = string.sub(mnn_path, 1, string.len(mnn_path) - 7) .. "lib" if package:config("shared") then @@ -34,15 +34,15 @@ package("mnn") package:add("shflags", "-L" .. mnn_lib_dir .. " -lmnn") else if package:is_plat("linux", "android", "cross") then - package:add("shflags", " -Wl,--whole-archive " .. mnn_lib_dir .. "/libmnn.a -Wl,--no-whole-archive") - package:add("ldflags", " -Wl,--whole-archive " .. mnn_lib_dir .. "/libmnn.a -Wl,--no-whole-archive") + package:add("shflags", " -Wl,--whole-archive " .. mnn_lib_dir .. "/libMNN.a -Wl,--no-whole-archive") + package:add("ldflags", " -Wl,--whole-archive " .. mnn_lib_dir .. "/libMNN.a -Wl,--no-whole-archive") elseif package:is_plat("macosx") then - package:add("ldflags", "-Wl,-force_load " .. mnn_lib_dir .. "/libmnn.a") - package:add("shflags", "-Wl,-force_load " .. mnn_lib_dir .. "/libmnn.a") + package:add("ldflags", "-Wl,-force_load " .. mnn_lib_dir .. "/libMNN.a") + package:add("shflags", "-Wl,-force_load " .. mnn_lib_dir .. "/libMNN.a") elseif package:is_plat("windows") then package:add("linkdirs", mnn_lib_dir) - package:add("shflags", "/WHOLEARCHIVE:mnn") - package:add("ldflags", "/WHOLEARCHIVE:mnn") + package:add("shflags", "/WHOLEARCHIVE:MNN") + package:add("ldflags", "/WHOLEARCHIVE:MNN") end end @@ -50,7 +50,7 @@ package("mnn") package:add("defines", "USING_MNN_DLL") end - if package:is_plat("macosx", "iphoneos") then + if package:is_plat("macosx", "iphoneos") then if package:config("MNN_OPENCL") then package:add("frameworks", "OpenCL") end @@ -65,16 +65,16 @@ package("mnn") on_install("windows", "linux", "macosx", "android", function (package) local configs = {"-DMNN_BUILD_TEST=OFF", - "-DMNN_BUILD_DEMO=OFF", - "-DMNN_SUPPORT_TFLITE_QUAN=ON", - "-DMNN_PORTABLE_BUILD=OFF", - "-DMNN_SEP_BUILD=OFF"} + "-DMNN_BUILD_DEMO=OFF", + "-DMNN_SUPPORT_TFLITE_QUAN=ON", + "-DMNN_PORTABLE_BUILD=OFF", + "-DMNN_SEP_BUILD=OFF"} table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) table.insert(configs, "-DMNN_BUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) table.insert(configs, "-DMNN_USE_SYSTEM_LIB=" .. (package:config("use_system_lib") and "ON" or "OFF")) table.insert(configs, "-DMNN_USE_THREAD_POOL=" .. (package:config("thread_pool") and "ON" or "OFF")) table.insert(configs, "-DMNN_OPENMP=" .. (package:config("openmp") and "ON" or "OFF")) - if package:config("thread_pool") and package:config("openmp") then + if package:config("thread_pool") and package:config("openmp") then print("Warning: You are using mnn's thread pool, it will disable openmp!") end for _, name in ipairs({"metal", "opencl", "opengl", "vulkan", "arm82", "onednn", "avx512", "cuda", "tensorrt", "coreml"}) do @@ -85,6 +85,12 @@ package("mnn") end if package:is_plat("windows") then table.insert(configs, "-DMNN_WIN_RUNTIME_MT=" .. (package:config("vs_runtime") and "ON" or "OFF")) + io.replace("CMakeLists.txt", + 'SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi")', + 'SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")', {plain = true}) + io.replace("CMakeLists.txt", + 'SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")', + 'SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")', {plain = true}) end if package:is_plat("android") then table.insert(configs, "-DMNN_USE_SSE=OFF")