toolchain: factorize cythonize_build, cythonize and big link
This commit is contained in:
parent
aa3ea83bad
commit
6238831a83
5 changed files with 23 additions and 85 deletions
|
@ -16,19 +16,6 @@ class FFPyplayerRecipe(Recipe):
|
||||||
"CoreMotion"]
|
"CoreMotion"]
|
||||||
pbx_libraries = ["libiconv"]
|
pbx_libraries = ["libiconv"]
|
||||||
|
|
||||||
def cythonize(self, filename):
|
|
||||||
if filename.startswith(self.build_dir):
|
|
||||||
filename = filename[len(self.build_dir) + 1:]
|
|
||||||
print("Cythonize {}".format(filename))
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "cythonize.py"))
|
|
||||||
shprint(cmd, filename)
|
|
||||||
|
|
||||||
def cythonize_build(self):
|
|
||||||
root_dir = self.build_dir
|
|
||||||
for root, dirnames, filenames in os.walk(root_dir):
|
|
||||||
for filename in fnmatch.filter(filenames, "*.pyx"):
|
|
||||||
self.cythonize(join(root, filename))
|
|
||||||
|
|
||||||
def get_kivy_env(self, arch):
|
def get_kivy_env(self, arch):
|
||||||
build_env = arch.get_env()
|
build_env = arch.get_env()
|
||||||
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
||||||
|
@ -59,14 +46,6 @@ class FFPyplayerRecipe(Recipe):
|
||||||
_env=build_env)
|
_env=build_env)
|
||||||
self.biglink()
|
self.biglink()
|
||||||
|
|
||||||
def biglink(self):
|
|
||||||
dirs = []
|
|
||||||
for root, dirnames, filenames in os.walk(self.build_dir):
|
|
||||||
if fnmatch.filter(filenames, "*.so.libs"):
|
|
||||||
dirs.append(root)
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "biglink"))
|
|
||||||
shprint(cmd, join(self.build_dir, "libffpyplayer.a"), *dirs)
|
|
||||||
|
|
||||||
def install(self):
|
def install(self):
|
||||||
arch = list(self.filtered_archs)[0]
|
arch = list(self.filtered_archs)[0]
|
||||||
build_dir = self.get_build_dir(arch.arch)
|
build_dir = self.get_build_dir(arch.arch)
|
||||||
|
|
|
@ -13,19 +13,6 @@ class IosRecipe(Recipe):
|
||||||
depends = ["python"]
|
depends = ["python"]
|
||||||
pbx_frameworks = ["MessageUI", "CoreMotion", "UIKit"]
|
pbx_frameworks = ["MessageUI", "CoreMotion", "UIKit"]
|
||||||
|
|
||||||
def cythonize(self, filename):
|
|
||||||
if filename.startswith(self.build_dir):
|
|
||||||
filename = filename[len(self.build_dir) + 1:]
|
|
||||||
print("Cythonize {}".format(filename))
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "cythonize.py"))
|
|
||||||
shprint(cmd, filename)
|
|
||||||
|
|
||||||
def cythonize_build(self):
|
|
||||||
root_dir = self.build_dir
|
|
||||||
for root, dirnames, filenames in os.walk(root_dir):
|
|
||||||
for filename in fnmatch.filter(filenames, "*.pyx"):
|
|
||||||
self.cythonize(join(root, filename))
|
|
||||||
|
|
||||||
def get_kivy_env(self, arch):
|
def get_kivy_env(self, arch):
|
||||||
build_env = arch.get_env()
|
build_env = arch.get_env()
|
||||||
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
||||||
|
@ -43,14 +30,6 @@ class IosRecipe(Recipe):
|
||||||
_env=build_env)
|
_env=build_env)
|
||||||
self.biglink()
|
self.biglink()
|
||||||
|
|
||||||
def biglink(self):
|
|
||||||
dirs = []
|
|
||||||
for root, dirnames, filenames in os.walk(self.build_dir):
|
|
||||||
if fnmatch.filter(filenames, "*.so.libs"):
|
|
||||||
dirs.append(root)
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "biglink"))
|
|
||||||
shprint(cmd, join(self.build_dir, "libios.a"), *dirs)
|
|
||||||
|
|
||||||
def install(self):
|
def install(self):
|
||||||
arch = list(self.filtered_archs)[0]
|
arch = list(self.filtered_archs)[0]
|
||||||
build_dir = self.get_build_dir(arch.arch)
|
build_dir = self.get_build_dir(arch.arch)
|
||||||
|
|
|
@ -13,19 +13,6 @@ class KivyRecipe(Recipe):
|
||||||
depends = ["python", "sdl2", "sdl2_image", "sdl2_mixer", "sdl2_ttf", "ios"]
|
depends = ["python", "sdl2", "sdl2_image", "sdl2_mixer", "sdl2_ttf", "ios"]
|
||||||
pbx_frameworks = ["OpenGLES", "Accelerate"]
|
pbx_frameworks = ["OpenGLES", "Accelerate"]
|
||||||
|
|
||||||
def cythonize(self, filename):
|
|
||||||
if filename.startswith(self.build_dir):
|
|
||||||
filename = filename[len(self.build_dir) + 1:]
|
|
||||||
print("Cythonize {}".format(filename))
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "cythonize.py"))
|
|
||||||
shprint(cmd, filename)
|
|
||||||
|
|
||||||
def cythonize_build(self):
|
|
||||||
root_dir = join(self.build_dir, "kivy")
|
|
||||||
for root, dirnames, filenames in os.walk(root_dir):
|
|
||||||
for filename in fnmatch.filter(filenames, "*.pyx"):
|
|
||||||
self.cythonize(join(root, filename))
|
|
||||||
|
|
||||||
def get_kivy_env(self, arch):
|
def get_kivy_env(self, arch):
|
||||||
build_env = arch.get_env()
|
build_env = arch.get_env()
|
||||||
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
||||||
|
@ -55,14 +42,6 @@ class KivyRecipe(Recipe):
|
||||||
_env=build_env)
|
_env=build_env)
|
||||||
self.biglink()
|
self.biglink()
|
||||||
|
|
||||||
def biglink(self):
|
|
||||||
dirs = []
|
|
||||||
for root, dirnames, filenames in os.walk(self.build_dir):
|
|
||||||
if fnmatch.filter(filenames, "*.so.libs"):
|
|
||||||
dirs.append(root)
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "biglink"))
|
|
||||||
shprint(cmd, join(self.build_dir, "libkivy.a"), *dirs)
|
|
||||||
|
|
||||||
def _patch_setup(self):
|
def _patch_setup(self):
|
||||||
# patch setup to remove some functionnalities
|
# patch setup to remove some functionnalities
|
||||||
pyconfig = join(self.build_dir, "setup.py")
|
pyconfig = join(self.build_dir, "setup.py")
|
||||||
|
|
|
@ -12,19 +12,6 @@ class PyobjusRecipe(Recipe):
|
||||||
library = "libpyobjus.a"
|
library = "libpyobjus.a"
|
||||||
depends = ["python"]
|
depends = ["python"]
|
||||||
|
|
||||||
def cythonize(self, filename):
|
|
||||||
if filename.startswith(self.build_dir):
|
|
||||||
filename = filename[len(self.build_dir) + 1:]
|
|
||||||
print("Cythonize {}".format(filename))
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "cythonize.py"))
|
|
||||||
shprint(cmd, filename)
|
|
||||||
|
|
||||||
def cythonize_build(self):
|
|
||||||
root_dir = self.build_dir
|
|
||||||
for root, dirnames, filenames in os.walk(root_dir):
|
|
||||||
for filename in fnmatch.filter(filenames, "*.pyx"):
|
|
||||||
self.cythonize(join(root, filename))
|
|
||||||
|
|
||||||
def get_kivy_env(self, arch):
|
def get_kivy_env(self, arch):
|
||||||
build_env = arch.get_env()
|
build_env = arch.get_env()
|
||||||
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
build_env["KIVYIOSROOT"] = self.ctx.root_dir
|
||||||
|
@ -54,14 +41,6 @@ class PyobjusRecipe(Recipe):
|
||||||
_env=build_env)
|
_env=build_env)
|
||||||
self.biglink()
|
self.biglink()
|
||||||
|
|
||||||
def biglink(self):
|
|
||||||
dirs = []
|
|
||||||
for root, dirnames, filenames in os.walk(self.build_dir):
|
|
||||||
if fnmatch.filter(filenames, "*.so.libs"):
|
|
||||||
dirs.append(root)
|
|
||||||
cmd = sh.Command(join(self.ctx.root_dir, "tools", "biglink"))
|
|
||||||
shprint(cmd, join(self.build_dir, "libpyobjus.a"), *dirs)
|
|
||||||
|
|
||||||
def install(self):
|
def install(self):
|
||||||
arch = list(self.filtered_archs)[0]
|
arch = list(self.filtered_archs)[0]
|
||||||
build_dir = self.get_build_dir(arch.arch)
|
build_dir = self.get_build_dir(arch.arch)
|
||||||
|
|
24
toolchain.py
24
toolchain.py
|
@ -9,13 +9,14 @@ This tool intend to replace all the previous tools/ in shell script.
|
||||||
import sys
|
import sys
|
||||||
from sys import stdout
|
from sys import stdout
|
||||||
from os.path import join, dirname, realpath, exists, isdir, basename
|
from os.path import join, dirname, realpath, exists, isdir, basename
|
||||||
from os import listdir, unlink, makedirs, environ, chdir, getcwd
|
from os import listdir, unlink, makedirs, environ, chdir, getcwd, walk
|
||||||
import zipfile
|
import zipfile
|
||||||
import tarfile
|
import tarfile
|
||||||
import importlib
|
import importlib
|
||||||
import io
|
import io
|
||||||
import json
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
|
import fnmatch
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
try:
|
try:
|
||||||
from urllib.request import FancyURLopener
|
from urllib.request import FancyURLopener
|
||||||
|
@ -505,6 +506,27 @@ class Recipe(object):
|
||||||
def get_build_dir(self, arch):
|
def get_build_dir(self, arch):
|
||||||
return join(self.ctx.build_dir, self.name, arch, self.archive_root)
|
return join(self.ctx.build_dir, self.name, arch, self.archive_root)
|
||||||
|
|
||||||
|
def cythonize(self, filename):
|
||||||
|
if filename.startswith(self.build_dir):
|
||||||
|
filename = filename[len(self.build_dir) + 1:]
|
||||||
|
print("Cythonize {}".format(filename))
|
||||||
|
cmd = sh.Command(join(self.ctx.root_dir, "tools", "cythonize.py"))
|
||||||
|
shprint(cmd, filename)
|
||||||
|
|
||||||
|
def cythonize_build(self):
|
||||||
|
root_dir = self.build_dir
|
||||||
|
for root, dirnames, filenames in walk(root_dir):
|
||||||
|
for filename in fnmatch.filter(filenames, "*.pyx"):
|
||||||
|
self.cythonize(join(root, filename))
|
||||||
|
|
||||||
|
def biglink(self):
|
||||||
|
dirs = []
|
||||||
|
for root, dirnames, filenames in walk(self.build_dir):
|
||||||
|
if fnmatch.filter(filenames, "*.so.libs"):
|
||||||
|
dirs.append(root)
|
||||||
|
cmd = sh.Command(join(self.ctx.root_dir, "tools", "biglink"))
|
||||||
|
shprint(cmd, join(self.build_dir, "lib{}.a".format(self.name)), *dirs)
|
||||||
|
|
||||||
# Public Recipe API to be subclassed if needed
|
# Public Recipe API to be subclassed if needed
|
||||||
|
|
||||||
def init_with_ctx(self, ctx):
|
def init_with_ctx(self, ctx):
|
||||||
|
|
Loading…
Reference in a new issue