vscodium/docs/howto-build.md
2024-02-07 15:18:32 +01:00

4.3 KiB

How to build VSCodium

Table of Contents

Dependencies

  • node 18.15
  • yarn
  • jq
  • git
  • python3 3.11

Linux

  • gcc
  • g++
  • make
  • pkg-config
  • libx11-dev
  • libxkbfile-dev
  • libsecret-1-dev
  • libkrb5-dev
  • fakeroot
  • rpm
  • rpmbuild
  • dpkg
  • imagemagick (for AppImage)
  • snapcraft

MacOS

see the common dependencies

Windows

  • powershell
  • sed
  • 7z
  • WiX Toolset
  • 'Tools for Native Modules' from the official Node.js installer

Build Scripts

A build helper script can be found at build/build.sh.

  • Linux: ./build/build.sh
  • MacOS: ./build/build.sh
  • Windows: powershell -ExecutionPolicy ByPass -File .\build\build.ps1 or "C:\Program Files\Git\bin\bash.exe" ./build/build.sh

Insider

The insider version can be built with ./build/build.sh -i on the insider branch.

You can try the latest version with the command ./build/build.sh -il but the patches might not be up to date.

Flags

The script build/build.sh provides several flags:

  • -i: build the Insiders version
  • -l: build with latest version of Visual Studio Code
  • -o: skip the build step
  • -p: generate the packages/assets/installers
  • -s: do not retrieve the source code of Visual Studio Code, it won't delete the existing build

Build in Docker

To build for Linux, you can alternatively build VSCodium in docker

X64

Firstly, create the container with:

docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash

like

docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash

When inside the container, you can use the following commands to build:

cd /root/vscodium

./build/build.sh

ARM 32bits

Firstly, create the container with:

docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash

like

docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash

When inside the container, you can use the following commands to build:

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils

cd /root/vscodium

./build/build.sh

Build Snap

# for the stable version
cd ./stores/snapcraft/stable

# for the insider version
cd ./stores/snapcraft/insider

# create the snap
snapcraft --use-lxd

# verify the snap
review-tools.snap-review --allow-classic codium*.snap

Patch Update Process

Semi-Automated

  • run ./build/build_<os>.sh, if a patch is failing then,
  • run ./build/update_patches.sh
  • when the script pauses at Press any key when the conflict have been resolved..., open vscode directory in VSCodium
  • fix all the *.rej files
  • run yarn watch
  • run ./script/code.sh until everything is ok
  • press any key to continue the script update_patches.sh

Manual

  • run ./build/build_<os>.sh, if a patch is failing then,
  • open vscode directory in VSCodium
  • revert all changes
  • run git apply --reject ../patches/<name>.patch
  • fix all the *.rej files
  • run yarn watch
  • run ./script/code.sh until everything is ok
  • run git diff > ../patches/<name>.patch

icons/build_icons.sh

To run icons/build_icons.sh, you will need:

  • imagemagick
  • png2icns (npm install png2icns -g)
  • librsvg