From 42d6bb724785bf92664aa9ef85ecdd0121edf67d Mon Sep 17 00:00:00 2001 From: Andrey Kunitsyn Date: Thu, 20 Oct 2016 20:57:22 +0300 Subject: [PATCH] support weak frameworks --- _preload.lua | 5 +++++ xcode_common.lua | 9 +++++++-- xcode_project.lua | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) 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