diff --git a/kivy_ios/toolchain.py b/kivy_ios/toolchain.py index f1130153..b92f7b11 100755 --- a/kivy_ios/toolchain.py +++ b/kivy_ios/toolchain.py @@ -1188,7 +1188,7 @@ def _hostpython_pip(args): shprint(pip_cmd, *args) -def update_pbxproj(filename, pbx_frameworks=None): +def update_pbxproj(filename, pbx_frameworks=None, custom_recipes=None, custom_recipes_paths=None): # list all the compiled recipes ctx = Context() pbx_libraries = [] @@ -1197,7 +1197,17 @@ def update_pbxproj(filename, pbx_frameworks=None): frameworks = [] libraries = [] sources = [] + + if custom_recipes and custom_recipes_paths: + recipes = custom_recipes + ctx.custom_recipes_paths = custom_recipes_paths + else: + recipes = [] + for recipe in Recipe.list_recipes(): + recipes.append(recipe) + + for recipe in recipes: key = "{}.build_all".format(recipe) if key not in ctx.state: continue @@ -1457,6 +1467,9 @@ def update(self): parser = argparse.ArgumentParser( description="Update an existing xcode project") parser.add_argument("filename", help="Path to your project or xcodeproj") + parser.add_argument("recipes", nargs="+", help="Recipes to update") + parser.add_argument("--add-custom-recipe", action="append", default=[], + help="Path to custom recipe (the recipe must already have been built with the 'build' command)") parser.add_argument("--add-framework", action="append", help="Additional Frameworks to include with this project") args = parser.parse_args(sys.argv[2:]) @@ -1466,7 +1479,8 @@ def update(self): logger.error("{} not found".format(filename)) sys.exit(1) - update_pbxproj(filename, pbx_frameworks=args.add_framework) + update_pbxproj(filename, pbx_frameworks=args.add_framework, + custom_recipes=args.recipes, custom_recipes_paths=args.add_custom_recipe) print("--") print("Project {} updated".format(filename))