示例#1
0
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)
示例#2
0
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()
示例#5
0
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)
示例#6
0
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()
    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))
示例#8
0
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])
示例#10
0
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)
示例#11
0
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
        ])
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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
示例#17
0
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)
示例#18
0
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)
示例#19
0
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('.')
示例#20
0
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('.')
示例#21
0
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)
示例#22
0
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)
示例#23
0
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)
示例#24
0
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)
示例#25
0
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')
示例#26
0
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)
示例#27
0
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)
示例#28
0
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()
示例#29
0
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')
示例#30
0
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)
示例#31
0
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)
示例#32
0
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')
示例#33
0
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])
示例#35
0
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)
示例#36
0
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)
示例#37
0
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