diff options
| author | ruki <[email protected]> | 2022-08-31 12:51:20 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-08-31 12:51:20 +0800 |
| commit | cfb302ba06a479ffddcf28e8acf727bea5d638fa (patch) | |
| tree | 7191ddbb89c4812cf0b28f2e7aa5d3027363adad /xmake/rules | |
| parent | 3e398cf349c1ff3b9e9ebfa92f9dff99dfa8a97f (diff) | |
| parent | 6046e78b4d3ba893ef99f3e821736830dca1e5c2 (diff) | |
Merge pull request #2745 from xmake-io/symlink
improve symlink
Diffstat (limited to 'xmake/rules')
| -rw-r--r-- | xmake/rules/xcode/application/build.lua | 24 | ||||
| -rw-r--r-- | xmake/rules/xcode/framework/xmake.lua | 4 |
2 files changed, 5 insertions, 23 deletions
diff --git a/xmake/rules/xcode/application/build.lua b/xmake/rules/xcode/application/build.lua index 8089be966..fba9f319f 100644 --- a/xmake/rules/xcode/application/build.lua +++ b/xmake/rules/xcode/application/build.lua @@ -25,25 +25,6 @@ import("core.project.depend") import("private.tools.codesign") import("utils.progress") --- copy frameworks with symlink --- --- TODO we should improve os.cp to support for copying directory with symlink --- os.vcp(frameworkdir, frameworksdir, {symlink = true}) -function copy_frameworks(frameworkdir, frameworksdir) - os.mkdir(frameworksdir) - local frameworkdir_dst = path.join(frameworksdir, path.filename(frameworkdir)) - os.tryrm(frameworkdir_dst) - for _, filepath in ipairs(os.filedirs(path.join(frameworkdir, "*"))) do - if path.filename(filepath) == "Versions" then - copy_frameworks(filepath, frameworkdir_dst) - else - local dstpath = path.join(frameworkdir_dst, path.filename(filepath)) - os.tryrm(dstpath) - os.cp(filepath, dstpath, {symlink = true}) - end - end -end - -- main entry function main (target, opt) @@ -77,7 +58,10 @@ function main (target, opt) if dep:kind() == "shared" then local frameworkdir = dep:data("xcode.bundle.rootdir") if dep:rule("xcode.framework") and frameworkdir then - copy_frameworks(frameworkdir, frameworksdir, {symlink = true}) + if not os.isdir(frameworkdir) then + os.mkdir(frameworksdir) + end + os.cp(frameworkdir, frameworksdir, {symlink = true}) else os.vcp(dep:targetfile(), binarydir) end diff --git a/xmake/rules/xcode/framework/xmake.lua b/xmake/rules/xcode/framework/xmake.lua index 687b67208..6fffa8f46 100644 --- a/xmake/rules/xcode/framework/xmake.lua +++ b/xmake/rules/xcode/framework/xmake.lua @@ -172,9 +172,7 @@ rule("xcode.framework") if not os.isdir(installdir) then os.mkdir(installdir) end - -- TODO we should improve os.cp to support symlink - --os.vcp(bundledir, installdir, {symlink = true}) - appbuild.copy_frameworks(bundledir, installdir) + os.vcp(bundledir, installdir, {symlink = true}) end end) |
