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:
parent
7d457f8fc5
commit
7c5b631ff0
|
@ -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
|
||||||
|
|
||||||
|
|
83
README.md
83
README.md
|
@ -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
|
|
@ -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 "$@"
|
|
Loading…
Reference in New Issue