diff options
| author | crueter <crueter@eden-emu.dev> | 2025-12-04 06:00:58 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-04 06:00:58 +0100 |
| commit | 18135424df0adbd3052849d9179b19da84b21771 (patch) | |
| tree | f08fe812eedc0112df93a0b2d835d726c1f4f43d /tools/cpm | |
| parent | 1d2b9de4966e17b0f4c91aa2ad825573ff7ee9df (diff) | |
[cmake] more modules, general "cleanup" (#3126)
Successor to that old MoltenVK PR. Does a lot of cleanups within root CMakeLists.txt, hands over MoltenVK and VulkanValidationLayers to CPMUtil, and separates out common operations into my modules.
Hopefully reduces the monstrosity that is root CMakeLists.txt. Please test:
- builds on all platforms
- VulkanValidationLayers
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3126
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'tools/cpm')
| -rwxr-xr-x | tools/cpm/check-updates.sh | 26 | ||||
| -rwxr-xr-x | tools/cpm/download.sh | 14 |
2 files changed, 30 insertions, 10 deletions
diff --git a/tools/cpm/check-updates.sh b/tools/cpm/check-updates.sh index 5fc7836199..189c520690 100755 --- a/tools/cpm/check-updates.sh +++ b/tools/cpm/check-updates.sh @@ -8,10 +8,14 @@ RETURN=0 -filter() { +filter_out() { TAGS=$(echo "$TAGS" | jq "[.[] | select(.name | test(\"$1\"; \"i\") | not)]") } +filter_in() { + TAGS=$(echo "$TAGS" | jq "[.[] | select(.name | test(\"$1\"; \"i\"))]") +} + usage() { cat << EOF Usage: $0 [uf] [PACKAGE]... @@ -83,19 +87,27 @@ while true; do # filter out some commonly known annoyances # TODO add more - filter vulkan-sdk # vulkan - filter yotta # mbedtls + if [ "$PACKAGE" = "vulkan-validation-layers" ]; then + filter_in vulkan-sdk + else + filter_out vulkan-sdk + fi + + [ "$CI" = "true" ] && filter_in "-" + + filter_out yotta # mbedtls # ignore betas/alphas (remove if needed) - filter alpha - filter beta - filter rc + filter_out alpha + filter_out beta + filter_out rc # Add package-specific overrides here, e.g. here for fmt: - [ "$PACKAGE" = fmt ] && filter v0.11 + [ "$PACKAGE" = fmt ] && filter_out v0.11 LATEST=$(echo "$TAGS" | jq -r '.[0].name') + [ "$LATEST" = "null" ] && echo "-- * Up-to-date" && continue [ "$LATEST" = "$TAG" ] && [ "$FORCE" != "true" ] && echo "-- * Up-to-date" && continue RETURN=1 diff --git a/tools/cpm/download.sh b/tools/cpm/download.sh index bc436ba0f1..c8a1d637e0 100755 --- a/tools/cpm/download.sh +++ b/tools/cpm/download.sh @@ -20,10 +20,13 @@ download_package() { ACTUAL_HASH=$("${HASH_ALGO}"sum "$OUTFILE" | cut -d" " -f1) [ "$ACTUAL_HASH" != "$HASH" ] && echo "!! $FILENAME did not match expected hash; expected $HASH but got $ACTUAL_HASH" && exit 1 + TMPDIR="$TMP/extracted" mkdir -p "$OUTDIR" + mkdir -p "$TMPDIR" PREVDIR="$PWD" - cd "$OUTDIR" + mkdir -p "$TMPDIR" + cd "$TMPDIR" case "$FILENAME" in (*.7z) @@ -44,11 +47,16 @@ download_package() { # thanks gnu if [ "$(echo "$DIRS" | wc -l)" -eq 2 ]; then SUBDIR=$(find . -maxdepth 1 -type d -not -name ".") - mv "$SUBDIR"/* . - mv "$SUBDIR"/.* . 2>/dev/null || true + mv "$SUBDIR"/* "$OUTDIR" + mv "$SUBDIR"/.* "$OUTDIR" 2>/dev/null || true rmdir "$SUBDIR" + else + mv ./* "$OUTDIR" + mv ./.* "$OUTDIR" 2>/dev/null || true fi + cd "$OUTDIR" + if echo "$JSON" | grep -e "patches" > /dev/null; then PATCHES=$(echo "$JSON" | jq -r '.patches | join(" ")') for patch in $PATCHES; do |
