diff --git a/_preload.lua b/_preload.lua index 4c1cc1b..6336b2d 100644 --- a/_preload.lua +++ b/_preload.lua @@ -23,6 +23,11 @@ kind = "list", } + p.api.register { + name = "xcodeweakframeworks", + scope = "config", + kind = "list", + } -- -- Register the Xcode exporters. diff --git a/xcode_common.lua b/xcode_common.lua index 5159d5c..04e1951 100644 --- a/xcode_common.lua +++ b/xcode_common.lua @@ -370,8 +370,13 @@ onnode = function(node) if node.buildid then settings[node.buildid] = function(level) - _p(level,'%s /* %s in %s */ = {isa = PBXBuildFile; fileRef = %s /* %s */; };', - node.buildid, node.name, xcode.getbuildcategory(node), node.id, node.name) + if node.isWeak then + _p(level,'%s /* %s in %s */ = {isa = PBXBuildFile; fileRef = %s /* %s */; settings = {ATTRIBUTES = (Weak, ); }; };', + node.buildid, node.name, xcode.getbuildcategory(node), node.id, node.name) + else + _p(level,'%s /* %s in %s */ = {isa = PBXBuildFile; fileRef = %s /* %s */; };', + node.buildid, node.name, xcode.getbuildcategory(node), node.id, node.name) + end end end end diff --git a/xcode_project.lua b/xcode_project.lua index e17ca57..b6145f4 100644 --- a/xcode_project.lua +++ b/xcode_project.lua @@ -73,6 +73,7 @@ if xcode.isframework(name) and not tr.frameworks.children[name] then node = tree.insert(tr.frameworks, tree.new(name)) node.path = link + node.isWeak = (cfg.xcodeweakframeworks or {})[name] end end end