Add component to build mksnapshot binaries for armv7/arm64

This commit is contained in:
John Kleinschmidt 2018-03-26 13:07:39 -04:00
Родитель 0db3730512
Коммит cc54122da1
7 изменённых файлов: 66 добавлений и 21 удалений

Просмотреть файл

@ -34,7 +34,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent.zip
path: libchromiumcontent.tar.bz2
libchromiumcontent-linux-x64-static:
docker:
@ -70,7 +70,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent-static.zip
path: libchromiumcontent-static.tar.bz2
libchromiumcontent-linux-ia32-shared:
docker:
@ -106,7 +106,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent.zip
path: libchromiumcontent.tar.bz2
libchromiumcontent-linux-ia32-static:
docker:
@ -142,7 +142,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent-static.zip
path: libchromiumcontent-static.tar.bz2
libchromiumcontent-linux-arm-shared:
docker:
@ -159,6 +159,9 @@ jobs:
- run:
name: Update
command: script/update --clean -t $TARGET_ARCH
- run:
name: Build mksnapshot
command: script/build -t $TARGET_ARCH -c native_mksnapshot
- run:
name: Build shared library
command: script/build -t $TARGET_ARCH -c $COMPONENT
@ -166,9 +169,12 @@ jobs:
name: Build FFmpeg
command: script/build -t $TARGET_ARCH -c ffmpeg
- run:
name: Create distribution
name: Create shared distribution
command: script/create-dist -t $TARGET_ARCH -c $COMPONENT
no_output_timeout: 20m
- run:
name: Create mksnapshot distribution
command: script/create-dist -t $TARGET_ARCH -c native_mksnapshot
- run:
name: Upload to S3
command: |
@ -178,7 +184,9 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent.zip
path: libchromiumcontent.tar.bz2
- store_artifacts:
path: native-mksnapshot.tar.bz2
libchromiumcontent-linux-arm-static:
docker:
@ -214,7 +222,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent-static.zip
path: libchromiumcontent-static.tar.bz2
libchromiumcontent-linux-arm64-shared:
docker:
@ -231,6 +239,9 @@ jobs:
- run:
name: Update
command: script/update --clean -t $TARGET_ARCH
- run:
name: Build mksnapshot
command: script/build -t $TARGET_ARCH -c native_mksnapshot
- run:
name: Build shared library
command: script/build -t $TARGET_ARCH -c $COMPONENT
@ -238,9 +249,12 @@ jobs:
name: Build FFmpeg
command: script/build -t $TARGET_ARCH -c ffmpeg
- run:
name: Create distribution
name: Create shared distribution
command: script/create-dist -t $TARGET_ARCH -c $COMPONENT
no_output_timeout: 20m
- run:
name: Create mksnapshot distribution
command: script/create-dist -t $TARGET_ARCH -c native_mksnapshot
- run:
name: Upload to S3
command: |
@ -250,7 +264,9 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent.zip
path: libchromiumcontent.tar.bz2
- store_artifacts:
path: native-mksnapshot.tar.bz2
libchromiumcontent-linux-arm64-static:
docker:
@ -286,7 +302,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent-static.zip
path: libchromiumcontent-static.tar.bz2
libchromiumcontent-linux-mips64el-shared:
docker:
@ -322,7 +338,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent.zip
path: libchromiumcontent.tar.bz2
libchromiumcontent-linux-mips64el-static:
docker:
@ -358,7 +374,7 @@ jobs:
script/upload -t $TARGET_ARCH
fi
- store_artifacts:
path: libchromiumcontent-static.zip
path: libchromiumcontent-static.tar.bz2
workflows:
version: 2

5
.gitignore поставляемый
Просмотреть файл

@ -3,11 +3,12 @@
*.pyc
/dist/
/src/
/libchromiumcontent.zip
/libchromiumcontent-static.zip
/libchromiumcontent.tar.bz2
/libchromiumcontent-static.tar.bz2
/vendor/binutils-aarch64
/vendor/cross-gcc-4.9.3-n64-loongson-rc5.4
.gclient
.gclient_entries
_gclient_src_*
s3credentials
/native-mksnapshot.tar.bz2

Просмотреть файл

@ -0,0 +1,14 @@
root_extra_deps = [ "//v8:v8_maybe_snapshot" ]
is_electron_build = true
is_component_build = false
is_debug = false
enable_linux_installer = false
v8_use_snapshot = true
v8_enable_i18n_support = false
if (target_cpu == "arm") {
v8_snapshot_toolchain="//build/toolchain/linux:clang_arm"
}
if (target_cpu == "arm64") {
v8_snapshot_toolchain="//build/toolchain/linux:clang_arm64"
}

Просмотреть файл

@ -11,7 +11,7 @@ from lib.config import MIPS64EL_GCC, set_mips64el_env, get_output_dir
SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor')
COMPONENTS = ['static_library', 'shared_library', 'ffmpeg', 'tests']
COMPONENTS = ['static_library', 'shared_library', 'ffmpeg', 'tests', 'native_mksnapshot']
NINJA = os.path.join(VENDOR_DIR, 'depot_tools', 'ninja')
if sys.platform == 'win32':
@ -51,6 +51,8 @@ def main():
target = 'chromiumcontent:chromiumcontent'
if component == 'tests':
target = 'chromiumcontent:chromiumcontent_tests'
if component == 'native_mksnapshot':
target = 'v8:mksnapshot'
subprocess.check_call([NINJA, '-C', os.path.relpath(out_dir), target], env=env)
if component == 'static_library':
subenv = env.copy()

Просмотреть файл

@ -56,7 +56,7 @@ STATIC_LIBRARY_SUFFIX = {
'win32': 'lib',
}[TARGET_PLATFORM]
COMPONENTS = ['static_library', 'shared_library']
COMPONENTS = ['static_library', 'shared_library','native_mksnapshot']
BINARIES = {
'all': [
'content_shell.pak',
@ -390,7 +390,8 @@ def main():
subprocess.check_call([NINJA, '-C', MAIN_DIR])
for component in COMPONENTS:
if args.component == 'all' or args.component == component:
if ((args.component == 'all' or args.component == component)
and args.component != 'native_mksnapshot'):
strip_binaries(args.create_debug_archive, args.keep_debug_symbols,
component, os.path.join(MAIN_DIR, component),
args.target_arch)
@ -415,6 +416,7 @@ def generate_ninja(args, ninja):
copy_generated_sources(target_arch, component, ninja)
copy_locales(target_arch, component, ninja)
if args.component != 'native_mksnapshot':
copy_ffmpeg(target_arch, ninja)
copy_sources(ninja)
generate_licenses(ninja)
@ -475,6 +477,11 @@ def copy_binaries(target_arch, component, create_debug_archive,
output_dir = get_output_dir(SOURCE_ROOT, target_arch, component)
target_dir = component
if component == 'native_mksnapshot':
ninja.copy(os.path.join(output_dir, 'mksnapshot'), target_dir)
copy_dir('gen', relative_to=output_dir, destination=target_dir, ninja=ninja)
return
binaries = BINARIES['all'] + BINARIES[TARGET_PLATFORM]
if component == 'shared_library':
binaries += BINARIES_SHARED_LIBRARY[TARGET_PLATFORM]
@ -734,6 +741,10 @@ def create_archive(create_debug_archive, component):
print 'Packing static_library builds...'
p = os.path.join(SOURCE_ROOT, 'libchromiumcontent-static.tar.bz2')
make_archive(MAIN_DIR, ['static_library'], [], p)
if component == 'native_mksnapshot':
print 'Packing native mksnapshot...'
p = os.path.join(SOURCE_ROOT, 'native-mksnapshot.tar.bz2')
make_archive(MAIN_DIR, ['native_mksnapshot'], ['LICENSES.chromium.html'], p)
def make_archive(src, dirs, files, target):

Просмотреть файл

@ -23,7 +23,7 @@ VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor')
SRC_DIR = os.path.join(SOURCE_ROOT, 'src')
CHROMIUMCONTENT_SOURCE_DIR = os.path.join(SOURCE_ROOT, 'chromiumcontent')
CHROMIUMCONTENT_DESTINATION_DIR = os.path.join(SRC_DIR, 'chromiumcontent')
COMPONENTS = ['static_library', 'shared_library', 'ffmpeg', 'tests']
COMPONENTS = ['static_library', 'shared_library', 'ffmpeg', 'tests', 'native_mksnapshot']
DEPOT_TOOLS = os.path.join(VENDOR_DIR, 'depot_tools')
DEBIAN_MIRROR = 'http://ftp.jp.debian.org/debian/pool/main/'

Просмотреть файл

@ -44,9 +44,10 @@ def upload(target_arch):
else:
platform = PLATFORM_KEY
upload_files = glob.glob('libchromiumcontent*.tar.bz2') + glob.glob('native-mksnapshot.tar.bz2')
s3put(bucket, access_key, secret_key, SOURCE_ROOT,
'libchromiumcontent/{0}/{1}/{2}'.format(platform, target_arch, commit),
glob.glob('libchromiumcontent*.tar.bz2'))
upload_files)
def s3_config():