thorium-mirror/win_scripts/build_win.py

49 lines
1.4 KiB
Python
Raw Permalink Normal View History

# Copyright (c) 2024 Alex313031 and gz83.
# This file is the equivalent of build_win.sh in the parent directory.
import os
import subprocess
import sys
# Error handling functions
def fail(msg):
# Print error message and exit
print(f"{sys.argv[0]}: {msg}", file=sys.stderr)
sys.exit(111)
def try_run(command):
if subprocess.call(command, shell=True) != 0:
fail(f"Failed {command}")
# Help function
def display_help():
print("\nScript to build Thorium for Windows.\n")
print("Usage: python win_scripts\build_win.py # (where # is number of jobs)\n")
if '--help' in sys.argv:
display_help()
sys.exit(0)
# Set chromium/src dir from Windows environment variable
cr_src_dir = os.getenv('CR_DIR', r'C:/src/chromium/src')
print("\nBuilding Thorium for Windows\n")
# Change directory and run build commands
os.chdir(cr_src_dir)
# Determine the number of threads to use
jobs = sys.argv[1] if len(sys.argv) > 1 else str(os.cpu_count())
try_run(f'autoninja -C out/thorium thorium_all -j{jobs}')
# Move the installer
installer_src = os.path.normpath(os.path.join(cr_src_dir, 'out', 'thorium', 'mini_installer.exe'))
installer_dest = os.path.normpath(os.path.join(cr_src_dir, 'out', 'thorium', 'thorium_mini_installer.exe'))
os.rename(installer_src, installer_dest)
print(f"Build Completed. Installer at '{installer_dest}'")