From 0a413e1df4a1c49c96cdfa4ba06b8c1c17f975f1 Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle Date: Wed, 18 Sep 2024 20:18:43 +0200 Subject: [PATCH] just: migrate from make Signed-off-by: Patrizio Bekerle --- Makefile | 85 ------------ build-systems/github/aqt/Makefile | 7 - build-systems/github/aqt/justfile | 12 ++ build-systems/github/ubuntu22-dev/Makefile | 8 -- build-systems/github/ubuntu22-dev/justfile | 12 ++ justfile | 154 +++++++++++++++++++++ shell.nix | 2 +- webpage/Makefile | 9 -- webpage/justfile | 14 ++ 9 files changed, 193 insertions(+), 110 deletions(-) delete mode 100644 Makefile delete mode 100644 build-systems/github/aqt/Makefile create mode 100644 build-systems/github/aqt/justfile delete mode 100644 build-systems/github/ubuntu22-dev/Makefile create mode 100644 build-systems/github/ubuntu22-dev/justfile create mode 100644 justfile delete mode 100644 webpage/Makefile create mode 100644 webpage/justfile diff --git a/Makefile b/Makefile deleted file mode 100644 index 8df0fb2714..0000000000 --- a/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -.PHONY: translations-build translations-download translations-upload translations-update-files nix-build nix-build-force -TRANSFER_DIR := $(shell if [ -d "$(HOME)/NextcloudPrivate/Transfer" ]; then echo "$(HOME)/NextcloudPrivate/Transfer"; else echo "$(HOME)/Nextcloud/Transfer"; fi) - -translations-build: - lrelease src/QOwnNotes.pro - -translations-download: - ./scripts/download_translations.sh - -translations-upload: - crowdin upload - -translations-update-files: - ./scripts/update-translations.sh - -nix-build: - nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' - -# Throws errors while building Qt6 -nix-build-aarch64: - nix-build -E '((import {}).pkgsCross.aarch64-multiplatform.qt6Packages.callPackage (import ./default.nix) { })' - -nix-build-cmake-qt5: - nix-build -E '((import {}).libsForQt5.callPackage (import ./build-systems/nix/default-cmake-qt5.nix) { })' - -nix-build-qt5: - nix build '.?submodules=1#qownnotes-qt5' - -nix-build-qt5153: - nix build '.?submodules=1#qownnotes-qt5153' - -nix-build-qt5-force: - nix build '.?submodules=1#qownnotes-qt5' --rebuild - -nix-build-qt5153-force: - nix build '.?submodules=1#qownnotes-qt5153' --rebuild - -nix-build-trace: - nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' --show-trace - -nix-build-force: - nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' --check - -nix-run: - ./result/bin/QOwnNotes --session test & - -src-build: - mkdir -p build-QOwnNotes; cd build-QOwnNotes && qmake "CONFIG+=debug USE_SYSTEM_BOTAN=1" ../src/QOwnNotes.pro && make - -src-clean: - rm -rf build-QOwnNotes - -src-run: - ./build-QOwnNotes/QOwnNotes - -src-build-run: src-build src-run - -clang-format: - ./scripts/clang-format-project.sh - -fix-linting: - make clang-format - -link-check: - lychee './**/*.md' - -git-apply-qownnotes-patch: - git apply ${TRANSFER_DIR}/qownnotes.patch - -git-apply-qmarkdowntextedit-patch: - cd ./src/libraries/qmarkdowntextedit && git apply ${TRANSFER_DIR}/qmarkdowntextedit.patch - -git-create-patch: - @echo "TRANSFER_DIR: ${TRANSFER_DIR}"; \ - git diff --no-ext-diff --staged --binary > ${TRANSFER_DIR}/qownnotes.patch; \ - cd src/libraries/qmarkdowntextedit && git diff --no-ext-diff --staged --binary > ${TRANSFER_DIR}/qmarkdowntextedit.patch; \ - cd ../piwiktracker && git diff --no-ext-diff --staged --binary > ${TRANSFER_DIR}/piwiktracker.patch; \ - cd ../qttoolbareditor && git diff --no-ext-diff --staged --binary > ${TRANSFER_DIR}/qttoolbareditor.patch; \ - ls -l1t ${TRANSFER_DIR} | head -5 - -open-crowdin-webpage: - xdg-open https://crowdin.com/project/qownnotes/activity-stream - -fix-settings-ui-file: - ./scripts/fix-settings-ui-file.sh diff --git a/build-systems/github/aqt/Makefile b/build-systems/github/aqt/Makefile deleted file mode 100644 index b310365d72..0000000000 --- a/build-systems/github/aqt/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -.PHONY: build run - -build: - docker build -t aqt-list . - -run: - docker run --rm ./path/file -d aqt-list diff --git a/build-systems/github/aqt/justfile b/build-systems/github/aqt/justfile new file mode 100644 index 0000000000..12cfefd6e7 --- /dev/null +++ b/build-systems/github/aqt/justfile @@ -0,0 +1,12 @@ +# Use `just ` to run a recipe +# https://just.systems/man/en/ + +# By default, run the `--list` command +default: + @just --list + +build: + docker build -t aqt-list . + +run: + docker run --rm ./path/file -d aqt-list diff --git a/build-systems/github/ubuntu22-dev/Makefile b/build-systems/github/ubuntu22-dev/Makefile deleted file mode 100644 index c0c6a41900..0000000000 --- a/build-systems/github/ubuntu22-dev/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -.PHONY: bash - -build: - docker build -t qownnotes-ubuntu22-dev . - -bash: - docker run -it --rm qownnotes-ubuntu22-dev bash - diff --git a/build-systems/github/ubuntu22-dev/justfile b/build-systems/github/ubuntu22-dev/justfile new file mode 100644 index 0000000000..1ec22519cb --- /dev/null +++ b/build-systems/github/ubuntu22-dev/justfile @@ -0,0 +1,12 @@ +# Use `just ` to run a recipe +# https://just.systems/man/en/ + +# By default, run the `--list` command +default: + @just --list + +build: + docker build -t qownnotes-ubuntu22-dev . + +bash: + docker run -it --rm qownnotes-ubuntu22-dev bash diff --git a/justfile b/justfile new file mode 100644 index 0000000000..04ea444862 --- /dev/null +++ b/justfile @@ -0,0 +1,154 @@ +# Use `just ` to run a recipe +# https://just.systems/man/en/ + +# By default, run the `--list` command +default: + @just --list + +# Variables + +transferDir := `if [ -d "$HOME/NextcloudPrivate/Transfer" ]; then echo "$HOME/NextcloudPrivate/Transfer"; else echo "$HOME/Nextcloud/Transfer"; fi` + +# Aliases + +alias fix-linting := clang-format + +# Build the translations +[group('translations')] +translations-build: + lrelease src/QOwnNotes.pro + +# Download the translations from Crowdin +[group('translations')] +translations-download: + ./scripts/download_translations.sh + +# Upload the translations to Crowdin +[group('translations')] +translations-upload: + crowdin upload + +# Update the translations files +[group('translations')] +translations-update-files: + ./scripts/update-translations.sh + +# Build the application for nix +[group('nix')] +nix-build: + nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' + +# Build the application for nix for aaarch64 (throws errors while building Qt6) +[group('nix')] +nix-build-aarch64: + nix-build -E '((import {}).pkgsCross.aarch64-multiplatform.qt6Packages.callPackage (import ./default.nix) { })' + +# Build the application with cmake and Qt5 for nix +[group('nix')] +nix-build-cmake-qt5: + nix-build -E '((import {}).libsForQt5.callPackage (import ./build-systems/nix/default-cmake-qt5.nix) { })' + +# Build the application with Qt5 for nix +[group('nix')] +nix-build-qt5: + nix build '.?submodules=1#qownnotes-qt5' + +# Build the application with Qt 5.15.3 for nix +[group('nix')] +nix-build-qt5153: + nix build '.?submodules=1#qownnotes-qt5153' + +# Force a rebuild of the application with Qt5 for nix +[group('nix')] +nix-build-qt5-force: + nix build '.?submodules=1#qownnotes-qt5' --rebuild + +# Force a rebuild of the application with Qt 5.15.3 for nix +[group('nix')] +nix-build-qt5153-force: + nix build '.?submodules=1#qownnotes-qt5153' --rebuild + +# Build the application with Qt6 for nix with a trace +[group('nix')] +nix-build-trace: + nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' --show-trace + +# Force a rebuild of the application with Qt6 for nix +[group('nix')] +nix-build-force: + nix-build -E '((import {}).qt6Packages.callPackage (import ./default.nix) { })' --check + +# Run the built application for nix +[group('nix')] +nix-run: + ./result/bin/QOwnNotes --session test & + +# Build the application direclty from the source +[group('src-build')] +src-build: + mkdir -p build-QOwnNotes; cd build-QOwnNotes && qmake "CONFIG+=debug USE_SYSTEM_BOTAN=1" ../src/QOwnNotes.pro && make + +# Clean the build directory +[group('src-build')] +src-clean: + rm -rf build-QOwnNotes + +# Run the built application +[group('src-build')] +src-run: + ./build-QOwnNotes/QOwnNotes + +# Build and run the application +[group('src-build')] +src-build-run: src-build src-run + +# Do a clang format on the project +[group('linter')] +clang-format: + ./scripts/clang-format-project.sh + +# Check links in the markdown files +[group('linter')] +link-check: + lychee './**/*.md' + +# Apply a git patch to the project +[group('patches')] +git-apply-qownnotes-patch: + git apply {{ transferDir }}/qownnotes.patch + +# Apply a git patch to qmarkdowntextedit +[group('patches')] +git-apply-qmarkdowntextedit-patch: + cd ./src/libraries/qmarkdowntextedit + git apply {{ transferDir }}/qmarkdowntextedit.patch + +# Create a git patch for the project and some libraries +[group('patches')] +git-create-patch: + @echo "transferDir: {{ transferDir }}" + git diff --no-ext-diff --staged --binary > {{ transferDir }}/qownnotes.patch + cd src/libraries/qmarkdowntextedit && git diff --no-ext-diff --staged --binary > {{ transferDir }}/qmarkdowntextedit.patch + cd ../piwiktracker && git diff --no-ext-diff --staged --binary > {{ transferDir }}/piwiktracker.patch + cd ../qttoolbareditor && git diff --no-ext-diff --staged --binary > {{ transferDir }}/qttoolbareditor.patch + ls -l1t {{ transferDir }} | head -5 + +# Open the Crowdin webpage +[group('translations')] +open-crowdin-webpage: + xdg-open https://crowdin.com/project/qownnotes/activity-stream + +# Fig the settings.ui file after QtCreator has destroyed it +[group('linter')] +fix-settings-ui-file: + ./scripts/fix-settings-ui-file.sh + +# Format all justfiles +[group('linter')] +just-format: + #!/usr/bin/env bash + # Find all files named "justfile" recursively and run just --fmt --unstable on them + find . -type f -name "justfile" -print0 | while IFS= read -r -d '' file; do + echo "Formatting $file" + just --fmt --unstable -f "$file" + done diff --git a/shell.nix b/shell.nix index 31514c3c76..4e0c01eca0 100644 --- a/shell.nix +++ b/shell.nix @@ -2,7 +2,7 @@ pkgs.mkShell { # nativeBuildInputs is usually what you want -- tools you need to run nativeBuildInputs = with pkgs; with qt6; [ - gnumake + just crowdin-cli cmake qmake diff --git a/webpage/Makefile b/webpage/Makefile deleted file mode 100644 index b2ddb50ae7..0000000000 --- a/webpage/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -.PHONY: bash - -bash: - #docker run -it --rm --volume .:/app --user $(id -u) node:12 bash - #docker-compose run --rm dev bash -c "cd /app && bash" - docker-compose exec dev bash -c "cd /app && bash" - -dev: - npm run dev diff --git a/webpage/justfile b/webpage/justfile new file mode 100644 index 0000000000..612e7c6cb3 --- /dev/null +++ b/webpage/justfile @@ -0,0 +1,14 @@ +# Use `just ` to run a recipe +# https://just.systems/man/en/ + +# By default, run the `--list` command +default: + @just --list + +bash: + #docker run -it --rm --volume .:/app --user $(id -u) node:12 bash + #docker-compose run --rm dev bash -c "cd /app && bash" + docker-compose exec dev bash -c "cd /app && bash" + +dev: + npm run dev