def main(): parser = argparse.ArgumentParser( description="Run cpplint on Electron's C++ files", formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('-c', '--only-changed', action='store_true', default=False, dest='only_changed', help='only run on changed files') parser.add_argument('-v', '--verbose', action='store_true', default=False, dest='verbose', help='show cpplint output') args = parser.parse_args() if not os.path.isfile(cpplint_path()): print( "[INFO] Skipping cpplint, dependencies has not been bootstrapped") return if args.verbose: enable_verbose_mode() os.chdir(SOURCE_ROOT) files = find_files(['atom', 'brightray'], is_cpp_file) files -= IGNORE_FILES if args.only_changed: files &= find_changed_files() call_cpplint(files)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() if PLATFORM != 'win32': update_clang() update_submodules() setup_requests() update_node_modules('.') bootstrap_brightray(args.dev, args.url, args.target_arch) if args.target_arch in ['arm', 'ia32'] and PLATFORM == 'linux': download_sysroot(args.target_arch) create_chrome_version_h() touch_config_gypi() run_update() update_electron_modules('spec', args.target_arch)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() config = args.configuration if args.verbose: enable_verbose_mode() spec_modules = os.path.join(SOURCE_ROOT, 'spec', 'node_modules') out_dir = os.path.join(SOURCE_ROOT, 'out', config) version = get_electron_version() node_dir = os.path.join(out_dir, 'node-{0}'.format(version)) # Create node headers script_path = os.path.join(SOURCE_ROOT, 'script', 'create-node-headers.py') execute_stdout([sys.executable, script_path, '--version', version, '--directory', out_dir]) if PLATFORM == 'win32': lib_dir = os.path.join(node_dir, 'Release') safe_mkdir(lib_dir) iojs_lib = os.path.join(lib_dir, 'iojs.lib') atom_lib = os.path.join(out_dir, 'node.dll.lib') shutil.copy2(atom_lib, iojs_lib) node_lib = os.path.join(lib_dir, 'node.lib') shutil.copy2(atom_lib, node_lib) # Native modules can only be compiled against release builds on Windows if config[0] == 'R' or PLATFORM != 'win32': update_electron_modules(os.path.dirname(spec_modules), get_target_arch(), node_dir) else: update_node_modules(os.path.dirname(spec_modules))
def main(): args = parse_args() if args.chromium_dir: globals().update(CHROMIUM_DIR=args.chromium_dir) if args.verbose: enable_verbose_mode() rm_rf(DIST_DIR) os.makedirs(DIST_DIR) force_build() create_symbols() copy_binaries() copy_chrome_binary('chromedriver') copy_chrome_binary('mksnapshot') copy_license() if PLATFORM == 'win32': copy_vcruntime_binaries() copy_ucrt_binaries() if PLATFORM != 'win32' and not args.no_api_docs: create_api_json_schema() create_typescript_definitions() if PLATFORM == 'linux': strip_binaries() create_version() create_dist_zip() create_chrome_binary_zip('chromedriver', ELECTRON_VERSION) create_chrome_binary_zip('mksnapshot', ELECTRON_VERSION) create_ffmpeg_zip() create_symbols_zip()
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() if PLATFORM != 'win32': update_clang() update_submodules() setup_python_libs() update_node_modules('.') bootstrap_brightray(args.dev, args.url, args.target_arch, args.libcc_source_path, args.libcc_shared_library_path, args.libcc_static_library_path) if args.target_arch in ['arm', 'ia32'] and PLATFORM == 'linux': download_sysroot(args.target_arch) create_chrome_version_h() touch_config_gypi() run_update() update_electron_modules('spec', args.target_arch)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() config = args.configuration if args.verbose: enable_verbose_mode() spec_modules = os.path.join(SOURCE_ROOT, 'spec', 'node_modules') out_dir = os.path.join(SOURCE_ROOT, 'out', config) version = get_electron_version() node_dir = os.path.join(out_dir, 'node-{0}'.format(version)) # Create node headers script_path = os.path.join(SOURCE_ROOT, 'script', 'create-node-headers.py') execute_stdout([ sys.executable, script_path, '--version', version, '--directory', out_dir ]) if PLATFORM == 'win32': lib_dir = os.path.join(node_dir, 'Release') safe_mkdir(lib_dir) iojs_lib = os.path.join(lib_dir, 'iojs.lib') atom_lib = os.path.join(out_dir, 'node.dll.lib') shutil.copy2(atom_lib, iojs_lib) # Native modules can only be compiled against release builds on Windows if config == 'R' or PLATFORM != 'win32': update_electron_modules(os.path.dirname(spec_modules), get_target_arch(), node_dir) else: update_node_modules(os.path.dirname(spec_modules))
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() # ./script/bootstrap # ./script/update -t x64 --defines='' # ./script/build --no_shared_library -t x64 # ./script/create-dist -c static_library -t x64 --no_zip script_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', 'libchromiumcontent', 'script') bootstrap = os.path.join(script_dir, 'bootstrap') update = os.path.join(script_dir, 'update') build = os.path.join(script_dir, 'build') create_dist = os.path.join(script_dir, 'create-dist') execute_stdout([sys.executable, bootstrap]) execute_stdout([ sys.executable, update, '-t', args.target_arch, '--defines', args.defines ]) execute_stdout([sys.executable, build, '-R', '-t', args.target_arch]) execute_stdout([ sys.executable, create_dist, '-c', 'static_library', '--no_zip', '-t', args.target_arch ])
def main(): os.chdir(LIBCC_DIR) args = parse_args() if args.verbose: enable_verbose_mode() # ./script/bootstrap # ./script/update -t x64 --defines='' # ./script/build --no_shared_library -t x64 # ./script/create-dist -c static_library -t x64 --no_zip script_dir = os.path.join(LIBCC_DIR, 'script') bootstrap = os.path.join(script_dir, 'bootstrap') update = os.path.join(script_dir, 'update') build = os.path.join(script_dir, 'build') create_dist = os.path.join(script_dir, 'create-dist') if args.force_update or libchromiumcontent_outdated(): execute_stdout([sys.executable, bootstrap]) execute_stdout([sys.executable, update, '-t', args.target_arch, '--defines', args.defines]) update_gclient_done_marker() if args.debug: execute_stdout([sys.executable, build, '-D', '-t', args.target_arch]) execute_stdout([sys.executable, create_dist, '-c', 'shared_library', '--no_zip', '--keep-debug-symbols', '-t', args.target_arch]) else: execute_stdout([sys.executable, build, '-R', '-t', args.target_arch]) execute_stdout([sys.executable, create_dist, '-c', 'static_library', '--no_zip', '-t', args.target_arch])
def main(): parser = argparse.ArgumentParser( description="Run cpplint on Electron's C++ files", formatter_class=argparse.RawTextHelpFormatter ) parser.add_argument( '-c', '--only-changed', action='store_true', default=False, dest='only_changed', help='only run on changed files' ) parser.add_argument( '-v', '--verbose', action='store_true', default=False, dest='verbose', help='show cpplint output' ) args = parser.parse_args() if not os.path.isfile(cpplint_path()): print("[INFO] Skipping cpplint, dependencies has not been bootstrapped") return if args.verbose: enable_verbose_mode() os.chdir(SOURCE_ROOT) files = find_files(['atom', 'brightray'], is_cpp_file) files -= IGNORE_FILES if args.only_changed: files &= find_changed_files() call_cpplint(files)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() defines = args_to_defines(args) if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() # update_submodules() # libcc_source_path = args.libcc_source_path # libcc_shared_library_path = args.libcc_shared_library_path # libcc_static_library_path = args.libcc_static_library_path # # Redirect to use local libchromiumcontent build. # if args.build_libchromiumcontent: # build_libchromiumcontent(args.verbose, args.target_arch, defines) # dist_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', # 'libchromiumcontent', 'dist', 'main') # libcc_source_path = os.path.join(dist_dir, 'src') # libcc_shared_library_path = os.path.join(dist_dir, 'shared_library') # libcc_static_library_path = os.path.join(dist_dir, 'static_library') # if PLATFORM != 'win32': # if not args.disable_clang and args.clang_dir == '': # # Download prebuilt clang binaries. # update_clang() # setup_python_libs() update_node_modules('.')
def main(): os.chdir(LIBCC_DIR) args = parse_args() if args.verbose: enable_verbose_mode() # ./script/bootstrap # ./script/update -t x64 # ./script/build --no_shared_library -t x64 # ./script/create-dist -c static_library -t x64 --no_zip script_dir = os.path.join(LIBCC_DIR, 'script') bootstrap = os.path.join(script_dir, 'bootstrap') update = os.path.join(script_dir, 'update') build = os.path.join(script_dir, 'build') create_dist = os.path.join(script_dir, 'create-dist') if args.force_update or libchromiumcontent_outdated(): execute_stdout([sys.executable, bootstrap]) execute_stdout([sys.executable, update, '-t', args.target_arch]) update_gclient_done_marker() if args.debug: execute_stdout([sys.executable, build, '-D', '-t', args.target_arch]) execute_stdout([ sys.executable, create_dist, '-c', 'shared_library', '--no_zip', '--keep-debug-symbols', '-t', args.target_arch ]) else: execute_stdout([sys.executable, build, '-R', '-t', args.target_arch]) execute_stdout([ sys.executable, create_dist, '-c', 'static_library', '--no_zip', '-t', args.target_arch ])
def main(): args = parse_args() if args.verbose: enable_verbose_mode() if args.file: strip_binary(args.file, args.target_cpu) else: strip_binaries(args.directory, args.target_cpu)
def main(): args = parse_args() env = os.environ.copy() with scoped_cwd(WEB_DISCOVERY_DIR): if args.verbose: enable_verbose_mode() if args.install: execute_stdout([NPM, 'install'], env=env) if args.build: execute_stdout([NPM, 'run', 'build-module'], env=env)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() defines = args_to_defines(args) if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() check_tls(args.verbose) update_submodules() libcc_source_path = args.libcc_source_path libcc_shared_library_path = args.libcc_shared_library_path libcc_static_library_path = args.libcc_static_library_path if args.target_arch == 'mips64el': download_mips64el_toolchain() if args.target_arch.startswith('arm'): download_native_mksnapshot(args.target_arch) # Redirect to use local libchromiumcontent build. if args.build_release_libcc or args.build_debug_libcc: build_libchromiumcontent(args.verbose, args.target_arch, args.build_debug_libcc, args.update_libcc) dist_dir = os.path.join(VENDOR_DIR, 'libchromiumcontent', 'dist', 'main') libcc_source_path = os.path.join(dist_dir, 'src') libcc_shared_library_path = os.path.join(dist_dir, 'shared_library') libcc_static_library_path = os.path.join(dist_dir, 'static_library') if PLATFORM != 'win32': if not args.disable_clang and args.clang_dir == '': # Download prebuilt clang binaries. update_clang() setup_python_libs() update_node_modules('.') setup_libchromiumcontent(args.dev, args.target_arch, args.url, libcc_source_path, libcc_shared_library_path, libcc_static_library_path) if PLATFORM == 'linux' and args.target_arch != 'mips64el': download_sysroot(args.target_arch) create_chrome_version_h() touch_config_gypi() run_update(defines, args.msvs)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() config = args.configuration if args.verbose: enable_verbose_mode() os.environ['ELECTRON_ENABLE_LOGGING'] = '1' spec_modules = os.path.join(SOURCE_ROOT, 'spec', 'node_modules') if args.rebuild_native_modules or not os.path.isdir(spec_modules): rebuild_native_modules(args.verbose, config) if sys.platform == 'darwin': electron = os.path.join(SOURCE_ROOT, 'out', config, '{0}.app'.format(PRODUCT_NAME), 'Contents', 'MacOS', PRODUCT_NAME) resources_path = os.path.join(SOURCE_ROOT, 'out', config, '{0}.app'.format(PRODUCT_NAME), 'Contents', 'Resources') elif sys.platform == 'win32': electron = os.path.join(SOURCE_ROOT, 'out', config, '{0}.exe'.format(PROJECT_NAME)) resources_path = os.path.join(SOURCE_ROOT, 'out', config) if config != 'R': os.environ['ELECTRON_SKIP_NATIVE_MODULE_TESTS'] = '1' else: electron = os.path.join(SOURCE_ROOT, 'out', config, PROJECT_NAME) resources_path = os.path.join(SOURCE_ROOT, 'out', config) returncode = 0 try: if args.use_instrumented_asar: install_instrumented_asar_file(resources_path) os.environ["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "1" subprocess.check_call([electron, 'spec'] + sys.argv[1:]) except subprocess.CalledProcessError as e: returncode = e.returncode except KeyboardInterrupt: returncode = 0 if args.use_instrumented_asar: restore_uninstrumented_asar_file(resources_path) if os.environ.has_key('OUTPUT_TO_FILE'): output_to_file = os.environ['OUTPUT_TO_FILE'] with open(output_to_file, 'r') as f: print f.read() rm_rf(output_to_file) return returncode
def main(): args = parse_args() env = os.environ.copy() with scoped_cwd(WEB_DISCOVERY_DIR): if args.verbose: enable_verbose_mode() if args.install: execute_stdout([NPM, 'install', '--no-save', '--yes'], env=env) if args.build: env["OUTPUT_PATH"] = args.output_path execute_stdout([NPM, 'run', 'build-module'], env=env)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() setup_python_libs() update_node_modules('.')
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() # Update the VS build env. import_vs_env(get_target_arch()) # decide which ninja executable to use ninja_path = args.ninja_path if not ninja_path: ninja_path = os.path.join('vendor', 'depot_tools', 'ninja') if sys.platform == 'win32': ninja_path += '.exe' # decide how to invoke ninja ninja = [ninja_path] if is_verbose_mode(): ninja.append('-v') if args.libcc: if ('D' not in args.configuration or not os.path.exists(GCLIENT_DONE) or not os.path.exists(os.path.join(LIBCC_DIST_MAIN, 'build.ninja'))): sys.stderr.write('--libcc should only be used when ' 'libchromiumcontent was built with bootstrap.py -d ' '--debug_libchromiumcontent' + os.linesep) sys.exit(1) script = os.path.join(LIBCC_SOURCE_ROOT, 'script', 'build') subprocess.check_call([sys.executable, script, '-D', '-t', get_target_arch()]) subprocess.check_call(ninja + ['-C', LIBCC_DIST_MAIN]) env = build_env() for config in args.configuration: build_path = os.path.join('out', config[0]) build_args = ['-C', build_path, args.target] if args.compdb: build_args += ['-t', 'compdb', 'cxx', 'cc'] compdb = open(r'compile_commands.json','w') ret = subprocess.call(ninja + build_args, env=env, stdout=compdb) compdb.close() else: ret = subprocess.call(ninja + build_args, env=env) if ret != 0: sys.exit(ret)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() defines = args_to_defines(args) if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() libcc_source_path = args.libcc_source_path libcc_shared_library_path = args.libcc_shared_library_path libcc_static_library_path = args.libcc_static_library_path # Redirect to use local libchromiumcontent build. if args.build_libchromiumcontent: build_libchromiumcontent(args.verbose, args.target_arch, defines) dist_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', 'libchromiumcontent', 'dist', 'main') libcc_source_path = os.path.join(dist_dir, 'src') libcc_shared_library_path = os.path.join(dist_dir, 'shared_library') libcc_static_library_path = os.path.join(dist_dir, 'static_library') if PLATFORM != 'win32': # Download prebuilt clang binaries. update_clang() if not args.disable_clang and args.clang_dir == '': # Build with prebuilt clang. set_clang_env(os.environ) setup_python_libs() update_node_modules('.') bootstrap_brightray(args.dev, args.url, args.target_arch, libcc_source_path, libcc_shared_library_path, libcc_static_library_path) if PLATFORM == 'linux': download_sysroot(args.target_arch) create_chrome_version_h() touch_config_gypi() run_update(defines) update_electron_modules('spec', args.target_arch)
def main(): args = parse_args() if args.verbose: enable_verbose_mode() rm_rf(args.destination) source_root = os.path.abspath(args.source_root) build_path = os.path.join(source_root, args.build_dir) (project_name, product_name) = get_names_from_branding() if PLATFORM in ['darwin', 'linux']: if PLATFORM == 'darwin': #macOS has an additional helper app; provide the path to that binary also main_app = os.path.join(build_path, '{0}.app'.format(product_name), 'Contents', 'MacOS', product_name) helper_name = product_name + " Helper" helper_app = os.path.join(build_path, '{0}.app'.format(helper_name), 'Contents', 'MacOS', product_name + " Helper") binaries = [main_app, helper_app] for binary in binaries: generate_posix_symbols(binary, source_root, build_path, args.destination) else: binary = os.path.join(build_path, project_name) generate_posix_symbols(binary, source_root, build_path, args.destination) else: generate_breakpad_symbols = os.path.join( ELECTRON_ROOT, 'tools', 'win', 'generate_breakpad_symbols.py') args = [ '--symbols-dir={0}'.format(args.destination), '--jobs=16', os.path.relpath(build_path), ] if is_verbose_mode(): args += ['-v'] #Make sure msdia140.dll is in the path (needed for dump_syms.exe) env = os.environ.copy() msdia140_dll_path = os.path.join(GN_SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'bin') env['PATH'] = os.path.pathsep.join([env.get('PATH', '')] + [msdia140_dll_path]) execute([sys.executable, generate_breakpad_symbols] + args, env)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if (args.yes is False and sys.platform not in ('win32', 'cygwin')): check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() update_node_modules('.') bootstrap_brightray(args.dev, args.url) create_chrome_version_h() touch_config_gypi() update_atom_shell() update_atom_modules('spec')
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() update_node_modules('.') bootstrap_brightray(args.dev, args.url, args.target_arch) create_chrome_version_h() touch_config_gypi() update_atom_shell() update_atom_modules('spec', args.target_arch)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if not args.yes and PLATFORM != 'win32': check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() update_node_modules('.') bootstrap_brightray(args.dev, args.url, args.target_arch) create_chrome_version_h() touch_config_gypi() run_update() update_electron_modules('spec', args.target_arch)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() update_submodules() update_node_modules('.') update_atom_modules('spec') bootstrap_brightray(args.url) if sys.platform == 'cygwin': update_win32_python() if sys.platform in ['win32', 'cygwin']: install_runas() create_chrome_version_h() touch_config_gypi() update_atom_shell()
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() update_node_modules('.') bootstrap_brightray(args.url) if sys.platform in ['win32', 'cygwin']: install_runas() create_chrome_version_h() touch_config_gypi() update_atom_shell() update_atom_modules('spec')
def main(): args = parse_args() if args.verbose: enable_verbose_mode() rm_rf(args.destination) source_root = os.path.abspath(args.source_root) build_path = os.path.join(source_root, args.build_dir) (project_name, product_name) = get_names_from_branding() if PLATFORM in ['darwin', 'linux']: if PLATFORM == 'darwin': #macOS has an additional helper app; provide the path to that binary also main_app = os.path.join(build_path, '{0}.app'.format(product_name), 'Contents', 'MacOS', product_name) helper_name = product_name + " Helper" helper_app = os.path.join(build_path, '{0}.app'.format(helper_name), 'Contents', 'MacOS', product_name + " Helper") binaries = [main_app, helper_app] for binary in binaries: generate_posix_symbols(binary, source_root, build_path, args.destination) else: binary = os.path.join(build_path, project_name) generate_posix_symbols(binary, source_root, build_path, args.destination) else: generate_breakpad_symbols = os.path.join(ELECTRON_ROOT, 'tools', 'win', 'generate_breakpad_symbols.py') args = [ '--symbols-dir={0}'.format(args.destination), '--jobs=16', os.path.relpath(build_path), ] if is_verbose_mode(): args += ['-v'] #Make sure msdia140.dll is in the path (needed for dump_syms.exe) env = os.environ.copy() msdia140_dll_path = os.path.join(SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'bin') env['PATH'] = os.path.pathsep.join( [env.get('PATH', '')] + [msdia140_dll_path]) execute([sys.executable, generate_breakpad_symbols] + args, env)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() defines = args_to_defines(args) if not args.yes and PLATFORM != "win32": check_root() if args.verbose: enable_verbose_mode() if sys.platform == "cygwin": update_win32_python() update_submodules() libcc_source_path = args.libcc_source_path libcc_shared_library_path = args.libcc_shared_library_path libcc_static_library_path = args.libcc_static_library_path # Redirect to use local libchromiumcontent build. if args.build_libchromiumcontent: build_libchromiumcontent(args.verbose, args.target_arch, defines) dist_dir = os.path.join(SOURCE_ROOT, "vendor", "brightray", "vendor", "libchromiumcontent", "dist", "main") libcc_source_path = os.path.join(dist_dir, "src") libcc_shared_library_path = os.path.join(dist_dir, "shared_library") libcc_static_library_path = os.path.join(dist_dir, "static_library") if PLATFORM != "win32": if not args.disable_clang and args.clang_dir == "": # Download prebuilt clang binaries. update_clang() setup_python_libs() update_node_modules(".") bootstrap_brightray( args.dev, args.url, args.target_arch, libcc_source_path, libcc_shared_library_path, libcc_static_library_path ) if PLATFORM == "linux": download_sysroot(args.target_arch) create_chrome_version_h() touch_config_gypi() run_update(defines, args.msvs) update_electron_modules("spec", args.target_arch)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if (args.yes is False and sys.platform not in ('win32', 'cygwin')): check_root() if args.verbose: enable_verbose_mode() if sys.platform == 'cygwin': update_win32_python() update_submodules() update_node_modules('.') bootstrap_brightray(args.url) create_chrome_version_h() touch_config_gypi() update_atom_shell() update_atom_modules('spec')
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() # Update the VS build env. import_vs_env(get_target_arch()) # decide which ninja executable to use ninja_path = args.ninja_path if not ninja_path: ninja_path = os.path.join('vendor', 'depot_tools', 'ninja') if sys.platform == 'win32': ninja_path += '.exe' # decide how to invoke ninja ninja = [ninja_path] if is_verbose_mode(): ninja.append('-v') if args.libcc: if ('D' not in args.configuration or not os.path.exists(GCLIENT_DONE) or not os.path.exists(os.path.join(LIBCC_DIST_MAIN, 'build.ninja'))): sys.stderr.write('--libcc should only be used when ' 'libchromiumcontent was built with bootstrap.py -d ' '--debug_libchromiumcontent' + os.linesep) sys.exit(1) script = os.path.join(LIBCC_SOURCE_ROOT, 'script', 'build') subprocess.check_call([sys.executable, script, '-D', '-t', get_target_arch()]) subprocess.check_call(ninja + ['-C', LIBCC_DIST_MAIN]) env = build_env() for config in args.configuration: build_path = os.path.join('out', config[0]) ret = subprocess.call(ninja + ['-C', build_path, args.target], env=env) if ret != 0: sys.exit(ret)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() if args.verbose: enable_verbose_mode() # ./script/bootstrap # ./script/update -t x64 --defines='' # ./script/build --no_shared_library -t x64 # ./script/create-dist -c static_library -t x64 --no_zip script_dir = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', 'libchromiumcontent', 'script') bootstrap = os.path.join(script_dir, 'bootstrap') update = os.path.join(script_dir, 'update') build = os.path.join(script_dir, 'build') create_dist = os.path.join(script_dir, 'create-dist') execute_stdout([sys.executable, bootstrap]) execute_stdout([sys.executable, update, '-t', args.target_arch, '--defines', args.defines]) execute_stdout([sys.executable, build, '-R', '-t', args.target_arch]) execute_stdout([sys.executable, create_dist, '-c', 'static_library', '--no_zip', '-t', args.target_arch])
def main(): args = parse_args() if args.verbose: enable_verbose_mode() rm_rf(args.destination) source_root = os.path.abspath(args.source_root) build_path = os.path.join(source_root, args.build_dir) product_name = gn(build_path).args().get_string('electron_product_name') project_name = gn(build_path).args().get_string('electron_project_name') if PLATFORM in ['darwin', 'linux']: if PLATFORM == 'darwin': #macOS has an additional helper app; provide the path to that binary also main_app = os.path.join(build_path, '{0}.app'.format(product_name), 'Contents', 'MacOS', product_name) helper_name = product_name + " Helper" helper_app = os.path.join(build_path, '{0}.app'.format(helper_name), 'Contents', 'MacOS', product_name + " Helper") binaries = [main_app, helper_app] for binary in binaries: generate_posix_symbols(binary, source_root, build_path, args.destination) else: binary = os.path.join(build_path, project_name) generate_posix_symbols(binary, source_root, build_path, args.destination) else: generate_breakpad_symbols = os.path.join(ELECTRON_ROOT, 'tools', 'win', 'generate_breakpad_symbols.py') args = [ '--symbols-dir={0}'.format(args.destination), '--jobs=16', os.path.relpath(build_path), ] execute([sys.executable, generate_breakpad_symbols] + args)
def main(): os.chdir(SOURCE_ROOT) args = parse_args() defines = args_to_defines(args) if args.verbose: enable_verbose_mode() update_submodules() libcc_source_path = args.libcc_source_path libcc_shared_library_path = args.libcc_shared_library_path libcc_static_library_path = args.libcc_static_library_path if args.build_libchromiumcontent: build_libchromiumcontent(args.verbose, args.target_arch) dist_dir = os.path.join(VENDOR_DIR, 'brightray', 'vendor', 'libchromiumcontent', 'dist', 'main') libcc_source_path = os.path.join(dist_dir, 'src') libcc_shared_library_path = os.path.join(dist_dir, 'shared_library') libcc_static_library_path = os.path.join(dist_dir, 'static_library') if PLATFORM != 'win32': # Download prebuilt clang binaries. update_clang() setup_python_libs() bootstrap_brightray(args.dev, BASE_URL, args.target_arch, libcc_source_path, libcc_shared_library_path, libcc_static_library_path) create_chrome_version_h() run_update(defines, args.msvs)
def main(): args = parse_args() if args.verbose: enable_verbose_mode() if args.upload_to_s3: utcnow = datetime.datetime.utcnow() args.upload_timestamp = utcnow.strftime('%Y%m%d') build_version = get_electron_build_version() if not ELECTRON_VERSION.startswith(build_version): error = 'Tag name ({0}) should match build version ({1})\n'.format( ELECTRON_VERSION, build_version) sys.stderr.write(error) sys.stderr.flush() return 1 tag_exists = False release = get_release(args.version) if not release['draft']: tag_exists = True if not args.upload_to_s3: assert release['exists'], \ 'Release does not exist; cannot upload to GitHub!' assert tag_exists == args.overwrite, \ 'You have to pass --overwrite to overwrite a published release' # Upload Electron files. # Rename dist.zip to get_zip_name('electron', version, suffix='') electron_zip = os.path.join(OUT_DIR, DIST_NAME) shutil.copy2(os.path.join(OUT_DIR, 'dist.zip'), electron_zip) upload_electron(release, electron_zip, args) if get_target_arch() != 'mips64el': symbols_zip = os.path.join(OUT_DIR, SYMBOLS_NAME) shutil.copy2(os.path.join(OUT_DIR, 'symbols.zip'), symbols_zip) upload_electron(release, symbols_zip, args) if PLATFORM == 'darwin': if get_platform_key() == 'darwin' and get_target_arch() == 'x64': api_path = os.path.join(ELECTRON_DIR, 'electron-api.json') upload_electron(release, api_path, args) ts_defs_path = os.path.join(ELECTRON_DIR, 'electron.d.ts') upload_electron(release, ts_defs_path, args) dsym_zip = os.path.join(OUT_DIR, DSYM_NAME) shutil.copy2(os.path.join(OUT_DIR, 'dsym.zip'), dsym_zip) upload_electron(release, dsym_zip, args) dsym_snaphot_zip = os.path.join(OUT_DIR, DSYM_SNAPSHOT_NAME) shutil.copy2(os.path.join(OUT_DIR, 'dsym-snapshot.zip'), dsym_snaphot_zip) upload_electron(release, dsym_snaphot_zip, args) elif PLATFORM == 'win32': pdb_zip = os.path.join(OUT_DIR, PDB_NAME) shutil.copy2(os.path.join(OUT_DIR, 'pdb.zip'), pdb_zip) upload_electron(release, pdb_zip, args) elif PLATFORM == 'linux': debug_zip = os.path.join(OUT_DIR, DEBUG_NAME) shutil.copy2(os.path.join(OUT_DIR, 'debug.zip'), debug_zip) upload_electron(release, debug_zip, args) # Upload libcxx_objects.zip for linux only libcxx_objects = get_zip_name('libcxx-objects', ELECTRON_VERSION) libcxx_objects_zip = os.path.join(OUT_DIR, libcxx_objects) shutil.copy2(os.path.join(OUT_DIR, 'libcxx_objects.zip'), libcxx_objects_zip) upload_electron(release, libcxx_objects_zip, args) # Upload headers.zip and abi_headers.zip as non-platform specific if get_target_arch() == "x64": cxx_headers_zip = os.path.join(OUT_DIR, 'libcxx_headers.zip') upload_electron(release, cxx_headers_zip, args) abi_headers_zip = os.path.join(OUT_DIR, 'libcxxabi_headers.zip') upload_electron(release, abi_headers_zip, args) # Upload free version of ffmpeg. ffmpeg = get_zip_name('ffmpeg', ELECTRON_VERSION) ffmpeg_zip = os.path.join(OUT_DIR, ffmpeg) ffmpeg_build_path = os.path.join(SRC_DIR, 'out', 'ffmpeg', 'ffmpeg.zip') shutil.copy2(ffmpeg_build_path, ffmpeg_zip) upload_electron(release, ffmpeg_zip, args) chromedriver = get_zip_name('chromedriver', ELECTRON_VERSION) chromedriver_zip = os.path.join(OUT_DIR, chromedriver) shutil.copy2(os.path.join(OUT_DIR, 'chromedriver.zip'), chromedriver_zip) upload_electron(release, chromedriver_zip, args) mksnapshot = get_zip_name('mksnapshot', ELECTRON_VERSION) mksnapshot_zip = os.path.join(OUT_DIR, mksnapshot) if get_target_arch().startswith('arm') and PLATFORM != 'darwin': # Upload the x64 binary for arm/arm64 mksnapshot mksnapshot = get_zip_name('mksnapshot', ELECTRON_VERSION, 'x64') mksnapshot_zip = os.path.join(OUT_DIR, mksnapshot) shutil.copy2(os.path.join(OUT_DIR, 'mksnapshot.zip'), mksnapshot_zip) upload_electron(release, mksnapshot_zip, args) if PLATFORM == 'linux' and get_target_arch() == 'x64': # Upload the hunspell dictionaries only from the linux x64 build hunspell_dictionaries_zip = os.path.join(OUT_DIR, 'hunspell_dictionaries.zip') upload_electron(release, hunspell_dictionaries_zip, args) if not tag_exists and not args.upload_to_s3: # Upload symbols to symbol server. run_python_upload_script('upload-symbols.py') if PLATFORM == 'win32': run_python_upload_script('upload-node-headers.py', '-v', args.version) if PLATFORM == 'win32': toolchain_profile_zip = os.path.join(OUT_DIR, TOOLCHAIN_PROFILE_NAME) with ZipFile(toolchain_profile_zip, 'w') as myzip: myzip.write( os.path.join(OUT_DIR, 'windows_toolchain_profile.json'), 'toolchain_profile.json') upload_electron(release, toolchain_profile_zip, args) return 0