From fd0a6c6821b5eff6ce4c945ffba1bfbb416f6031 Mon Sep 17 00:00:00 2001 From: Cherichy Date: Tue, 14 Dec 2021 17:05:05 +0800 Subject: Fix cmake find bug on windows. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在windows上由于issue 1822 添加了对ImportLibrary的查找,在vcproj里面会有一个与项目同名的lib文件也被加入到link目录。 比如find_package cmake::OpenCV 会导致需要link一个名为OpenCV.lib的文件,但实际上并不存在这一文件,所以需要将其排除。 --- xmake/modules/package/manager/cmake/find_package.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/modules/package/manager/cmake/find_package.lua b/xmake/modules/package/manager/cmake/find_package.lua index e4099f73d..0dd5751a4 100644 --- a/xmake/modules/package/manager/cmake/find_package.lua +++ b/xmake/modules/package/manager/cmake/find_package.lua @@ -201,7 +201,7 @@ function _find_package(cmake, name, opt) -- get links and linkdirs local linkdir = path.directory(library) - if linkdir ~= "." then + if linkdir ~= "." and string.find(string.gsub(linkdir,"/","\\"),workdir) == nil then linkdirs = linkdirs or {} table.insert(linkdirs, linkdir) local link = target.linkname(path.filename(library)) -- cgit v1.3.1 From b5ec6f34b6f72e8fcbf27042b53eb36ff26f63ad Mon Sep 17 00:00:00 2001 From: Cherichy Date: Tue, 14 Dec 2021 17:43:32 +0800 Subject: Update find_package.lua --- xmake/modules/package/manager/cmake/find_package.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xmake/modules/package/manager/cmake/find_package.lua b/xmake/modules/package/manager/cmake/find_package.lua index 0dd5751a4..ddf0bc3a1 100644 --- a/xmake/modules/package/manager/cmake/find_package.lua +++ b/xmake/modules/package/manager/cmake/find_package.lua @@ -201,7 +201,8 @@ function _find_package(cmake, name, opt) -- get links and linkdirs local linkdir = path.directory(library) - if linkdir ~= "." and string.find(string.gsub(linkdir,"/","\\"),workdir) == nil then + linkdir = path.translate(linkdir) + if linkdir ~= "." and not linkdir:find(workdir) then linkdirs = linkdirs or {} table.insert(linkdirs, linkdir) local link = target.linkname(path.filename(library)) -- cgit v1.3.1 From 4a73b8dc0701c896a794deb751e6da5dfaebb28a Mon Sep 17 00:00:00 2001 From: Cherichy Date: Tue, 14 Dec 2021 19:39:02 +0800 Subject: Update find_package.lua --- xmake/modules/package/manager/cmake/find_package.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/modules/package/manager/cmake/find_package.lua b/xmake/modules/package/manager/cmake/find_package.lua index ddf0bc3a1..22ebc711b 100644 --- a/xmake/modules/package/manager/cmake/find_package.lua +++ b/xmake/modules/package/manager/cmake/find_package.lua @@ -202,7 +202,7 @@ function _find_package(cmake, name, opt) -- get links and linkdirs local linkdir = path.directory(library) linkdir = path.translate(linkdir) - if linkdir ~= "." and not linkdir:find(workdir) then + if linkdir ~= "." and not linkdir:startswith(workdir) then linkdirs = linkdirs or {} table.insert(linkdirs, linkdir) local link = target.linkname(path.filename(library)) -- cgit v1.3.1