thorium-mirror/infra/BUILDING_OLD.md
CI 774de1eacc fix more docs
Author:    Alexander Frick <Alex313031@gmail.com>
2023-10-10 09:22:03 -05:00

5.2 KiB

NOTE: This document is out of date, and kept for historical purposes only. You should follow the docs located HERE

Building

The scripts assume the Chromium source is at $HOME/chromiums/src/ and Thorium is at $HOME/thorium/. You may have to 'sudo chmod +x' the scripts to make them executable.

  • UPDATE: For Windows and Windows AVX2, I made new dedicated instructions. If you are building on Windows use > WIN_INSTRUCTIONS.txt and if you are building for Windows on Linux, use > WIN_CROSS_BUILD_INSTRUCTIONS.txt
  • In general we follow build instructions at https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/linux/build_instructions.md and API Keys (if desired) at https://www.chromium.org/developers/how-tos/api-keys
  • Make sure dependencies are installed by running ./chromium/src/build/install-build-deps.sh.
  • After initial download of Chromium source code, run (from where you cloned this repo) ./trunk.sh. This will update and sync the sources and at the end it will download the PGO profile for Chromium for all platforms. The file will be downloaded to //chromium/src/chrome/build/pgo_profiles/*.profdata with the actual file name looking something like 'chrome-linux-main-1632505958-ddbb37bcdfa7dbd7b10cf3a9b6a5bc45e7a958a6.profdata', which should be added to the end of args.gn as per below.
  • Then, (from where you cloned this repo) run ./setup.sh. This will copy all the files and patches to the needed locations and drop you to //chromium/src.
  • Run gn args out/thorium and the contents of 'args.gn' in the root of this repo should be copy/pasted into the editor. Note that for Windows, Mac, ChromiumOS, or Android there are seperate *_args.gn files for those platforms. --Include your api keys here at the top or leave blank, and edit the last line to point to the actual path and file name of '*.profdata'
  • For more info about args.gn, read the ABOUT_GN_ARGS.md file.
  • 'infra/args.list' contains an alphabetical list with descriptions of all possible build arguments; gn_args.list gives a similar list but with the flags in args.gn added.
  • To build, run ./build.sh (--help for help). For Windows, use build_win.sh or autoninja -C out\thorium chrome chromedriver thorium_shell setup mini_installer -j8 The -j# can be changed to limit or increase the number of jobs (generally should be the number of CPU cores on your machine)
  • To install, copy/paste the contents of your out/thorium dir to a good location, i.e. $HOME/bin/thorium. RECOMMENDED - Copy and run clean.sh within this dir to clean up build artifacts. Then you can just run the browser with ~/bin/thorium/chrome, the content_shell with ~/bin/thorium/thorium_shell, or chromedriver with ~/bin/thorium/chromedriver.
  • Proper Install: To install with a .deb, dont copy the contents of out/thorium; instead run
    ./thordeb.sh (--help for help). A nice .deb file will now be in out/thorium and you can install it with sudo dpkg -i *.deb It will be called 'thorium-browser-stable_$VERSIONNUMBER_amd64.deb', and will be installed to /opt/chromium.org/thorium/. For Windows, just run the mini_installer.exe. \
  • Appimage: You can also make an Appimage of Thorium after making the .deb. See > Appimage README.md

   NOTE: To get back to "Trunk", i.e. to revert all changes in order to build vanilla Chromium or to update your checkout, just run ./trunk.sh again.
   NOTE: To compile without AVX, simply go to //chromium/src/build/config/compiler/BUILD.gn, search for avx, and replace avx with sse3 or sse4.
   UPDATE: Thorium now has API Keys baked in but the instructions below are the same if you are building it yourself as I will not include the keys here. | args.gn exclude API Keys (you can get them yourself) and the PGO profile path is different for each Chromium version (only needed when building). (See above.)

Happy Thorium Building!