vscodium/docs/howto-build.md
2023-11-02 09:36:13 +01:00

3.8 KiB

How to build VSCodium

Table of Contents

Dependencies

  • node 16
  • yarn
  • jq
  • git

Linux

  • GCC
  • make
  • pkg-config
  • libx11-dev
  • libxkbfile-dev
  • libsecret-1-dev
  • fakeroot
  • rpm
  • rpmbuild
  • dpkg
  • python3
  • imagemagick (for AppImage)

MacOS

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

Windows

  • powershell
  • sed
  • 7z
  • WiX Toolset
  • python3
  • 'Tools for Native Modules' from 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 lastest version with the command ./build/build.sh -il but the patches might not be up to date.

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 pause 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 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 ok
  • run git diff > ../patches/<name>.patch