Remove install-dependencies.sh (#1950)

* ci: remove usage of install-dependencies.sh

* ci: use build-box action properly

* readme: add prerequisites section to the quick build guide

* ci: fall back to using step entrypoint

* ci: add ca-certifcates to msys build

* ci: add patch command to msys ci

* scripts: remove install-dependencies.sh

* readme: reword

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>

---------

Co-authored-by: Guldoman <giulio.lettieri@gmail.com>
This commit is contained in:
Takase 2024-11-25 20:32:21 +08:00 committed by GitHub
parent 7d457f8fc5
commit 7c5b631ff0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 103 additions and 75 deletions

View File

@ -78,7 +78,9 @@ jobs:
with: { python-version: "3.11" } with: { python-version: "3.11" }
- name: Install Dependencies - name: Install Dependencies
run: scripts/install-dependencies.sh run: |
brew install bash
pip3 install meson ninja
- name: Build & Package Mac (Bundle) - name: Build & Package Mac (Bundle)
run: | run: |
@ -110,7 +112,9 @@ jobs:
with: { python-version: "3.11" } with: { python-version: "3.11" }
- name: Install Dependencies - name: Install Dependencies
run: scripts/install-dependencies.sh run: |
brew install bash
pip3 install dmgbuild
- name: Download Artifacts - name: Download Artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
@ -148,19 +152,23 @@ jobs:
name: Linux (x86_64) name: Linux (x86_64)
needs: [version] needs: [version]
runs-on: ubuntu-latest runs-on: ubuntu-latest
env:
BUILDER: docker run -v .:/build -w /build ghcr.io/lite-xl/lite-xl-build-box-manylinux:v3.0.2 -- /entrypoint.sh
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build - name: Build
run: $BUILDER scripts/build.sh --addons --debug --forcefallback --portable -b build uses: docker://ghcr.io/lite-xl/lite-xl-build-box-manylinux:v3
with:
entrypoint: /entrypoint.sh
args: bash scripts/build.sh --addons --debug --forcefallback --portable -b build
- name: Package Linux (Portable) - name: Package Linux (Portable)
run: cd build && tar -czvf ../lite-xl-${{ needs.version.outputs.ref }}-x86_64-linux-portable.tar.gz lite-xl && cd .. run: tar -C build -czvf lite-xl-${{ needs.version.outputs.ref }}-x86_64-linux-portable.tar.gz lite-xl
- name: Package Linux (AppImage) - name: Package Linux (AppImage)
run: $BUILDER scripts/package-appimage.sh --debug --version ${{ needs.version.outputs.ref }} -b build uses: docker://ghcr.io/lite-xl/lite-xl-build-box-manylinux:v3
with:
entrypoint: /entrypoint.sh
run: bash scripts/package-appimage.sh --debug --version ${{ needs.version.outputs.ref }} -b build
- name: Upload (Release) - name: Upload (Release)
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@ -180,13 +188,21 @@ jobs:
needs: [version] needs: [version]
steps: steps:
- uses: msys2/setup-msys2@v2 - uses: msys2/setup-msys2@v2
with: { msystem: MINGW64 } with:
msystem: MINGW64
install: >-
git
zip
patch
pacboy: >-
gcc:p
meson:p
ca-certificates:p
ninja:p
pkg-config:p
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Dependencies
run: bash scripts/install-dependencies.sh
- name: Build - name: Build
run: bash scripts/build.sh --addons --debug --forcefallback --portable -b build run: bash scripts/build.sh --addons --debug --forcefallback --portable -b build

View File

@ -45,19 +45,85 @@ These color themes are bundled with all releases of Lite XL by default.
## Quick Build Guide ## Quick Build Guide
If you compile Lite XL yourself, it is recommended to use the script To compile Lite XL yourself, you must have the following dependencies installed
`build-packages.sh`: via your desired package manager, or manually.
### Prerequisites
- Meson (>=0.63)
- Ninja
- SDL2
- PCRE2
- FreeType2
- Lua 5.4
- A working C compiler (GCC / Clang / MSVC)
SDL2, PCRE2, FreeType2 and Lua will be downloaded by Meson
if `--wrap-mode=forcefallback` or `--wrap-mode=default` is specified.
> [!NOTE]
> MSVC is used in the CI, but MSVC-compiled binaries are not distributed officially
> or tested extensively for bugs.
On Linux, you may install the following dependencies for the SDL2 X11 and/or Wayland backend to work properly:
- `libX11-devel`
- `libXi-devel`
- `libXcursor-devel`
- `libxkbcommon-devel`
- `libXrandr-devel`
- `wayland-devel`
- `wayland-protocols-devel`
- `dbus-devel`
- `ibus-devel`
The following command can be used to install the dependencies in Ubuntu:
```sh ```sh
bash build-packages.sh -h apt-get install python3.8 python3-pip build-essential git cmake wayland-protocols libsdl2-dev
pip3 install meson ninja
``` ```
The script will run Meson and create a tar compressed archive with the application or, Please refer to [lite-xl-build-box] for a working Linux build environment used to package official Lite XL releases.
for Windows, a zip file. Lite XL can be easily installed
by unpacking the archive in any directory of your choice.
Otherwise the following is an example of basic commands if you want to customize On macOS, you must install bash via Brew, as the default bash version on macOS is antiquated
the build: and may not run the build script correctly.
### Building
You can use `scripts/build.sh` to set up Lite XL and build it.
```sh
$ bash build.sh --help
# Usage: scripts/build.sh <OPTIONS>
#
# Available options:
#
# -b --builddir DIRNAME Sets the name of the build directory (not path).
# Default: 'build-x86_64-linux'.
# --debug Debug this script.
# -f --forcefallback Force to build dependencies statically.
# -h --help Show this help and exit.
# -d --debug-build Builds a debug build.
# -p --prefix PREFIX Install directory prefix. Default: '/'.
# -B --bundle Create an App bundle (macOS only)
# -A --addons Add in addons
# -P --portable Create a portable binary package.
# -r --reconfigure Tries to reuse the meson build directory, if possible.
# Default: Deletes the build directory and recreates it.
# -O --pgo Use profile guided optimizations (pgo).
# macOS: disabled when used with --bundle,
# Windows: Implicit being the only option.
# --cross-platform PLATFORM Cross compile for this platform.
# The script will find the appropriate
# cross file in 'resources/cross'.
# --cross-arch ARCH Cross compile for this architecture.
# The script will find the appropriate
# cross file in 'resources/cross'.
# --cross-file CROSS_FILE Cross compile with the given cross file.
```
Alternatively, you can use the following commands to customize the build:
```sh ```sh
meson setup --buildtype=release --prefix <prefix> build meson setup --buildtype=release --prefix <prefix> build
@ -237,3 +303,4 @@ See the [licenses] file for details on licenses used by the required dependencie
[colors repository]: https://github.com/lite-xl/lite-xl-colors [colors repository]: https://github.com/lite-xl/lite-xl-colors
[LICENSE]: LICENSE [LICENSE]: LICENSE
[licenses]: licenses/licenses.md [licenses]: licenses/licenses.md
[lite-xl-build-box]: https://github.com/lite-xl/lite-xl-build-box

View File

@ -1,55 +0,0 @@
#!/bin/bash
set -ex
if [ ! -e "src/api/api.h" ]; then
echo "Please run this script from the root directory of Lite XL."; exit 1
fi
show_help() {
echo
echo "Lite XL dependecies installer. Mainly used for CI but can also work on users systems."
echo "USE IT AT YOUR OWN RISK!"
echo
echo "Usage: $0 <OPTIONS>"
echo
echo "Available options:"
echo
echo " --debug Debug this script."
echo
}
main() {
for i in "$@"; do
case $i in
-s|--lhelper)
echo "error: support for lhelper has been deprecated" >> /dev/stderr
exit 1
;;
--debug)
set -x
shift
;;
*)
# unknown option
;;
esac
done
if [[ -n $1 ]]; then
show_help
exit 1
fi
if [[ "$OSTYPE" == "linux"* ]]; then
sudo apt-get install -qq libfuse2 ninja-build wayland-protocols libsdl2-dev libfreetype6 desktop-file-utils
pip3 install meson
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install bash ninja sdl2
pip3 install meson dmgbuild
elif [[ "$OSTYPE" == "msys" ]]; then
pacman --noconfirm -S \
${MINGW_PACKAGE_PREFIX}-{ca-certificates,gcc,meson,ninja,ntldd,pkg-config,mesa,freetype,pcre2,SDL2} unzip patch zip
fi
}
main "$@"