Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
and bundles.
:param path: Path to the .xcodeproj file
:param parent: Parent group to be added under
:param tree: Tree where the path is relative to
:param target_name: Target name or list of target names where the file should be added (none for every target)
:param force: Add the file without checking if the file already exists
:param file_options: FileOptions object to be used during the addition of the file to the project.
:return: list of PBXReferenceProxy objects that can be used to create the PBXBuildFile phases.
"""
results = []
# if it's not forced to add the file stop if the file already exists.
if not force:
for section in self.objects.get_sections():
for obj in self.objects.get_objects_in_section(section):
if u'path' in obj and ProjectFiles._path_leaf(path) == ProjectFiles._path_leaf(obj.path):
return []
file_ref, _, path, tree, expected_build_phase = self._add_file_reference(path, parent, tree, force,
file_options)
if path is None or tree is None:
return None
# load project and add the things
child_project = self.__class__.load(os.path.join(path, u'project.pbxproj'))
child_products = child_project.get_build_phases_by_name(u'PBXNativeTarget')
# create an special group without parent (ref proxies)
products_group = PBXGroup.create(name=u'Products', children=[])
self.objects[products_group.get_id()] = products_group
for child_product in child_products:
Header file will be added to the headers sections, but not compiled, whereas the source files will be added to
the compilation phase.
:param path: Path to the file to be added
:param parent: Parent group to be added under
:param tree: Tree where the path is relative to
:param target_name: Target name or list of target names where the file should be added (none for every target)
:param force: Add the file without checking if the file already exists
:param file_options: FileOptions object to be used during the addition of the file to the project.
:return: a list of elements that were added to the project successfully as PBXBuildFile objects
"""
results = []
# if it's not forced to add the file stop if the file already exists.
if not force:
for section in self.objects.get_sections():
for obj in self.objects.get_objects_in_section(section):
if u'path' in obj and ProjectFiles._path_leaf(path) == ProjectFiles._path_leaf(obj.path):
return []
file_ref, abs_path, path, tree, expected_build_phase = self._add_file_reference(path, parent, tree, force,
file_options)
if path is None or tree is None:
return None
# no need to create the build_files, done
if not file_options.create_build_files:
return results
# create build_files for the targets
results.extend(self._create_build_files(file_ref, target_name, expected_build_phase, file_options))
# special case for the frameworks and libraries to update the search paths
if tree != TreeType.SOURCE_ROOT or abs_path is None: