mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 22:48:56 +02:00
Support for bundled Qt, not through aqtinstall but rather my CI. Multimedia is implemented too, works on both Windows and Linux, though we don't actually use it so it doesn't really matter. Contains Declarative and all that so the Quick frontend will work once it becomes a thing. Some options have changed, notably w.r.t LTO and faster linker, which are now handled directly in the modules. CPMUtil also has support for custom dirs (`PackageName_CUSTOM_DIR`) now. Probably most useful for adding external fragment shaders and whatnot. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3289
79 lines
1.3 KiB
Bash
Executable file
79 lines
1.3 KiB
Bash
Executable file
#!/bin/sh -e
|
|
|
|
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
RETURN=0
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: cpmutil.sh package add [-s|--sha] [-t|--tag]
|
|
[-c|--cpmfile CPMFILE] [package name]
|
|
|
|
Add a new package to a cpmfile.
|
|
|
|
Options:
|
|
-t, --tag Use tag versioning, instead of the default,
|
|
commit sha versioning.
|
|
-c, --cpmfile <CPMFILE> Use the specified cpmfile instead of the root cpmfile
|
|
|
|
Note that you are still responsible for integrating this into your CMake.
|
|
|
|
EOF
|
|
|
|
exit $RETURN
|
|
}
|
|
|
|
die() {
|
|
echo "-- $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
_cpmfile() {
|
|
[ -n "$1" ] || die "You must specify a valid cpmfile."
|
|
CPMFILE="$1"
|
|
}
|
|
|
|
while :; do
|
|
case "$1" in
|
|
-[a-z]*)
|
|
opt=$(printf '%s' "$1" | sed 's/^-//')
|
|
while [ -n "$opt" ]; do
|
|
# cut out first char from the optstring
|
|
char=$(echo "$opt" | cut -c1)
|
|
opt=$(echo "$opt" | cut -c2-)
|
|
|
|
case "$char" in
|
|
t) TAG=1 ;;
|
|
c)
|
|
_cpmfile "$2"
|
|
shift
|
|
;;
|
|
h) usage ;;
|
|
*) die "Invalid option -$char" ;;
|
|
esac
|
|
done
|
|
;;
|
|
--tag) TAG=1 ;;
|
|
--cpmfile)
|
|
_cpmfile "$2"
|
|
shift
|
|
;;
|
|
--help) usage ;;
|
|
"$0") break ;;
|
|
"") break ;;
|
|
*) PKG="$1" ;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
|
|
: "${CPMFILE:=$PWD/cpmfile.json}"
|
|
|
|
[ -n "$PKG" ] || die "You must specify a package name."
|
|
|
|
export PKG
|
|
export CPMFILE
|
|
export TAG
|
|
|
|
"$SCRIPTS"/util/interactive.sh
|