mirror of
https://github.com/servo/servo.git
synced 2025-06-29 11:33:39 +01:00
Upgraded to SM 60
This commit is contained in:
parent
d34403047e
commit
74c1e00d81
290 changed files with 26572 additions and 1178 deletions
|
@ -25,6 +25,7 @@ from mach.decorators import (
|
|||
)
|
||||
from mach.registrar import Registrar
|
||||
|
||||
from mach_bootstrap import _get_exec_path
|
||||
from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX
|
||||
from servo.util import host_triple
|
||||
|
||||
|
@ -271,8 +272,10 @@ class MachCommands(CommandBase):
|
|||
sys.exit(1)
|
||||
|
||||
android_platform = self.config["android"]["platform"]
|
||||
android_toolchain = self.config["android"]["toolchain_name"]
|
||||
android_arch = "arch-" + self.config["android"]["arch"]
|
||||
android_toolchain_name = self.config["android"]["toolchain_name"]
|
||||
android_toolchain_prefix = self.config["android"]["toolchain_prefix"]
|
||||
android_lib = self.config["android"]["lib"]
|
||||
android_arch = self.config["android"]["arch"]
|
||||
|
||||
# Build OpenSSL for android
|
||||
env["OPENSSL_VERSION"] = "1.0.2k"
|
||||
|
@ -298,7 +301,7 @@ class MachCommands(CommandBase):
|
|||
sys.exit(1)
|
||||
|
||||
env["RUST_TARGET"] = target
|
||||
env["ANDROID_TOOLCHAIN_NAME"] = self.config["android"]["toolchain_prefix"]
|
||||
env["ANDROID_TOOLCHAIN_NAME"] = android_toolchain_name
|
||||
with cd(openssl_dir):
|
||||
status = call(
|
||||
make_cmd + ["-f", "openssl.makefile"],
|
||||
|
@ -324,30 +327,67 @@ class MachCommands(CommandBase):
|
|||
host_suffix = "x86_64"
|
||||
host = os_type + "-" + host_suffix
|
||||
|
||||
env['PATH'] = path.join(
|
||||
env['ANDROID_NDK'], "toolchains", android_toolchain, "prebuilt", host, "bin"
|
||||
) + ':' + env['PATH']
|
||||
env['ANDROID_SYSROOT'] = path.join(env['ANDROID_NDK'], "platforms", android_platform, android_arch)
|
||||
host_cc = env.get('HOST_CC') or _get_exec_path(["clang"]) or _get_exec_path(["gcc"])
|
||||
host_cxx = env.get('HOST_CXX') or _get_exec_path(["clang++"]) or _get_exec_path(["g++"])
|
||||
|
||||
llvm_toolchain = path.join(env['ANDROID_NDK'], "toolchains", "llvm", "prebuilt", host)
|
||||
gcc_toolchain = path.join(env['ANDROID_NDK'], "toolchains",
|
||||
android_toolchain_prefix + "-4.9", "prebuilt", host)
|
||||
gcc_libs = path.join(gcc_toolchain, "lib", "gcc", android_toolchain_name, "4.9.x")
|
||||
|
||||
env['PATH'] = (path.join(llvm_toolchain, "bin") + ':'
|
||||
+ path.join(gcc_toolchain, "bin") + ':'
|
||||
+ env['PATH'])
|
||||
env['ANDROID_SYSROOT'] = path.join(env['ANDROID_NDK'], "platforms",
|
||||
android_platform, "arch-" + android_arch)
|
||||
support_include = path.join(env['ANDROID_NDK'], "sources", "android", "support", "include")
|
||||
cxx_include = path.join(
|
||||
env['ANDROID_NDK'], "sources", "cxx-stl", "llvm-libc++", "libcxx", "include")
|
||||
cxxabi_include = path.join(
|
||||
env['ANDROID_NDK'], "sources", "cxx-stl", "llvm-libc++abi", "libcxxabi", "include")
|
||||
sysroot_include = path.join(
|
||||
env['ANDROID_SYSROOT'], "usr", "include")
|
||||
cxx_include = path.join(env['ANDROID_NDK'], "sources", "cxx-stl",
|
||||
"llvm-libc++", "libcxx", "include")
|
||||
sysroot_include = path.join(env['ANDROID_SYSROOT'], "usr", "include")
|
||||
env['HOST_CC'] = host_cc
|
||||
env['HOST_CXX'] = host_cxx
|
||||
env['HOST_CFLAGS'] = ''
|
||||
env['HOST_CXXFLAGS'] = ''
|
||||
env['CC'] = path.join(llvm_toolchain, "bin", "clang")
|
||||
env['CPP'] = path.join(llvm_toolchain, "bin", "clang") + " -E"
|
||||
env['CXX'] = path.join(llvm_toolchain, "bin", "clang++")
|
||||
env['ANDROID_TOOLCHAIN'] = gcc_toolchain
|
||||
env['GCC_TOOLCHAIN'] = gcc_toolchain
|
||||
gcc_toolchain_bin = path.join(gcc_toolchain, android_toolchain_name, "bin")
|
||||
env['AR'] = path.join(gcc_toolchain_bin, "ar")
|
||||
env['RANLIB'] = path.join(gcc_toolchain_bin, "ranlib")
|
||||
env['OBJCOPY'] = path.join(gcc_toolchain_bin, "objcopy")
|
||||
env['YASM'] = path.join(env['ANDROID_NDK'], 'prebuilt', host, 'bin', 'yasm')
|
||||
# A cheat-sheet for some of the build errors caused by getting the search path wrong...
|
||||
#
|
||||
# fatal error: 'limits' file not found
|
||||
# -- add -I cxx_include
|
||||
# unknown type name '__locale_t' (when running bindgen in mozjs_sys)
|
||||
# -- add -isystem sysroot_include
|
||||
# error: use of undeclared identifier 'UINTMAX_C'
|
||||
# -- add -D__STDC_CONSTANT_MACROS
|
||||
#
|
||||
# Also worth remembering: autoconf uses C for its configuration,
|
||||
# even for C++ builds, so the C flags need to line up with the C++ flags.
|
||||
env['CFLAGS'] = ' '.join([
|
||||
"--target=" + target,
|
||||
"--sysroot=" + env['ANDROID_SYSROOT'],
|
||||
"-I" + support_include])
|
||||
"--gcc-toolchain=" + gcc_toolchain,
|
||||
"-isystem", sysroot_include,
|
||||
"-L" + gcc_libs])
|
||||
env['CXXFLAGS'] = ' '.join([
|
||||
"--target=" + target,
|
||||
"--sysroot=" + env['ANDROID_SYSROOT'],
|
||||
"--gcc-toolchain=" + gcc_toolchain,
|
||||
"-I" + support_include,
|
||||
"-I" + cxx_include,
|
||||
"-I" + cxxabi_include,
|
||||
"-I" + sysroot_include])
|
||||
"-isystem", sysroot_include,
|
||||
"-L" + gcc_libs,
|
||||
"-D__STDC_CONSTANT_MACROS",
|
||||
"-D__NDK_FPABI__="])
|
||||
env["NDK_ANDROID_VERSION"] = android_platform.replace("android-", "")
|
||||
env['CPPFLAGS'] = ' '.join(["--sysroot", env['ANDROID_SYSROOT']])
|
||||
env["CMAKE_ANDROID_ARCH_ABI"] = self.config["android"]["lib"]
|
||||
env["CMAKE_ANDROID_ARCH_ABI"] = android_lib
|
||||
env["CMAKE_TOOLCHAIN_FILE"] = path.join(self.android_support_dir(), "toolchain.cmake")
|
||||
# Set output dir for gradle aar files
|
||||
aar_out_dir = self.android_aar_dir()
|
||||
|
@ -355,6 +395,11 @@ class MachCommands(CommandBase):
|
|||
os.makedirs(aar_out_dir)
|
||||
env["AAR_OUT_DIR"] = aar_out_dir
|
||||
|
||||
if very_verbose:
|
||||
print (["Calling", "cargo", "build"] + opts)
|
||||
for key in env:
|
||||
print((key, env[key]))
|
||||
|
||||
status = self.call_rustup_run(["cargo", "build"] + opts, env=env, verbose=verbose)
|
||||
elapsed = time() - build_start
|
||||
|
||||
|
|
|
@ -503,8 +503,13 @@ class CommandBase(object):
|
|||
env["OPENSSL_INCLUDE_DIR"] = path.join(package_dir("openssl"), "include")
|
||||
env["OPENSSL_LIB_DIR"] = path.join(package_dir("openssl"), "lib" + msvc_x64)
|
||||
env["OPENSSL_LIBS"] = "libsslMD:libcryptoMD"
|
||||
# Link moztools
|
||||
env["MOZTOOLS_PATH"] = path.join(package_dir("moztools"), "bin")
|
||||
# Link moztools, used for building SpiderMonkey
|
||||
env["MOZTOOLS_PATH"] = os.pathsep.join([
|
||||
path.join(package_dir("moztools"), "bin"),
|
||||
path.join(package_dir("moztools"), "msys", "bin"),
|
||||
])
|
||||
# Link autoconf 2.13, used for building SpiderMonkey
|
||||
env["AUTOCONF"] = path.join(package_dir("moztools"), "msys", "local", "bin", "autoconf-2.13")
|
||||
# Link LLVM
|
||||
env["LIBCLANG_PATH"] = path.join(package_dir("llvm"), "lib")
|
||||
|
||||
|
@ -650,21 +655,13 @@ class CommandBase(object):
|
|||
return "emulator"
|
||||
|
||||
def handle_android_target(self, target):
|
||||
if target == "arm-linux-androideabi":
|
||||
self.config["android"]["platform"] = "android-18"
|
||||
self.config["android"]["target"] = target
|
||||
self.config["android"]["toolchain_prefix"] = target
|
||||
self.config["android"]["arch"] = "arm"
|
||||
self.config["android"]["lib"] = "armeabi"
|
||||
self.config["android"]["toolchain_name"] = target + "-4.9"
|
||||
return True
|
||||
elif target == "armv7-linux-androideabi":
|
||||
if target == "armv7-linux-androideabi":
|
||||
self.config["android"]["platform"] = "android-18"
|
||||
self.config["android"]["target"] = target
|
||||
self.config["android"]["toolchain_prefix"] = "arm-linux-androideabi"
|
||||
self.config["android"]["arch"] = "arm"
|
||||
self.config["android"]["lib"] = "armeabi-v7a"
|
||||
self.config["android"]["toolchain_name"] = "arm-linux-androideabi-4.9"
|
||||
self.config["android"]["toolchain_name"] = "arm-linux-androideabi"
|
||||
return True
|
||||
elif target == "aarch64-linux-android":
|
||||
self.config["android"]["platform"] = "android-21"
|
||||
|
@ -672,15 +669,16 @@ class CommandBase(object):
|
|||
self.config["android"]["toolchain_prefix"] = target
|
||||
self.config["android"]["arch"] = "arm64"
|
||||
self.config["android"]["lib"] = "arm64-v8a"
|
||||
self.config["android"]["toolchain_name"] = target + "-4.9"
|
||||
self.config["android"]["toolchain_name"] = target
|
||||
return True
|
||||
elif target == "i686-linux-android":
|
||||
self.config["android"]["platform"] = "android-18"
|
||||
# https://github.com/jemalloc/jemalloc/issues/1279
|
||||
self.config["android"]["platform"] = "android-21"
|
||||
self.config["android"]["target"] = target
|
||||
self.config["android"]["toolchain_prefix"] = "x86"
|
||||
self.config["android"]["arch"] = "x86"
|
||||
self.config["android"]["lib"] = "x86"
|
||||
self.config["android"]["toolchain_name"] = "x86-4.9"
|
||||
self.config["android"]["toolchain_name"] = target
|
||||
return True
|
||||
return False
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
WINDOWS_MSVC = {
|
||||
"cmake": "3.7.2",
|
||||
"llvm": "6.0.0",
|
||||
"moztools": "0.0.1-5",
|
||||
"moztools": "3.2",
|
||||
"ninja": "1.7.1",
|
||||
"openssl": "1.1.0e-vs2015",
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue