#!/usr/bin/env python import errno import os import platform import sys # URL to the mips64el sysroot image. MIPS64EL_SYSROOT_URL = 'https://github.com/electron/debian-sysroot-image-creator/releases/download/v0.5.0/debian_jessie_mips64-sysroot.tar.bz2' # URL to the mips64el toolchain. MIPS64EL_GCC = 'gcc-4.8.3-d197-n64-loongson' MIPS64EL_GCC_URL = 'http://ftp.loongnix.org/toolchain/gcc/release/' + MIPS64EL_GCC + '.tar.gz' BASE_URL = os.getenv('LIBCHROMIUMCONTENT_MIRROR') or \ 'https://s3.amazonaws.com/github-janky-artifacts/libchromiumcontent' PLATFORM = { 'cygwin': 'win32', 'darwin': 'darwin', 'linux2': 'linux', 'win32': 'win32', }[sys.platform] verbose_mode = False def get_platform_key(): if os.environ.has_key('MAS_BUILD'): return 'mas' else: return PLATFORM def get_target_arch(): try: target_arch_path = os.path.join(__file__, '..', '..', '..', 'vendor', 'download', 'libchromiumcontent', '.target_arch') with open(os.path.normpath(target_arch_path)) as f: return f.read().strip() except IOError as e: if e.errno != errno.ENOENT: raise return 'x64' def get_env_var(name): value = os.environ.get('ELECTRON_' + name, '') if not value: # TODO Remove ATOM_SHELL_* fallback values value = os.environ.get('ATOM_SHELL_' + name, '') if value: print 'Warning: Use $ELECTRON_' + name + ' instead of $ATOM_SHELL_' + name return value def s3_config(): config = (get_env_var('S3_BUCKET'), get_env_var('S3_ACCESS_KEY'), get_env_var('S3_SECRET_KEY')) message = ('Error: Please set the $ELECTRON_S3_BUCKET, ' '$ELECTRON_S3_ACCESS_KEY, and ' '$ELECTRON_S3_SECRET_KEY environment variables') assert all(len(c) for c in config), message return config def enable_verbose_mode(): print 'Running in verbose mode' global verbose_mode verbose_mode = True def is_verbose_mode(): return verbose_mode def get_zip_name(name, version, suffix=''): arch = get_target_arch() if arch == 'arm': arch += 'v7l' zip_name = '{0}-{1}-{2}-{3}'.format(name, version, get_platform_key(), arch) if suffix: zip_name += '-' + suffix return zip_name + '.zip' def build_env(): env = os.environ.copy() if get_target_arch() == "mips64el": SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor') gcc_dir = os.path.join(VENDOR_DIR, MIPS64EL_GCC) ldlib_dirs = [ gcc_dir + '/usr/x86_64-unknown-linux-gnu/mips64el-redhat-linux/lib', gcc_dir + '/usr/lib64', gcc_dir + '/usr/mips64el-redhat-linux/lib64', gcc_dir + '/usr/mips64el-redhat-linux/sysroot/lib64', gcc_dir + '/usr/mips64el-redhat-linux/sysroot/usr/lib64', ] env['LD_LIBRARY_PATH'] = os.pathsep.join(ldlib_dirs) env['PATH'] = os.pathsep.join([gcc_dir + '/usr/bin', env['PATH']]) return env