summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkaps316 <[email protected]>2026-04-04 20:40:34 +0530
committerAkaps316 <[email protected]>2026-04-04 20:40:34 +0530
commit2bcd211ec0aa155444f0f3e8b428b4fa365d61d4 (patch)
treecc651ec21d8cbb7c9f86161b7a62116cf288e433
parent482b81ae5d4dc0bca6d2869c94237b48a55a2cfa (diff)
fix(xcode.application): configure dynamic rpath logic and update test env vars
-rw-r--r--tests/projects/objc/macapp_duplicate_rpath/test.lua14
-rw-r--r--xmake/rules/xcode/application/build.lua2
2 files changed, 3 insertions, 13 deletions
diff --git a/tests/projects/objc/macapp_duplicate_rpath/test.lua b/tests/projects/objc/macapp_duplicate_rpath/test.lua
index f2821df14..561d206cf 100644
--- a/tests/projects/objc/macapp_duplicate_rpath/test.lua
+++ b/tests/projects/objc/macapp_duplicate_rpath/test.lua
@@ -3,16 +3,6 @@ function main(t)
return t:skip("wrong host platform")
end
- local homedir = path.absolute("home")
- os.setenv("HOME", homedir)
- os.mkdir(homedir)
- os.mkdir(path.join(homedir, ".xmake"))
-
- local xmake = path.absolute(path.join(os.projectdir(), "build", "xmake"))
- local xmake_program_dir = path.absolute(path.join(os.projectdir(), "xmake"))
- os.setenv("XMAKE_PROGRAM_FILE", xmake)
- os.setenv("XMAKE_PROGRAM_DIR", xmake_program_dir)
-
- os.execv(xmake, {"f", "-p", "macosx", "-a", os.arch(), "-c"})
- os.execv(xmake, {"-vD"})
+ os.execv("xmake", {"f", "-p", "macosx", "-a", os.arch(), "-c"})
+ os.execv("xmake", {"-vD"})
end
diff --git a/xmake/rules/xcode/application/build.lua b/xmake/rules/xcode/application/build.lua
index 57c3655d5..a393ed76b 100644
--- a/xmake/rules/xcode/application/build.lua
+++ b/xmake/rules/xcode/application/build.lua
@@ -50,7 +50,7 @@ function main (target, opt)
-- @see https://github.com/xmake-io/xmake/issues/2679#issuecomment-1221839215
local targetfile = path.join(binarydir, path.filename(target:targetfile()))
try { function () os.vrunv("install_name_tool", {"-delete_rpath", "@loader_path", targetfile}) end }
- local rpath = "@executable_path/../Frameworks"
+ local rpath = target:is_plat("macosx") and "@executable_path/../Frameworks" or "@executable_path/Frameworks"
local rpathdirs = rpath_utils.list(targetfile, {plat = target:plat(), arch = target:arch()}) or {}
if not table.contains(rpathdirs, rpath) then
os.vrunv("install_name_tool", {"-add_rpath", rpath, targetfile})