aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md1
-rw-r--r--justfile27
3 files changed, 16 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index 5a2e910..a07f1e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ _build
_dist
_flatpak
_repo
+_vendor
dist
.env
.flatpak-builder
diff --git a/README.md b/README.md
index cb0cad9..f66a216 100644
--- a/README.md
+++ b/README.md
@@ -55,6 +55,7 @@ configurable via the justfile. The defaults are:
- `_build`: The meson build directory.
- `_dist`: The location where built distributable packages are placed.
+- `_vendor`: The default location in which to output vendored cargo files.
- `_repo`: The flatpak repo
- `_flatpak`: The flatpak build directory
diff --git a/justfile b/justfile
index ea0252b..f774b15 100644
--- a/justfile
+++ b/justfile
@@ -5,6 +5,7 @@ app_name := "map"
channel := "unstable"
builddir := "_build"
distdir := "_dist"
+vendordir := "_vendor"
flatpakdir := "_flatpak"
repodir := "_repo"
clean_images := ""
@@ -79,7 +80,7 @@ build-container name:
# Builds all containers
build-containers:
- for container in {{all_containers}}; do just container_image_prefix={{container_image_prefix}} clean_images={{clean_images}} build-container "$container"; done
+ for container in {{all_containers}}; do podman build -t "{{container_image_prefix}}:$container" "build-containers/$container"; done
# Packaging ####################################################################
@@ -106,7 +107,7 @@ package-appimage: _ensure-distdir (build-container appimage_container) dist _fet
tar -xJf "{{builddir}}/meson-dist/map-{{version}}.tar.xz" -C "${staging}/"
cp {{linuxdeploy}} "${staging}/linuxdeploy.AppImage"
- just _run-in-podman "${staging}" {{appimage_container}} "
+ just _run-in-podman {{container_image_prefix}} "${staging}" {{appimage_container}} "
cd /build/map-{{version}}
meson setup --prefix=/usr {{builddir}}
meson compile -C {{builddir}}
@@ -131,7 +132,7 @@ package-arch: _ensure-distdir (build-container "arch") dist && (_clean-image "ar
cp {{builddir}}/meson-dist/map-{{version}}.tar.xz "${staging}/"
cp build-aux/arch/PKGBUILD "${staging}/"
- just _run-in-podman "${staging}" arch "
+ just _run-in-podman {{container_image_prefix}} "${staging}" arch "
mkdir -p /tmp/pkg
cp /build/*.tar.xz /tmp/pkg
cp /build/PKGBUILD /tmp/pkg
@@ -144,20 +145,20 @@ package-arch: _ensure-distdir (build-container "arch") dist && (_clean-image "ar
rm -rf "${staging}"
# Build .rpm for the given distro
-package-rpm distro: _ensure-distdir (build-container distro) dist && (_clean-image distro)
+package-rpm distro: _ensure-distdir (build-container distro) dist vendor && (_clean-image distro)
#!/usr/bin/env bash
echo "=== Building RPM for {{distro}} ({{architecture}}) ==="
staging="$(mktemp -d)"
cp {{builddir}}/meson-dist/map-{{version}}.tar.xz "${staging}/"
- just vendor "${staging}/vendor"
+ cp -r {{vendordir}} "${staging}/vendor"
tar -cJf "${staging}/map-{{version}}-vendor.tar.xz" -C "${staging}" vendor
rm -rf "${staging}/vendor"
cp build-aux/rpm/map.spec "${staging}/"
- just _run-in-podman "${staging}" {{distro}} "
+ just _run-in-podman {{container_image_prefix}} "${staging}" {{distro}} "
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
cp /build/map-*.tar.xz ~/rpmbuild/SOURCES/
cp /build/map.spec ~/rpmbuild/SPECS/
@@ -179,7 +180,7 @@ package-deb distro: _ensure-distdir (build-container distro) dist && (_clean-ima
mkdir -p "${staging}/{{app_name}}-{{version}}"
cp -r build-aux/debian "${staging}/{{app_name}}-{{version}}/debian"
- just _run-in-podman "${staging}" {{distro}} "
+ just _run-in-podman {{container_image_prefix}} "${staging}" {{distro}} "
cd /build/{{app_name}}-{{version}}
dpkg-buildpackage -us -uc -b
mkdir -p /build/out
@@ -212,11 +213,11 @@ distribute-arch: (_sign-and-upload f"{{distdir}}/{{filename}}-arch.pkg.tar.gz")
# Sign and upload .rpm files
distribute-rpm:
- for distro in {{fedora_versions}}; do just _distribute-rpm channel={{channel}} "$distro"; done
+ for distro in {{fedora_versions}}; do just channel={{channel}} _distribute-rpm "$distro"; done
# Sign and upload .deb files
distribute-deb:
- for distro in {{debian_versions}}; do just _distribute-deb channel={{channel}} "$distro"; done
+ for distro in {{debian_versions}}; do just channel={{channel}} _distribute-deb "$distro"; done
# Sign and upload all distributable packages
distribute: distribute-flatpak distribute-appimage distribute-arch distribute-rpm distribute-deb
@@ -255,8 +256,8 @@ uninstall:
# Utility Tasks ################################################################
# Vendor the rust dependencies
-vendor location:
- cargo vendor {{location}} >/dev/null
+vendor:
+ cargo vendor {{vendordir}} >/dev/null
mkdir -p .cargo
# Syncs versions of different files to the meson.build
@@ -308,7 +309,7 @@ _upload file:
_sign-and-upload file: (_sign file channel architecture) (_upload file)
# Generic Podman Runner: Run a build script inside a container
-_run-in-podman staging tag commands:
+_run-in-podman prefix staging tag commands:
podman run --rm -v "{{staging}}:/build:Z" \
- {{container_image_prefix}}:{{tag}} \
+ {{prefix}}:{{tag}} \
bash -c "{{commands}}"