Merge branch 'docs' into twisted_recipe

This commit is contained in:
Robert Niederreiter 2016-10-14 09:59:11 +02:00
commit 228c4c320d
3 changed files with 61 additions and 11 deletions

2
.gitignore vendored
View file

@ -2,6 +2,8 @@
*.pyc
*.pyo
*.swp
.project
.pydevproject
freetype-*
build/*
dist/*

View file

@ -87,6 +87,7 @@ For a complete list of available commands, type::
$ ./toolchain.py
Create the Xcode project
------------------------
@ -109,6 +110,7 @@ Then click on `Play`, and enjoy.
the `<title>-ios/YourApp` directory. Don't make changes in the -ios
directory directly.
Configuring your App
--------------------
@ -123,6 +125,7 @@ launch environment.
the 'export_orientation' function in 'main.m'. The XCode orientation
settings should be set to support all.
FAQ
---
@ -132,6 +135,7 @@ Fatal error: "stdio.h" file not found
You must build with bitcode disabled (Xcode setting ENABLE_BITCODE should be No).
We don't support bitcode. You need to go to the project setting, and disable bitcode.
Support
-------
@ -146,6 +150,7 @@ We also have an IRC channel:
* Port : 6667, 6697 (SSL only)
* Channel : #kivy
Contributing
------------
@ -165,6 +170,7 @@ IRC channel:
* Port : 6667, 6697 (SSL only)
* Channel : #kivy-dev
License
-------

View file

@ -118,7 +118,9 @@ class JsonStore(object):
with io.open(self.filename, 'w', encoding='utf-8') as fd:
fd.write(unicode(json.dumps(self.data, ensure_ascii=False)))
class Arch(object):
def __init__(self, ctx):
super(Arch, self).__init__()
self.ctx = ctx
@ -135,7 +137,6 @@ class Arch(object):
d.format(arch=self))
for d in self.ctx.include_dirs]
def get_env(self):
include_dirs = [
"-I{}/{}".format(
@ -196,7 +197,6 @@ class Arch(object):
return env
class ArchSimulator(Arch):
sdk = "iphonesimulator"
arch = "i386"
@ -227,7 +227,7 @@ class Arch64IOS(Arch):
triple = "aarch64-apple-darwin13"
version_min = "-miphoneos-version-min=7.0"
sysroot = sh.xcrun("--sdk", "iphoneos", "--show-sdk-path").strip()
class Graph(object):
# Taken from python-for-android/depsort
@ -375,19 +375,60 @@ class Context(object):
class Recipe(object):
version = None
"""Base recipe for compiling and installing dependency libraries and
packages to kivy iOS build.
"""
url = None
"""Either folder name relative to recipe or download URL.
"""
version = None
"""Gets formatted with ``url`` if download URL.
"""
archs = []
"""Architectures this recipe applies, empty list means all.
"""
depends = []
"""Dependency recipes.
"""
optional_depends = []
"""???
"""
library = None
"""???
"""
libraries = []
"""???
"""
include_dir = None
"""Include directory for compilation"""
include_per_arch = False
"""???
"""
frameworks = []
"""OS X frameworks.
"""
sources = []
"""???
"""
pbx_frameworks = []
"""???
"""
pbx_libraries = []
"""???
"""
# API available for recipes
def download_file(self, url, filename, cwd=None):
@ -396,6 +437,7 @@ class Recipe(object):
"""
if not url:
return
def report_hook(index, blksize, size):
if size <= 0:
progression = '{0} bytes'.format(index * blksize)
@ -635,7 +677,7 @@ class Recipe(object):
shutil.copytree(src_dir, dest_dir)
return
ensure_dir(build_dir)
self.extract_file(self.archive_fn, build_dir)
self.extract_file(self.archive_fn, build_dir)
@cache_execution
def build(self, arch):
@ -809,7 +851,7 @@ class Recipe(object):
@classmethod
def get_recipe(cls, name, ctx):
if not hasattr(cls, "recipes"):
cls.recipes = {}
cls.recipes = {}
if '==' in name:
name, version = name.split('==')
@ -847,7 +889,8 @@ class PythonRecipe(Recipe):
"""Automate the installation of a Python package into the target
site-packages.
It will works with the first filtered_archs, and the name of the recipe.
It will works with the first filtered_archs, and the name of the
recipe.
"""
arch = self.filtered_archs[0]
if name is None:
@ -1044,7 +1087,6 @@ def update_pbxproj(filename):
fn = join(ctx.dist_dir, "sources", name)
project.add_folder(fn, parent=g_classes)
if project.modified:
project.backup()
project.save()
@ -1052,13 +1094,13 @@ def update_pbxproj(filename):
if __name__ == "__main__":
import argparse
class ToolchainCL(object):
def __init__(self):
parser = argparse.ArgumentParser(
description="Tool for managing the iOS / Python toolchain",
usage="""toolchain <command> [<args>]
Available commands:
build Build a recipe (compile a library for the required target
architecture)
@ -1174,7 +1216,7 @@ Xcode:
parser.add_argument("name", help="Name of your project")
parser.add_argument("directory", help="Directory where your project live")
args = parser.parse_args(sys.argv[2:])
from cookiecutter.main import cookiecutter
ctx = Context()
template_dir = join(curdir, "tools", "templates")