From c68170bd046b4dc0b6a822a9ccc8a69b91659abe Mon Sep 17 00:00:00 2001 From: YCG <159802291+y-cg@users.noreply.github.com> Date: Fri, 23 Feb 2024 23:03:48 +0800 Subject: [PATCH] Fix `includedirs` for opencv (homebrew) (#3317) * fix: fix `includedirs` for opencv (homebrew) * fix: remove redundant `for` * fix: remove the redundant logic * Update xmake.lua --------- Co-authored-by: ruki --- packages/o/opencv/xmake.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/o/opencv/xmake.lua b/packages/o/opencv/xmake.lua index 5f0c2ad11..7794b137e 100644 --- a/packages/o/opencv/xmake.lua +++ b/packages/o/opencv/xmake.lua @@ -43,6 +43,7 @@ package("opencv") if is_plat("macosx") then add_frameworks("Foundation", "CoreFoundation", "CoreGraphics", "AppKit", "OpenCL", "Accelerate") + add_extsources("brew::opencv") elseif is_plat("linux") then add_extsources("pacman::opencv", "apt::libopencv-dev") add_syslinks("pthread", "dl") @@ -50,6 +51,22 @@ package("opencv") add_syslinks("gdi32", "user32", "glu32", "opengl32", "advapi32", "comdlg32", "ws2_32") end + on_fetch("macosx", function (package, opt) + if opt.system then + local result = package:find_package("brew::opencv", opt) + if result then + for _, includedir in ipairs(result.sysincludedirs or result.includedirs) do + local dir = path.join(includedir, "opencv4") + if os.isdir(dir) then + result.includedirs = table.wrap(result.includedirs) + table.insert(result.includedirs, dir) + end + end + end + return result + end + end) + on_load("linux", "macosx", "windows", "mingw@windows,msys", function (package) if package:is_plat("windows") then local arch = "x64"