From d65e144a3f8c3f48d7db30bea1482c4b39acd7a1 Mon Sep 17 00:00:00 2001 From: kaoru Date: Sat, 27 Apr 2024 12:46:54 +0800 Subject: more triplet detect for vcpkg --- xmake/modules/package/manager/vcpkg/configurations.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xmake/modules/package/manager/vcpkg/configurations.lua b/xmake/modules/package/manager/vcpkg/configurations.lua index df79e1bd2..c5ba8dcc5 100644 --- a/xmake/modules/package/manager/vcpkg/configurations.lua +++ b/xmake/modules/package/manager/vcpkg/configurations.lua @@ -56,6 +56,14 @@ function triplet(configs, plat, arch) if configs.runtimes and configs.runtimes:startswith("MD") then triplet = triplet .. "-md" end + elseif plat == "linux" then + if (arch == "x64" or arch == "x86") and configs.shared == true then + triplet = triplet .. "-dynamic" + end + elseif plat == "macosx" then + if arch == "x64" and configs.shared == true then + triplet = triplet .. "-dynamic" + end elseif plat == "mingw" then triplet = triplet .. (configs.shared ~= true and "-static" or "-dynamic") end -- cgit v1.3.1 From 835f9195e1c528f2644b9ddd0f6b9c6def710f44 Mon Sep 17 00:00:00 2001 From: kaoru Date: Sat, 27 Apr 2024 15:03:19 +0800 Subject: Supports conversion of custom library link names --- xmake/core/project/target.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index fb48df6f8..32cbe0748 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -2833,6 +2833,7 @@ end -- get the link name of the target file function target.linkname(filename, opt) + print(filename, opt) -- for implib/mingw, e.g. libxxx.dll.a opt = opt or {} if filename:startswith("lib") and filename:endswith(".dll.a") then @@ -2850,6 +2851,11 @@ function target.linkname(filename, opt) if count == 0 and opt.plat == "mingw" then linkname, count = filename:gsub(target.filename("__pattern__", "static", {plat = "windows"}):gsub("%.", "%%."):gsub("__pattern__", "(.+)") .. "$", "%1") end + -- for custom shared libraries name, xxx.so, xxx.dylib + if filename:endswith(".so") or filename:endswith(".dylib") then + return filename; + end + return count > 0 and linkname or nil end -- cgit v1.3.1 From a53a82a1e3a2967ff6dfeed6e99fba210e2c30b5 Mon Sep 17 00:00:00 2001 From: kaoru Date: Sat, 27 Apr 2024 15:26:14 +0800 Subject: remove print --- xmake/core/project/target.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 32cbe0748..c5cf3a2b1 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -2833,7 +2833,6 @@ end -- get the link name of the target file function target.linkname(filename, opt) - print(filename, opt) -- for implib/mingw, e.g. libxxx.dll.a opt = opt or {} if filename:startswith("lib") and filename:endswith(".dll.a") then -- cgit v1.3.1 From fdde80e8bb645dad8ed82643ce09c79370c0f3fa Mon Sep 17 00:00:00 2001 From: kaoru Date: Sat, 27 Apr 2024 23:09:58 +0800 Subject: linkname assignment logic fixed --- xmake/core/project/target.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index c5cf3a2b1..9007bce67 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -2851,8 +2851,9 @@ function target.linkname(filename, opt) linkname, count = filename:gsub(target.filename("__pattern__", "static", {plat = "windows"}):gsub("%.", "%%."):gsub("__pattern__", "(.+)") .. "$", "%1") end -- for custom shared libraries name, xxx.so, xxx.dylib - if filename:endswith(".so") or filename:endswith(".dylib") then - return filename; + if count == 0 and not filename:startswith("lib") then + count = count + 1 + linkname = filename end return count > 0 and linkname or nil -- cgit v1.3.1 From fd6bc85572e3c1811a8a7aa8f4c3c19089da7d50 Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 27 Apr 2024 23:38:16 +0800 Subject: Update target.lua --- xmake/core/project/target.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 9007bce67..9c396e25c 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -2850,13 +2850,13 @@ function target.linkname(filename, opt) if count == 0 and opt.plat == "mingw" then linkname, count = filename:gsub(target.filename("__pattern__", "static", {plat = "windows"}):gsub("%.", "%%."):gsub("__pattern__", "(.+)") .. "$", "%1") end + if count > 0 and linkname then + return linkname + end -- for custom shared libraries name, xxx.so, xxx.dylib - if count == 0 and not filename:startswith("lib") then - count = count + 1 - linkname = filename + if not filename:startswith("lib") and (filename:endswith(".so") or filename:endswith(".dylib")) then + return filename end - - return count > 0 and linkname or nil end -- new a target instance -- cgit v1.3.1 From 610fbdbff9f85aaf6dbfd8c086ef28c1d2faf29f Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 27 Apr 2024 23:38:53 +0800 Subject: Update configurations.lua --- xmake/modules/package/manager/vcpkg/configurations.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/modules/package/manager/vcpkg/configurations.lua b/xmake/modules/package/manager/vcpkg/configurations.lua index c5ba8dcc5..1bd239597 100644 --- a/xmake/modules/package/manager/vcpkg/configurations.lua +++ b/xmake/modules/package/manager/vcpkg/configurations.lua @@ -57,11 +57,11 @@ function triplet(configs, plat, arch) triplet = triplet .. "-md" end elseif plat == "linux" then - if (arch == "x64" or arch == "x86") and configs.shared == true then + if (arch == "x64" or arch == "x86") and configs.shared then triplet = triplet .. "-dynamic" end elseif plat == "macosx" then - if arch == "x64" and configs.shared == true then + if arch == "x64" and configs.shared then triplet = triplet .. "-dynamic" end elseif plat == "mingw" then -- cgit v1.3.1 From 66421508282ec5b34dd66916c41a894c2ebd4ccb Mon Sep 17 00:00:00 2001 From: kaoru Date: Sun, 28 Apr 2024 01:13:37 +0800 Subject: check the generated vcpkg triplet no triplet named x86-linux-dynamic and the plat on macos is osx --- xmake/modules/package/manager/vcpkg/configurations.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/xmake/modules/package/manager/vcpkg/configurations.lua b/xmake/modules/package/manager/vcpkg/configurations.lua index 1bd239597..12bc5f5bd 100644 --- a/xmake/modules/package/manager/vcpkg/configurations.lua +++ b/xmake/modules/package/manager/vcpkg/configurations.lua @@ -57,11 +57,14 @@ function triplet(configs, plat, arch) triplet = triplet .. "-md" end elseif plat == "linux" then - if (arch == "x64" or arch == "x86") and configs.shared then + -- x64-linux-dynamic + if arch == "x64" and configs.shared then triplet = triplet .. "-dynamic" end - elseif plat == "macosx" then - if arch == "x64" and configs.shared then + elseif plat == "osx" then + -- x64-osx-dynamic + -- arm64-osx-dynamic + if (arch == "x64" or arch == "arm64") and configs.shared then triplet = triplet .. "-dynamic" end elseif plat == "mingw" then -- cgit v1.3.1