From 3f380b8e1d1dadd05aa2587d3a9a60b009dcced6 Mon Sep 17 00:00:00 2001
From: Jussi Pakkanen <jpakkane@gmail.com>
Date: Fri, 20 Aug 2021 19:24:19 +0300
Subject: Fix duplicated frameworks in the Xcode backend.

---
 mesonbuild/backend/xcodebackend.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

(limited to 'mesonbuild/backend/xcodebackend.py')

diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index 6e12cbd..01053c1 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -136,6 +136,9 @@ class PbxDict:
         self.keys.add(key)
         self.items.append(item)
 
+    def has_item(self, key):
+        return key in self.keys
+
     def add_comment(self, comment):
         if isinstance(comment, str):
             self.items.append(PbxComment(str))
@@ -710,7 +713,10 @@ class XCodeBackend(backends.Backend):
                 if isinstance(dep, dependencies.AppleFrameworks):
                     for f in dep.frameworks:
                         fw_dict = PbxDict()
-                        objects_dict.add_item(self.native_frameworks_fileref[f], fw_dict, f)
+                        framework_fileref = self.native_frameworks_fileref[f]
+                        if objects_dict.has_item(framework_fileref):
+                            continue
+                        objects_dict.add_item(framework_fileref, fw_dict, f)
                         fw_dict.add_item('isa', 'PBXFileReference')
                         fw_dict.add_item('lastKnownFileType', 'wrapper.framework')
                         fw_dict.add_item('name', f'{f}.framework')
-- 
cgit v1.1