summaryrefslogtreecommitdiff
path: root/xmake/rules/xcode/framework/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-04-04 20:14:50 +0800
committerruki <[email protected]>2020-04-04 20:14:50 +0800
commitc7cb8b53e3c55986488b59aaf1c4c8eb7f191769 (patch)
tree8b44ca62092524587ea706181c1e8e43dc663bc5 /xmake/rules/xcode/framework/xmake.lua
parent06fd899783907bef41d1c3b4d6a7b5ed9a06b54c (diff)
improve xcode.framework rule
Diffstat (limited to 'xmake/rules/xcode/framework/xmake.lua')
-rw-r--r--xmake/rules/xcode/framework/xmake.lua20
1 files changed, 16 insertions, 4 deletions
diff --git a/xmake/rules/xcode/framework/xmake.lua b/xmake/rules/xcode/framework/xmake.lua
index f4439acb6..dca0097a2 100644
--- a/xmake/rules/xcode/framework/xmake.lua
+++ b/xmake/rules/xcode/framework/xmake.lua
@@ -23,7 +23,6 @@ rule("xcode.framework")
-- we must set kind before target.on_load(), may we will use target in on_load()
before_load(function (target)
-
-- get framework directory
local targetdir = target:targetdir()
@@ -39,17 +38,17 @@ rule("xcode.framework")
target:data_set("inherit.links", false) -- disable to inherit links, @see rule("utils.inherit.links")
target:add("frameworks", target:basename(), {interface = true})
target:add("frameworkdirs", targetdir, {interface = true})
+ target:add("includedirs", path.join(frameworkdir, "Versions", "A", "Headers.tmp"), {interface = true})
-- register clean files for `xmake clean`
target:add("cleanfiles", frameworkdir)
end)
- after_build(function (target)
+ before_build(function (target)
-- get framework directory
local frameworkdir = path.absolute(target:data("xcode.frameworkdir"))
- local headersdir = path.join(frameworkdir, "Versions", "A", "Headers")
- local resourcesdir = path.join(frameworkdir, "Versions", "A", "Resources")
+ local headersdir = path.join(frameworkdir, "Versions", "A", "Headers.tmp", target:basename())
-- copy header files to the framework directory
local srcheaders, dstheaders = target:headerfiles(headersdir)
@@ -66,6 +65,19 @@ rule("xcode.framework")
if not os.isdir(headersdir) then
os.mkdir(headersdir)
end
+ end)
+
+ after_build(function (target)
+
+ -- get framework directory
+ local frameworkdir = path.absolute(target:data("xcode.frameworkdir"))
+ local headersdir = path.join(frameworkdir, "Versions", "A", "Headers")
+ local resourcesdir = path.join(frameworkdir, "Versions", "A", "Resources")
+
+ -- move header files
+ os.tryrm(headersdir)
+ os.mv(path.join(frameworkdir, "Versions", "A", "Headers.tmp", target:basename()), headersdir)
+ os.rm(path.join(frameworkdir, "Versions", "A", "Headers.tmp"))
-- copy resource files to the framework directory
local srcfiles, dstfiles = target:installfiles(resourcesdir)