diff options
| author | ruki <[email protected]> | 2019-09-01 22:23:02 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-09-01 22:23:02 +0800 |
| commit | 279a2581ca28a85edbbcb18bc3934cc198c222b8 (patch) | |
| tree | 187cfea6ecf5af2d2c3eae0b7e60bf0be496b894 | |
| parent | 80b583a69845241f61e142c99341c18583316171 (diff) | |
fix merge archive
| -rw-r--r-- | tests/projects/other/merge_object/xmake.lua | 2 | ||||
| -rw-r--r-- | xmake/rules/utils/merge_archive/xmake.lua | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/tests/projects/other/merge_object/xmake.lua b/tests/projects/other/merge_object/xmake.lua index d55b610b8..772bc2c18 100644 --- a/tests/projects/other/merge_object/xmake.lua +++ b/tests/projects/other/merge_object/xmake.lua @@ -12,7 +12,7 @@ target("merge_object") -- save object file after_build_file(function (target, sourcefile) - os.cp(target:objectfile(sourcefile), "$(buildir)/merge_object") + os.cp(target:objectfile(sourcefile), "$(buildir)/merge_object/") end) -- add target diff --git a/xmake/rules/utils/merge_archive/xmake.lua b/xmake/rules/utils/merge_archive/xmake.lua index ee72530d5..d78b0258c 100644 --- a/xmake/rules/utils/merge_archive/xmake.lua +++ b/xmake/rules/utils/merge_archive/xmake.lua @@ -37,16 +37,14 @@ rule("utils.merge.archive") -- get object directory of the archive file local objectdir = target:objectfile(sourcefile_lib) .. ".dir" - -- add objectfiles - local objectfiles = os.files(path.join(objectdir, "**" .. project_target.filename("", "object"))) - table.join2(target:objectfiles(), objectfiles) - -- load dependent info local dependfile = target:dependfile(objectdir) local dependinfo = option.get("rebuild") and {} or (depend.load(dependfile) or {}) -- need build this object? if not depend.is_changed(dependinfo, {lastmtime = os.mtime(objectdir)}) then + local objectfiles = os.files(path.join(objectdir, "**" .. project_target.filename("", "object"))) + table.join2(target:objectfiles(), objectfiles) return end @@ -66,6 +64,10 @@ rule("utils.merge.archive") os.tryrm(objectdir) extractor.extract(sourcefile_lib, objectdir) + -- add objectfiles + local objectfiles = os.files(path.join(objectdir, "**" .. project_target.filename("", "object"))) + table.join2(target:objectfiles(), objectfiles) + -- update files to the dependent file dependinfo.files = {} table.insert(dependinfo.files, sourcefile_lib) |
