kivy-ios/recipes/openssl/__init__.py

49 lines
1.6 KiB
Python

from toolchain import Recipe, shprint
from os.path import join
import sh
arch_mapper = {'i386': 'darwin-i386-cc',
'x86_64': 'darwin64-x86_64-cc',
'armv7': 'iphoneos-cross',
'arm64': 'iphoneos-cross'}
class OpensslRecipe(Recipe):
version = "1.0.2l"
url = "http://www.openssl.org/source/openssl-{version}.tar.gz"
depends = ["hostopenssl"]
libraries = ["libssl.a", "libcrypto.a"]
include_dir = "include"
include_per_arch = True
def build_arch(self, arch):
options_iphoneos = (
"-isysroot {}".format(arch.sysroot),
"-DOPENSSL_THREADS",
"-D_REENTRANT",
"-DDSO_DLFCN",
"-DHAVE_DLFCN_H",
"-fomit-frame-pointer",
"-fno-common",
"-O3"
)
build_env = arch.get_env()
target = arch_mapper[arch.arch]
shprint(sh.env, _env=build_env)
sh.perl(join(self.build_dir, "Configure"),
target,
_env=build_env)
if target == 'iphoneos-cross':
sh.sed("-ie", "s!^CFLAG=.*!CFLAG={} {}!".format(build_env['CFLAGS'],
" ".join(options_iphoneos)),
"Makefile")
sh.sed("-ie", "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;! ",
"crypto/ui/ui_openssl.c")
else:
sh.sed("-ie", "s!^CFLAG=!CFLAG={} !".format(build_env['CFLAGS']),
"Makefile")
shprint(sh.make, "clean")
shprint(sh.make, self.ctx.concurrent_make, "build_libs")
recipe = OpensslRecipe()