summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-02-25 23:09:21 +0800
committerruki <[email protected]>2025-02-25 23:09:21 +0800
commitac47c85eb55b510b6b40a567ad86fb02a7a25425 (patch)
treef56fd0b3a46e5c2f2379310027ca4e4b3ebe16dc
parentc1fac4f233b9c33b897ec3348d908d9560eff385 (diff)
improve links
-rw-r--r--tests/projects/kotlin-native/package/xmake.lua1
-rw-r--r--xmake/languages/kotlin/load.lua9
-rw-r--r--xmake/languages/kotlin/xmake.lua4
-rw-r--r--xmake/modules/core/tools/kotlinc_native.lua5
-rw-r--r--xmake/modules/package/manager/kotlin-native/install_package.lua9
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 1b7d146f3..14d74faf8 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 8d7ad0430..7964351ec 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 3269ea6cd..9820531b8 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 8c703477c..c785f646f 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 aaac0fd33..ed9cb4ab9 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,