From ac47c85eb55b510b6b40a567ad86fb02a7a25425 Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 25 Feb 2025 23:09:21 +0800 Subject: [PATCH] improve links --- tests/projects/kotlin-native/package/xmake.lua | 1 + xmake/languages/kotlin/load.lua | 9 +++++---- xmake/languages/kotlin/xmake.lua | 4 ---- xmake/modules/core/tools/kotlinc_native.lua | 5 +++++ .../package/manager/kotlin-native/install_package.lua | 9 +++++---- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/tests/projects/kotlin-native/package/xmake.lua b/tests/projects/kotlin-native/package/xmake.lua index 1b7d146f32..14d74faf86 100644 --- a/tests/projects/kotlin-native/package/xmake.lua +++ b/tests/projects/kotlin-native/package/xmake.lua @@ -2,6 +2,7 @@ add_rules("mode.debug", "mode.release") add_requires("kotlin-native") add_requires("kotlin-native::org.jetbrains.kotlinx:kotlinx-serialization-json 1.8.0", {alias = "json"}) +add_requires("kotlin-native::org.jetbrains.kotlinx:kotlinx-serialization-json 1.8.0", {alias = "json"}) target("test") set_kind("binary") diff --git a/xmake/languages/kotlin/load.lua b/xmake/languages/kotlin/load.lua index 8d7ad0430d..7964351ec0 100644 --- a/xmake/languages/kotlin/load.lua +++ b/xmake/languages/kotlin/load.lua @@ -26,25 +26,26 @@ function _get_apis() , "target.add_ldflags" , "target.add_arflags" , "target.add_shflags" - , "target.add_rpathdirs" -- @note do not translate path, it's usually an absolute path or contains $ORIGIN/@loader_path + , "target.add_links" -- option.add_xxx , "option.add_kcflags" , "option.add_ldflags" , "option.add_arflags" , "option.add_shflags" - , "option.add_rpathdirs" + , "option.add_links" -- toolchain.add_xxx , "toolchain.add_kcflags" , "toolchain.add_ldflags" , "toolchain.add_arflags" - , "toolchain.add_shflags" - , "toolchain.add_rpathdirs" + , "toolchain.add_links" } apis.paths = { -- target.add_xxx "target.add_linkdirs" -- option.add_xxx , "option.add_linkdirs" + -- toolchain.add_xxx + , "toolchain.add_linkdirs" } return apis end diff --git a/xmake/languages/kotlin/xmake.lua b/xmake/languages/kotlin/xmake.lua index 3269ea6cd2..9820531b89 100644 --- a/xmake/languages/kotlin/xmake.lua +++ b/xmake/languages/kotlin/xmake.lua @@ -42,12 +42,10 @@ language("kotlin") , "config.frameworkdirs" , "target.linkdirs" , "target.frameworkdirs" - , "target.rpathdirs" , "target.strip" , "target.symbols" , "toolchain.linkdirs" , "toolchain.frameworkdirs" - , "toolchain.rpathdirs" , "config.frameworks" , "target.frameworks" , "toolchain.frameworks" @@ -63,12 +61,10 @@ language("kotlin") , "config.frameworkdirs" , "target.linkdirs" , "target.frameworkdirs" - , "target.rpathdirs" , "target.strip" , "target.symbols" , "toolchain.linkdirs" , "toolchain.frameworkdirs" - , "toolchain.rpathdirs" , "config.frameworks" , "target.frameworks" , "toolchain.frameworks" diff --git a/xmake/modules/core/tools/kotlinc_native.lua b/xmake/modules/core/tools/kotlinc_native.lua index 8c703477cd..c785f646f5 100644 --- a/xmake/modules/core/tools/kotlinc_native.lua +++ b/xmake/modules/core/tools/kotlinc_native.lua @@ -30,6 +30,11 @@ import("lib.detect.find_tool") function init(self) end +-- make the link flag +function nf_link(self, lib) + return {"-l", lib} +end + -- make the build arguments list function buildargv(self, sourcefiles, targetkind, targetfile, flags, opt) return self:program(), table.join(flags, sourcefiles, "-o", targetfile) diff --git a/xmake/modules/package/manager/kotlin-native/install_package.lua b/xmake/modules/package/manager/kotlin-native/install_package.lua index aaac0fd336..ed9cb4ab9a 100644 --- a/xmake/modules/package/manager/kotlin-native/install_package.lua +++ b/xmake/modules/package/manager/kotlin-native/install_package.lua @@ -65,15 +65,14 @@ end function _install_package(name, opt) local installdir = opt.installdir local basename = name:split(":")[2] .. "-" .. opt.triplet - local library_file = path.join(installdir, "lib", basename .. ".klib") - local library_url = ("%s/%s-%s/%s-%s.klib"):format(opt.repository, (name:gsub("%.", "/"):gsub(":", "/")), opt.triplet, basename, opt.version) + local library_file = path.join(installdir, "klib", "platform", opt.plat .. "_" .. opt.arch, basename .. ".klib") + local library_url = ("%s/%s-%s/%s/%s-%s.klib"):format(opt.repository, (name:gsub("%.", "/"):gsub(":", "/")), opt.triplet, opt.version, basename, opt.version) http.download(library_url, library_file, { insecure = global.get("insecure-ssl")}) local manifest_file = path.join(installdir, "installed_manifest.txt") io.save(manifest_file, { - links = basename, - linkdirs = path.directory(library_file), + links = library_file, libfiles = library_file, version = opt.version}) end @@ -107,6 +106,8 @@ function main(name, opt) -- do install _install_package(name, { + plat = plat, + arch = arch, triplet = triplet, installdir = installdir, version = version,