Compare commits
No commits in common. "master" and "v0.2.0-rc2" have entirely different histories.
master
...
v0.2.0-rc2
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
_svg=dev.eden_emu.eden.svg
|
|
||||||
_icon=dist/eden.icon
|
|
||||||
_composed="$_icon/Assets/$_svg"
|
|
||||||
_svg="dist/$_svg"
|
|
||||||
|
|
||||||
rm "$_composed"
|
|
||||||
cp "$_svg" "$_composed"
|
|
||||||
|
|
||||||
xcrun actool "$_icon" \
|
|
||||||
--compile dist \
|
|
||||||
--platform macosx \
|
|
||||||
--minimum-deployment-target 11.0 \
|
|
||||||
--app-icon eden \
|
|
||||||
--output-partial-info-plist /dev/null
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh tools/windows/vcvarsall.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder externals/cmake-modules"
|
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh tools/windows/vcvarsall.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder externals/cmake-modules"
|
||||||
|
|
||||||
# license header constants, please change when needed :))))
|
# license header constants, please change when needed :))))
|
||||||
YEAR=$(date "+%Y")
|
YEAR=2026
|
||||||
HOLDER="Eden Emulator Project"
|
HOLDER="Eden Emulator Project"
|
||||||
LICENSE="GPL-3.0-or-later"
|
LICENSE="GPL-3.0-or-later"
|
||||||
|
|
||||||
|
|
@ -112,10 +112,10 @@ for file in $FILES; do
|
||||||
[ "$excluded" = "true" ] && continue
|
[ "$excluded" = "true" ] && continue
|
||||||
|
|
||||||
case "$file" in
|
case "$file" in
|
||||||
*.cmake|*.sh|*.ps1|*.py|*.rb|*.perl|*.pl|*.nix|*CMakeLists.txt)
|
*.cmake|*.sh|*CMakeLists.txt)
|
||||||
begin="#"
|
begin="#"
|
||||||
;;
|
;;
|
||||||
*.kt|*.kts|*.cpp|*.h|*.qml|*.c|*.hpp|*.hxx|*.cxx|*.h.in|*.inc)
|
*.kt*|*.cpp|*.h|*.qml)
|
||||||
begin="//"
|
begin="//"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
@ -185,12 +185,11 @@ if [ "$UPDATE" = "true" ]; then
|
||||||
|
|
||||||
for file in $SRC_FILES $OTHER_FILES; do
|
for file in $SRC_FILES $OTHER_FILES; do
|
||||||
case $(basename -- "$file") in
|
case $(basename -- "$file") in
|
||||||
# Windows Powershell wont use shebangs
|
*.cmake|*CMakeLists.txt)
|
||||||
*.cmake|*.ps1|*CMakeLists.txt)
|
|
||||||
begin="#"
|
begin="#"
|
||||||
shell="false"
|
shell="false"
|
||||||
;;
|
;;
|
||||||
*.sh|*.py|*.rb|*.perl|*.pl|*.nix)
|
*.sh)
|
||||||
begin="#"
|
begin="#"
|
||||||
shell=true
|
shell=true
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
116
.ci/linux/build.sh
Executable file
|
|
@ -0,0 +1,116 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
amd64 | "")
|
||||||
|
echo "Making amd64-v3 optimized build of Eden"
|
||||||
|
ARCH="amd64_v3"
|
||||||
|
ARCH_FLAGS="-march=x86-64-v3"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=v3)
|
||||||
|
;;
|
||||||
|
steamdeck | zen2)
|
||||||
|
echo "Making Steam Deck (Zen 2) optimized build of Eden"
|
||||||
|
ARCH="steamdeck"
|
||||||
|
ARCH_FLAGS="-march=znver2 -mtune=znver2"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
|
||||||
|
;;
|
||||||
|
rog-ally | allyx | zen4)
|
||||||
|
echo "Making ROG Ally X (Zen 4) optimized build of Eden"
|
||||||
|
ARCH="rog-ally-x"
|
||||||
|
ARCH_FLAGS="-march=znver4 -mtune=znver4"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
|
||||||
|
;;
|
||||||
|
legacy)
|
||||||
|
echo "Making amd64 generic build of Eden"
|
||||||
|
ARCH=amd64
|
||||||
|
ARCH_FLAGS="-march=x86-64 -mtune=generic"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
echo "Making armv8-a build of Eden"
|
||||||
|
ARCH=aarch64
|
||||||
|
ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
|
||||||
|
;;
|
||||||
|
armv9)
|
||||||
|
echo "Making armv9-a build of Eden"
|
||||||
|
ARCH=armv9
|
||||||
|
ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=armv9)
|
||||||
|
;;
|
||||||
|
native)
|
||||||
|
echo "Making native build of Eden"
|
||||||
|
ARCH="$(uname -m)"
|
||||||
|
ARCH_FLAGS="-march=native -mtune=native"
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=native)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Invalid target $1 specified, must be one of native, amd64, steamdeck, zen2, allyx, rog-ally, zen4, legacy, aarch64, armv9"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
export ARCH_FLAGS="$ARCH_FLAGS -O3"
|
||||||
|
|
||||||
|
if [ -z "$NPROC" ]; then
|
||||||
|
NPROC="$(nproc)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" != "" ]; then shift; fi
|
||||||
|
|
||||||
|
if [ "$TARGET" = "appimage" ]; then
|
||||||
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
|
||||||
|
else
|
||||||
|
# For the linux-fresh verification target, verify compilation without PCH as well.
|
||||||
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$DEVEL" != "true" ]; then
|
||||||
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_UPDATE_CHECKER=ON)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$USE_WEBENGINE" = "true" ]; then
|
||||||
|
WEBENGINE=ON
|
||||||
|
else
|
||||||
|
WEBENGINE=OFF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$USE_MULTIMEDIA" = "false" ]; then
|
||||||
|
MULTIMEDIA=OFF
|
||||||
|
else
|
||||||
|
MULTIMEDIA=ON
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$BUILD_TYPE" ]; then
|
||||||
|
export BUILD_TYPE="Release"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
|
||||||
|
|
||||||
|
mkdir -p build && cd build
|
||||||
|
cmake .. -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
|
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
|
||||||
|
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
|
||||||
|
-DYUZU_USE_BUNDLED_QT=OFF \
|
||||||
|
-DYUZU_USE_BUNDLED_SDL2=OFF \
|
||||||
|
-DYUZU_USE_EXTERNAL_SDL2=ON \
|
||||||
|
-DYUZU_TESTS=OFF \
|
||||||
|
-DYUZU_USE_QT_MULTIMEDIA=$MULTIMEDIA \
|
||||||
|
-DYUZU_USE_QT_WEB_ENGINE=$WEBENGINE \
|
||||||
|
-DYUZU_USE_FASTER_LD=ON \
|
||||||
|
-DENABLE_LTO=ON \
|
||||||
|
"${EXTRA_CMAKE_FLAGS[@]}"
|
||||||
|
|
||||||
|
ninja -j${NPROC}
|
||||||
|
|
||||||
|
if [ -d "bin/Release" ]; then
|
||||||
|
strip -s bin/Release/*
|
||||||
|
else
|
||||||
|
strip -s bin/*
|
||||||
|
fi
|
||||||
250
.ci/linux/eden.dwfsprof
Normal file
|
|
@ -0,0 +1,250 @@
|
||||||
|
AppRun
|
||||||
|
eden.desktop
|
||||||
|
dev.eden_emu.eden.desktop
|
||||||
|
shared/bin/eden
|
||||||
|
shared/lib/lib.path
|
||||||
|
shared/lib/ld-linux-x86-64.so.2
|
||||||
|
shared/lib/libQt6Widgets.so.6.4.2
|
||||||
|
shared/lib/libQt6DBus.so.6.4.2
|
||||||
|
shared/lib/libudev.so.1.7.5
|
||||||
|
shared/lib/libbrotlienc.so.1.0.9
|
||||||
|
shared/lib/libbrotlidec.so.1.0.9
|
||||||
|
shared/lib/libssl.so.3
|
||||||
|
shared/lib/libcrypto.so.3
|
||||||
|
shared/lib/libavcodec.so.59.37.100
|
||||||
|
shared/lib/libavutil.so.57.28.100
|
||||||
|
shared/lib/libQt6Gui.so.6.4.2
|
||||||
|
shared/lib/libQt6Core.so.6.4.2
|
||||||
|
shared/lib/libstdc++.so.6.0.30
|
||||||
|
shared/lib/libm.so.6
|
||||||
|
shared/lib/libgcc_s.so.1
|
||||||
|
shared/lib/libc.so.6
|
||||||
|
shared/lib/libdbus-1.so.3.32.4
|
||||||
|
shared/lib/libbrotlicommon.so.1.0.9
|
||||||
|
shared/lib/libswresample.so.4.7.100
|
||||||
|
shared/lib/libvpx.so.7.1.0
|
||||||
|
shared/lib/libwebpmux.so.3.0.10
|
||||||
|
shared/lib/libwebp.so.7.1.5
|
||||||
|
shared/lib/liblzma.so.5.4.1
|
||||||
|
shared/lib/libdav1d.so.6.6.0
|
||||||
|
shared/lib/librsvg-2.so.2.48.0
|
||||||
|
shared/lib/libgobject-2.0.so.0.7400.6
|
||||||
|
shared/lib/libglib-2.0.so.0.7400.6
|
||||||
|
shared/lib/libcairo.so.2.11600.0
|
||||||
|
shared/lib/libzvbi.so.0.13.2
|
||||||
|
shared/lib/libz.so.1.2.13
|
||||||
|
shared/lib/libsnappy.so.1.1.9
|
||||||
|
shared/lib/libaom.so.3.6.0
|
||||||
|
shared/lib/libcodec2.so.1.0
|
||||||
|
shared/lib/libgsm.so.1.0.19
|
||||||
|
shared/lib/libjxl.so.0.7.0
|
||||||
|
shared/lib/libjxl_threads.so.0.7.0
|
||||||
|
shared/lib/libmp3lame.so.0.0.0
|
||||||
|
shared/lib/libopenjp2.so.2.5.0
|
||||||
|
shared/lib/libopus.so.0.8.0
|
||||||
|
shared/lib/librav1e.so.0.5.1
|
||||||
|
shared/lib/libshine.so.3.0.1
|
||||||
|
shared/lib/libspeex.so.1.5.2
|
||||||
|
shared/lib/libSvtAv1Enc.so.1.4.1
|
||||||
|
shared/lib/libtheoraenc.so.1.1.2
|
||||||
|
shared/lib/libtheoradec.so.1.1.4
|
||||||
|
shared/lib/libtwolame.so.0.0.0
|
||||||
|
shared/lib/libvorbis.so.0.4.9
|
||||||
|
shared/lib/libvorbisenc.so.2.0.12
|
||||||
|
shared/lib/libx264.so.164
|
||||||
|
shared/lib/libx265.so.199
|
||||||
|
shared/lib/libxvidcore.so.4.3
|
||||||
|
shared/lib/libva.so.2.1700.0
|
||||||
|
shared/lib/libmfx.so.1.35
|
||||||
|
shared/lib/libva-drm.so.2.1700.0
|
||||||
|
shared/lib/libva-x11.so.2.1700.0
|
||||||
|
shared/lib/libvdpau.so.1.0.0
|
||||||
|
shared/lib/libX11.so.6.4.0
|
||||||
|
shared/lib/libdrm.so.2.4.0
|
||||||
|
shared/lib/libOpenCL.so.1.0.0
|
||||||
|
shared/lib/libEGL.so.1.1.0
|
||||||
|
shared/lib/libfontconfig.so.1.12.0
|
||||||
|
shared/lib/libxkbcommon.so.0.0.0
|
||||||
|
shared/lib/libGLX.so.0.0.0
|
||||||
|
shared/lib/libOpenGL.so.0.0.0
|
||||||
|
shared/lib/libpng16.so.16.39.0
|
||||||
|
shared/lib/libharfbuzz.so.0.60000.0
|
||||||
|
shared/lib/libmd4c.so.0.4.8
|
||||||
|
shared/lib/libfreetype.so.6.18.3
|
||||||
|
shared/lib/libicui18n.so.72.1
|
||||||
|
shared/lib/libicuuc.so.72.1
|
||||||
|
shared/lib/libdouble-conversion.so.3.1
|
||||||
|
shared/lib/libb2.so.1.0.4
|
||||||
|
shared/lib/libpcre2-16.so.0.11.2
|
||||||
|
shared/lib/libzstd.so.1.5.4
|
||||||
|
shared/lib/libsystemd.so.0.35.0
|
||||||
|
shared/lib/libsoxr.so.0.1.2
|
||||||
|
shared/lib/libcairo-gobject.so.2.11600.0
|
||||||
|
shared/lib/libgdk_pixbuf-2.0.so.0.4200.10
|
||||||
|
shared/lib/libgio-2.0.so.0.7400.6
|
||||||
|
shared/lib/libxml2.so.2.9.14
|
||||||
|
shared/lib/libpangocairo-1.0.so.0.5000.12
|
||||||
|
shared/lib/libpango-1.0.so.0.5000.12
|
||||||
|
shared/lib/libffi.so.8.1.2
|
||||||
|
shared/lib/libpcre2-8.so.0.11.2
|
||||||
|
shared/lib/libpixman-1.so.0.42.2
|
||||||
|
shared/lib/libxcb-shm.so.0.0.0
|
||||||
|
shared/lib/libxcb.so.1.1.0
|
||||||
|
shared/lib/libxcb-render.so.0.0.0
|
||||||
|
shared/lib/libXrender.so.1.3.0
|
||||||
|
shared/lib/libXext.so.6.4.0
|
||||||
|
shared/lib/libhwy.so.1.0.3
|
||||||
|
shared/lib/liblcms2.so.2.0.14
|
||||||
|
shared/lib/libogg.so.0.8.5
|
||||||
|
shared/lib/libnuma.so.1.0.0
|
||||||
|
shared/lib/libpthread.so.0
|
||||||
|
shared/lib/libXfixes.so.3.1.0
|
||||||
|
shared/lib/libX11-xcb.so.1.0.0
|
||||||
|
shared/lib/libxcb-dri3.so.0.1.0
|
||||||
|
shared/lib/libGLdispatch.so.0.0.0
|
||||||
|
shared/lib/libexpat.so.1.8.10
|
||||||
|
shared/lib/libgraphite2.so.3.2.1
|
||||||
|
shared/lib/libicudata.so.72.1
|
||||||
|
shared/lib/libgomp.so.1.0.0
|
||||||
|
shared/lib/libcap.so.2.66
|
||||||
|
shared/lib/libgcrypt.so.20.4.1
|
||||||
|
shared/lib/liblz4.so.1.9.4
|
||||||
|
shared/lib/libgmodule-2.0.so.0.7400.6
|
||||||
|
shared/lib/libjpeg.so.62.3.0
|
||||||
|
shared/lib/libmount.so.1.1.0
|
||||||
|
shared/lib/libselinux.so.1
|
||||||
|
shared/lib/libpangoft2-1.0.so.0.5000.12
|
||||||
|
shared/lib/libfribidi.so.0.4.0
|
||||||
|
shared/lib/libthai.so.0.3.1
|
||||||
|
shared/lib/libXau.so.6.0.0
|
||||||
|
shared/lib/libXdmcp.so.6.0.0
|
||||||
|
shared/lib/libgpg-error.so.0.33.1
|
||||||
|
shared/lib/libblkid.so.1.1.0
|
||||||
|
shared/lib/libdatrie.so.1.4.0
|
||||||
|
shared/lib/libbsd.so.0.11.7
|
||||||
|
shared/lib/libmd.so.0.0.5
|
||||||
|
shared/lib/libvulkan.so.1.3.239
|
||||||
|
share/vulkan/icd.d/intel_hasvk_icd.x86_64.json
|
||||||
|
shared/lib/libvulkan_intel_hasvk.so
|
||||||
|
shared/lib/libwayland-client.so.0.21.0
|
||||||
|
shared/lib/libxcb-present.so.0.0.0
|
||||||
|
shared/lib/libxcb-xfixes.so.0.0.0
|
||||||
|
shared/lib/libxcb-sync.so.1.0.0
|
||||||
|
shared/lib/libxcb-randr.so.0.1.0
|
||||||
|
shared/lib/libxshmfence.so.1.0.0
|
||||||
|
share/vulkan/icd.d/intel_icd.x86_64.json
|
||||||
|
shared/lib/libvulkan_intel.so
|
||||||
|
share/vulkan/icd.d/lvp_icd.x86_64.json
|
||||||
|
shared/lib/libvulkan_lvp.so
|
||||||
|
shared/lib/libLLVM-15.so.1
|
||||||
|
shared/lib/libedit.so.2.0.70
|
||||||
|
shared/lib/libz3.so.4
|
||||||
|
shared/lib/libtinfo.so.6.4
|
||||||
|
share/vulkan/icd.d/radeon_icd.x86_64.json
|
||||||
|
shared/lib/libvulkan_radeon.so
|
||||||
|
shared/lib/libdrm_amdgpu.so.1.0.0
|
||||||
|
shared/lib/libelf-0.188.so
|
||||||
|
shared/lib/libVkLayer_MESA_device_select.so
|
||||||
|
bin/qt.conf
|
||||||
|
shared/lib/qt6/plugins/platforms/libqeglfs.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqlinuxfb.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqminimal.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqminimalegl.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqoffscreen.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqvkkhrdisplay.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqvnc.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqwayland-egl.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqwayland-generic.so
|
||||||
|
shared/lib/qt6/plugins/platforms/libqxcb.so
|
||||||
|
shared/lib/libQt6WaylandClient.so.6.4.2
|
||||||
|
shared/lib/libwayland-cursor.so.0.21.0
|
||||||
|
shared/lib/qt6/plugins/platformthemes/libqgtk3.so
|
||||||
|
shared/lib/libgtk-3.so.0.2406.32
|
||||||
|
shared/lib/libgdk-3.so.0.2406.32
|
||||||
|
shared/lib/libatk-1.0.so.0.24609.1
|
||||||
|
shared/lib/libepoxy.so.0.0.0
|
||||||
|
shared/lib/libXi.so.6.1.0
|
||||||
|
shared/lib/libatk-bridge-2.0.so.0.0.0
|
||||||
|
shared/lib/libwayland-egl.so.1.21.0
|
||||||
|
shared/lib/libXcursor.so.1.0.2
|
||||||
|
shared/lib/libXdamage.so.1.1.0
|
||||||
|
shared/lib/libXcomposite.so.1.0.0
|
||||||
|
shared/lib/libXrandr.so.2.2.0
|
||||||
|
shared/lib/libXinerama.so.1.0.0
|
||||||
|
shared/lib/libdl.so.2
|
||||||
|
shared/lib/libatspi.so.0.0.1
|
||||||
|
share/glib-2.0/schemas/gschemas.compiled
|
||||||
|
shared/lib/gio/modules/giomodule.cache
|
||||||
|
shared/lib/gio/modules/libdconfsettings.so
|
||||||
|
shared/lib/gio/modules/libgvfsdbus.so
|
||||||
|
shared/lib/gvfs/libgvfscommon.so
|
||||||
|
share/X11/xkb/rules/evdev
|
||||||
|
share/X11/xkb/keycodes/evdev
|
||||||
|
share/X11/xkb/keycodes/aliases
|
||||||
|
share/X11/xkb/types/complete
|
||||||
|
share/X11/xkb/types/basic
|
||||||
|
share/X11/xkb/types/mousekeys
|
||||||
|
share/X11/xkb/types/pc
|
||||||
|
share/X11/xkb/types/iso9995
|
||||||
|
share/X11/xkb/types/level5
|
||||||
|
share/X11/xkb/types/extra
|
||||||
|
share/X11/xkb/types/numpad
|
||||||
|
share/X11/xkb/compat/complete
|
||||||
|
share/X11/xkb/compat/basic
|
||||||
|
share/X11/xkb/compat/ledcaps
|
||||||
|
share/X11/xkb/compat/lednum
|
||||||
|
share/X11/xkb/compat/iso9995
|
||||||
|
share/X11/xkb/compat/mousekeys
|
||||||
|
share/X11/xkb/compat/accessx
|
||||||
|
share/X11/xkb/compat/misc
|
||||||
|
share/X11/xkb/compat/ledscroll
|
||||||
|
share/X11/xkb/compat/xfree86
|
||||||
|
share/X11/xkb/compat/level5
|
||||||
|
share/X11/xkb/compat/caps
|
||||||
|
share/X11/xkb/symbols/pc
|
||||||
|
share/X11/xkb/symbols/srvr_ctrl
|
||||||
|
share/X11/xkb/symbols/keypad
|
||||||
|
share/X11/xkb/symbols/altwin
|
||||||
|
share/X11/xkb/symbols/us
|
||||||
|
share/X11/xkb/symbols/inet
|
||||||
|
shared/lib/qt6/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so
|
||||||
|
shared/lib/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
|
||||||
|
shared/lib/qt6/plugins/iconengines/libqsvgicon.so
|
||||||
|
shared/lib/qt6/plugins/imageformats/libqgif.so
|
||||||
|
shared/lib/qt6/plugins/imageformats/libqico.so
|
||||||
|
shared/lib/qt6/plugins/imageformats/libqjpeg.so
|
||||||
|
shared/lib/qt6/plugins/imageformats/libqsvg.so
|
||||||
|
shared/lib/libQt6Svg.so.6.4.2
|
||||||
|
etc/fonts/fonts.conf
|
||||||
|
shared/lib/qt6/plugins/wayland-shell-integration/libfullscreen-shell-v1.so
|
||||||
|
shared/lib/qt6/plugins/wayland-shell-integration/libivi-shell.so
|
||||||
|
shared/lib/qt6/plugins/wayland-shell-integration/libqt-shell.so
|
||||||
|
shared/lib/qt6/plugins/wayland-shell-integration/libwl-shell-plugin.so
|
||||||
|
shared/lib/qt6/plugins/wayland-shell-integration/libxdg-shell.so
|
||||||
|
shared/lib/qt6/plugins/wayland-graphics-integration-client/libdmabuf-server.so
|
||||||
|
shared/lib/qt6/plugins/wayland-graphics-integration-client/libdrm-egl-server.so
|
||||||
|
shared/lib/qt6/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
|
||||||
|
shared/lib/qt6/plugins/wayland-graphics-integration-client/libshm-emulation-server.so
|
||||||
|
shared/lib/qt6/plugins/wayland-graphics-integration-client/libvulkan-server.so
|
||||||
|
shared/lib/libQt6WaylandEglClientHwIntegration.so.6.4.2
|
||||||
|
shared/lib/libQt6OpenGL.so.6.4.2
|
||||||
|
share/glvnd/egl_vendor.d/50_mesa.json
|
||||||
|
shared/lib/libEGL_mesa.so.0.0.0
|
||||||
|
shared/lib/libgbm.so.1.0.0
|
||||||
|
shared/lib/libglapi.so.0.0.0
|
||||||
|
shared/lib/libxcb-dri2.so.0.0.0
|
||||||
|
shared/lib/libwayland-server.so.0.21.0
|
||||||
|
shared/lib/dri/swrast_dri.so
|
||||||
|
shared/lib/libsensors.so.5.0.0
|
||||||
|
shared/lib/libdrm_radeon.so.1.0.1
|
||||||
|
shared/lib/libdrm_nouveau.so.2.0.0
|
||||||
|
shared/lib/libdrm_intel.so.1.0.0
|
||||||
|
shared/lib/libpciaccess.so.0.11.1
|
||||||
|
shared/lib/qt6/plugins/wayland-decoration-client/libbradient.so
|
||||||
|
shared/lib/gtk-3.0/modules/libcanberra-gtk3-module.so
|
||||||
|
shared/lib/libcanberra-gtk3.so.0.1.9
|
||||||
|
shared/lib/libcanberra.so.0.2.5
|
||||||
|
shared/lib/libvorbisfile.so.3.3.8
|
||||||
|
shared/lib/libtdb.so.1.4.8
|
||||||
|
shared/lib/libltdl.so.7.3.2
|
||||||
|
shared/lib/libXss.so.1.0.0
|
||||||
153
.ci/linux/package.sh
Executable file
|
|
@ -0,0 +1,153 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# This script assumes you're in the source directory
|
||||||
|
|
||||||
|
export APPIMAGE_EXTRACT_AND_RUN=1
|
||||||
|
export BASE_ARCH="$(uname -m)"
|
||||||
|
|
||||||
|
SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-${BASE_ARCH}-aio"
|
||||||
|
URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-${BASE_ARCH}"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
amd64|"")
|
||||||
|
echo "Packaging amd64-v3 optimized build of Eden"
|
||||||
|
ARCH="amd64_v3"
|
||||||
|
;;
|
||||||
|
steamdeck|zen2)
|
||||||
|
echo "Packaging Steam Deck (Zen 2) optimized build of Eden"
|
||||||
|
ARCH="steamdeck"
|
||||||
|
;;
|
||||||
|
rog-ally|allyx|zen4)
|
||||||
|
echo "Packaging ROG Ally X (Zen 4) optimized build of Eden"
|
||||||
|
ARCH="rog-ally-x"
|
||||||
|
;;
|
||||||
|
legacy)
|
||||||
|
echo "Packaging amd64 generic build of Eden"
|
||||||
|
ARCH=amd64
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
echo "Packaging armv8-a build of Eden"
|
||||||
|
ARCH=aarch64
|
||||||
|
;;
|
||||||
|
armv9)
|
||||||
|
echo "Packaging armv9-a build of Eden"
|
||||||
|
ARCH=armv9
|
||||||
|
;;
|
||||||
|
native)
|
||||||
|
echo "Packaging native build of Eden"
|
||||||
|
ARCH="$BASE_ARCH"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
export BUILDDIR="$2"
|
||||||
|
|
||||||
|
if [ "$BUILDDIR" = '' ]
|
||||||
|
then
|
||||||
|
BUILDDIR=build
|
||||||
|
fi
|
||||||
|
|
||||||
|
EDEN_TAG=$(git describe --tags --abbrev=0)
|
||||||
|
echo "Making \"$EDEN_TAG\" build"
|
||||||
|
# git checkout "$EDEN_TAG"
|
||||||
|
VERSION="$(echo "$EDEN_TAG")"
|
||||||
|
|
||||||
|
# NOW MAKE APPIMAGE
|
||||||
|
mkdir -p ./AppDir
|
||||||
|
cd ./AppDir
|
||||||
|
|
||||||
|
cp ../dist/dev.eden_emu.eden.desktop .
|
||||||
|
cp ../dist/dev.eden_emu.eden.svg .
|
||||||
|
|
||||||
|
ln -sf ./dev.eden_emu.eden.svg ./.DirIcon
|
||||||
|
|
||||||
|
UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
|
||||||
|
|
||||||
|
if [ "$DEVEL" = 'true' ]; then
|
||||||
|
sed -i 's|Name=Eden|Name=Eden Nightly|' ./dev.eden_emu.eden.desktop
|
||||||
|
UPINFO="$(echo "$UPINFO" | sed 's|Releases|nightly|')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIBDIR="/usr/lib"
|
||||||
|
|
||||||
|
# Workaround for Gentoo
|
||||||
|
if [ ! -d "$LIBDIR/qt6" ]
|
||||||
|
then
|
||||||
|
LIBDIR="/usr/lib64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Workaround for Debian
|
||||||
|
if [ ! -d "$LIBDIR/qt6" ]
|
||||||
|
then
|
||||||
|
LIBDIR="/usr/lib/${BASE_ARCH}-linux-gnu"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Bundle all libs
|
||||||
|
|
||||||
|
wget --retry-connrefused --tries=30 "$SHARUN" -O ./sharun-aio
|
||||||
|
chmod +x ./sharun-aio
|
||||||
|
xvfb-run -a ./sharun-aio l -p -v -e -s -k \
|
||||||
|
../$BUILDDIR/bin/eden* \
|
||||||
|
$LIBDIR/lib*GL*.so* \
|
||||||
|
$LIBDIR/dri/* \
|
||||||
|
$LIBDIR/vdpau/* \
|
||||||
|
$LIBDIR/libvulkan* \
|
||||||
|
$LIBDIR/libXss.so* \
|
||||||
|
$LIBDIR/libdecor-0.so* \
|
||||||
|
$LIBDIR/libgamemode.so* \
|
||||||
|
$LIBDIR/qt6/plugins/audio/* \
|
||||||
|
$LIBDIR/qt6/plugins/bearer/* \
|
||||||
|
$LIBDIR/qt6/plugins/imageformats/* \
|
||||||
|
$LIBDIR/qt6/plugins/iconengines/* \
|
||||||
|
$LIBDIR/qt6/plugins/platforms/* \
|
||||||
|
$LIBDIR/qt6/plugins/platformthemes/* \
|
||||||
|
$LIBDIR/qt6/plugins/platforminputcontexts/* \
|
||||||
|
$LIBDIR/qt6/plugins/styles/* \
|
||||||
|
$LIBDIR/qt6/plugins/xcbglintegrations/* \
|
||||||
|
$LIBDIR/qt6/plugins/wayland-*/* \
|
||||||
|
$LIBDIR/pulseaudio/* \
|
||||||
|
$LIBDIR/pipewire-0.3/* \
|
||||||
|
$LIBDIR/spa-0.2/*/* \
|
||||||
|
$LIBDIR/alsa-lib/*
|
||||||
|
|
||||||
|
rm -f ./sharun-aio
|
||||||
|
|
||||||
|
# Prepare sharun
|
||||||
|
if [ "$ARCH" = 'aarch64' ]; then
|
||||||
|
# allow the host vulkan to be used for aarch64 given the sad situation
|
||||||
|
echo 'SHARUN_ALLOW_SYS_VKICD=1' > ./.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Workaround for Gentoo
|
||||||
|
if [ -d "shared/libproxy" ]; then
|
||||||
|
cp shared/libproxy/* lib/
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -f ./sharun ./AppRun
|
||||||
|
./sharun -g
|
||||||
|
|
||||||
|
# turn appdir into appimage
|
||||||
|
cd ..
|
||||||
|
wget -q "$URUNTIME" -O ./uruntime
|
||||||
|
chmod +x ./uruntime
|
||||||
|
|
||||||
|
#Add udpate info to runtime
|
||||||
|
echo "Adding update information \"$UPINFO\" to runtime..."
|
||||||
|
./uruntime --appimage-addupdinfo "$UPINFO"
|
||||||
|
|
||||||
|
echo "Generating AppImage..."
|
||||||
|
./uruntime --appimage-mkdwarfs -f \
|
||||||
|
--set-owner 0 --set-group 0 \
|
||||||
|
--no-history --no-create-timestamp \
|
||||||
|
--categorize=hotness --hotness-list=.ci/linux/eden.dwfsprof \
|
||||||
|
--compression zstd:level=22 -S26 -B32 \
|
||||||
|
--header uruntime \
|
||||||
|
-N 4 \
|
||||||
|
-i ./AppDir -o Eden-"$VERSION"-"$ARCH".AppImage
|
||||||
|
|
||||||
|
echo "Generating zsync file..."
|
||||||
|
zsyncmake *.AppImage -u *.AppImage
|
||||||
|
echo "All Done!"
|
||||||
22
.ci/source.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
# git-archive-all
|
||||||
|
export PATH="$PATH:/home/$USER/.local/bin"
|
||||||
|
|
||||||
|
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
|
||||||
|
GITREV="`git show -s --format='%h'`"
|
||||||
|
REV_NAME="eden-unified-source-${GITDATE}-${GITREV}"
|
||||||
|
|
||||||
|
COMPAT_LIST='dist/compatibility_list/compatibility_list.json'
|
||||||
|
|
||||||
|
mkdir artifacts
|
||||||
|
|
||||||
|
touch "${COMPAT_LIST}"
|
||||||
|
git describe --abbrev=0 --always HEAD > GIT-COMMIT
|
||||||
|
git describe --tags HEAD > GIT-TAG || echo 'unknown' > GIT-TAG
|
||||||
|
git-archive-all --include "${COMPAT_LIST}" --include GIT-COMMIT --include GIT-TAG --force-submodules artifacts/"${REV_NAME}.tar"
|
||||||
|
|
||||||
|
cd artifacts/
|
||||||
|
xz -T0 -9 "${REV_NAME}.tar"
|
||||||
|
sha256sum "${REV_NAME}.tar.xz" > "${REV_NAME}.tar.xz.sha256sum"
|
||||||
|
cd ..
|
||||||
51
.ci/windows/build.sh
Executable file
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
if [ "$COMPILER" == "clang" ]
|
||||||
|
then
|
||||||
|
EXTRA_CMAKE_FLAGS+=(
|
||||||
|
-DCMAKE_CXX_COMPILER=clang-cl
|
||||||
|
-DCMAKE_C_COMPILER=clang-cl
|
||||||
|
-DCMAKE_CXX_FLAGS="-O3"
|
||||||
|
-DCMAKE_C_FLAGS="-O3"
|
||||||
|
)
|
||||||
|
|
||||||
|
BUILD_TYPE="RelWithDebInfo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -z "$WINDEPLOYQT" ] && { echo "WINDEPLOYQT environment variable required."; exit 1; }
|
||||||
|
|
||||||
|
echo $EXTRA_CMAKE_FLAGS
|
||||||
|
|
||||||
|
mkdir -p build && cd build
|
||||||
|
cmake .. -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
|
-DYUZU_USE_BUNDLED_SDL2=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DYUZU_TESTS=OFF \
|
||||||
|
-DDYNARMIC_TESTS=OFF \
|
||||||
|
-DYUZU_CMD=OFF \
|
||||||
|
-DYUZU_ROOM_STANDALONE=OFF \
|
||||||
|
-DYUZU_USE_QT_MULTIMEDIA=${USE_MULTIMEDIA:-false} \
|
||||||
|
-DYUZU_USE_QT_WEB_ENGINE=${USE_WEBENGINE:-false} \
|
||||||
|
-DENABLE_LTO=ON \
|
||||||
|
-DCMAKE_EXE_LINKER_FLAGS=" /LTCG" \
|
||||||
|
-DYUZU_USE_BUNDLED_QT=${BUNDLE_QT:-false} \
|
||||||
|
-DUSE_CCACHE=${CCACHE:-false} \
|
||||||
|
-DENABLE_UPDATE_CHECKER=${DEVEL:-true} \
|
||||||
|
"${EXTRA_CMAKE_FLAGS[@]}" \
|
||||||
|
"$@"
|
||||||
|
|
||||||
|
ninja
|
||||||
|
|
||||||
|
set +e
|
||||||
|
rm -f bin/*.pdb
|
||||||
|
set -e
|
||||||
|
|
||||||
|
$WINDEPLOYQT --release --no-compiler-runtime --no-opengl-sw --no-system-dxc-compiler --no-system-d3d-compiler --dir pkg bin/eden.exe
|
||||||
|
|
||||||
|
cp bin/* pkg
|
||||||
18
.ci/windows/package.sh
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
GITDATE=$(git show -s --date=short --format='%ad' | tr -d "-")
|
||||||
|
GITREV=$(git show -s --format='%h')
|
||||||
|
|
||||||
|
ZIP_NAME="Eden-Windows-${ARCH}-${GITDATE}-${GITREV}.zip"
|
||||||
|
|
||||||
|
ARTIFACTS_DIR="artifacts"
|
||||||
|
PKG_DIR="build/pkg"
|
||||||
|
|
||||||
|
mkdir -p "$ARTIFACTS_DIR"
|
||||||
|
|
||||||
|
TMP_DIR=$(mktemp -d)
|
||||||
|
|
||||||
|
cp -r "$PKG_DIR"/* "$TMP_DIR"/
|
||||||
|
cp LICENSE* README* "$TMP_DIR"/
|
||||||
|
|
||||||
|
7z a -tzip "$ARTIFACTS_DIR/$ZIP_NAME" "$TMP_DIR"/*
|
||||||
|
|
||||||
|
rm -rf "$TMP_DIR"
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
name: Update Dependencies
|
|
||||||
|
|
||||||
on:
|
|
||||||
# saturday at noon
|
|
||||||
schedule:
|
|
||||||
- cron: '0 12 * * 6'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-deps:
|
|
||||||
runs-on: source
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Update deps
|
|
||||||
run: |
|
|
||||||
git config --local user.name "Eden CI"
|
|
||||||
git config --local user.email "ci@eden-emu.dev"
|
|
||||||
git config --local user.signingkey "D57652791BB25D2A"
|
|
||||||
git config --local push.autoSetupRemote true
|
|
||||||
|
|
||||||
git remote set-url origin ci:eden-emu/eden.git
|
|
||||||
|
|
||||||
DATE=$(date +"%b %d")
|
|
||||||
TIMESTAMP=$(date +"%s")
|
|
||||||
echo "DATE=$DATE" >> "$GITHUB_ENV"
|
|
||||||
echo "TIMESTAMP=$TIMESTAMP" >> "$GITHUB_ENV"
|
|
||||||
|
|
||||||
git switch -c update-deps-$TIMESTAMP
|
|
||||||
tools/cpmutil.sh package update -ac
|
|
||||||
git push
|
|
||||||
|
|
||||||
- name: Create PR
|
|
||||||
run: |
|
|
||||||
set -x
|
|
||||||
TITLE="[externals] Dependency update for $DATE"
|
|
||||||
BODY="$(git show -s --format='%b')"
|
|
||||||
BASE=master
|
|
||||||
HEAD=update-deps-$TIMESTAMP
|
|
||||||
|
|
||||||
cat << EOF > data.json
|
|
||||||
{
|
|
||||||
"base": "$BASE",
|
|
||||||
"body": "$BODY",
|
|
||||||
"head": "$HEAD",
|
|
||||||
"title": "$TITLE"
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
curl -XPOST \
|
|
||||||
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
|
||||||
-H 'accept: application/json' \
|
|
||||||
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
|
||||||
-H 'Content-Type: application/json' \
|
|
||||||
-d "@data.json" --fail
|
|
||||||
|
|
@ -3,8 +3,6 @@ name: Check Strings
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
pull_request:
|
|
||||||
branches: [ master ]
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-strings:
|
check-strings:
|
||||||
|
|
@ -12,7 +10,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Find Unused Strings
|
- name: Find Unused Strings
|
||||||
run: ./tools/unused-strings.sh
|
run: ./tools/unused-strings.sh
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
name: tx-pull
|
name: tx-pull
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# tuesday, saturday at 2pm
|
# monday, wednesday, saturday at 2pm
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 14 * * 2,6'
|
cron:
|
||||||
|
- '0 14 * * 1,3,6'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
@ -52,9 +53,10 @@ jobs:
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
curl -XPOST \
|
curl -X 'POST' \
|
||||||
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
||||||
-H 'accept: application/json' \
|
-H 'accept: application/json' \
|
||||||
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
-d "@data.json" --fail
|
-d "@data.json" --fail
|
||||||
|
|
||||||
1
.gitignore
vendored
|
|
@ -7,6 +7,7 @@
|
||||||
# Build directory
|
# Build directory
|
||||||
/[Bb]uild*/
|
/[Bb]uild*/
|
||||||
doc-build/
|
doc-build/
|
||||||
|
out/
|
||||||
AppDir/
|
AppDir/
|
||||||
uruntime
|
uruntime
|
||||||
|
|
||||||
|
|
|
||||||
89
.patch/httplib/0002-fix-zstd.patch
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
From 509be32bbfa6eb95014860f7c9ea6d45c8ddaa56 Mon Sep 17 00:00:00 2001
|
||||||
|
From: crueter <crueter@eden-emu.dev>
|
||||||
|
Date: Sun, 8 Mar 2026 15:11:12 -0400
|
||||||
|
Subject: [PATCH] [cmake] Simplify zstd find logic, and support pre-existing
|
||||||
|
zstd target
|
||||||
|
|
||||||
|
Some deduplication work on the zstd required/if-available logic. Also
|
||||||
|
adds support for pre-existing `zstd::libzstd` which is useful for
|
||||||
|
projects that bundle their own zstd in a way that doesn't get caught by
|
||||||
|
`CONFIG`
|
||||||
|
|
||||||
|
Signed-off-by: crueter <crueter@eden-emu.dev>
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 46 ++++++++++++++++++++++++++--------------------
|
||||||
|
1 file changed, 26 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 1874e36be0..8d31198006 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -241,28 +241,34 @@ endif()
|
||||||
|
# NOTE:
|
||||||
|
# zstd < 1.5.6 does not provide the CMake imported target `zstd::libzstd`.
|
||||||
|
# Older versions must be consumed via their pkg-config file.
|
||||||
|
-if(HTTPLIB_REQUIRE_ZSTD)
|
||||||
|
- find_package(zstd 1.5.6 CONFIG)
|
||||||
|
- if(NOT zstd_FOUND)
|
||||||
|
- find_package(PkgConfig REQUIRED)
|
||||||
|
- pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd)
|
||||||
|
- add_library(zstd::libzstd ALIAS PkgConfig::zstd)
|
||||||
|
- endif()
|
||||||
|
- set(HTTPLIB_IS_USING_ZSTD TRUE)
|
||||||
|
-elseif(HTTPLIB_USE_ZSTD_IF_AVAILABLE)
|
||||||
|
- find_package(zstd 1.5.6 CONFIG QUIET)
|
||||||
|
- if(NOT zstd_FOUND)
|
||||||
|
- find_package(PkgConfig QUIET)
|
||||||
|
- if(PKG_CONFIG_FOUND)
|
||||||
|
- pkg_check_modules(zstd QUIET IMPORTED_TARGET libzstd)
|
||||||
|
-
|
||||||
|
- if(TARGET PkgConfig::zstd)
|
||||||
|
+if (HTTPLIB_REQUIRE_ZSTD)
|
||||||
|
+ set(HTTPLIB_ZSTD_REQUESTED ON)
|
||||||
|
+ set(HTTPLIB_ZSTD_REQUIRED REQUIRED)
|
||||||
|
+elseif (HTTPLIB_USE_ZSTD_IF_AVAILABLE)
|
||||||
|
+ set(HTTPLIB_ZSTD_REQUESTED ON)
|
||||||
|
+ set(HTTPLIB_ZSTD_REQUIRED QUIET)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+if (HTTPLIB_ZSTD_REQUESTED)
|
||||||
|
+ if (TARGET zstd::libzstd)
|
||||||
|
+ set(HTTPLIB_IS_USING_ZSTD TRUE)
|
||||||
|
+ else()
|
||||||
|
+ find_package(zstd 1.5.6 CONFIG QUIET)
|
||||||
|
+
|
||||||
|
+ if (NOT zstd_FOUND)
|
||||||
|
+ find_package(PkgConfig ${HTTPLIB_ZSTD_REQUIRED})
|
||||||
|
+ pkg_check_modules(zstd ${HTTPLIB_ZSTD_REQUIRED} IMPORTED_TARGET libzstd)
|
||||||
|
+
|
||||||
|
+ if (TARGET PkgConfig::zstd)
|
||||||
|
add_library(zstd::libzstd ALIAS PkgConfig::zstd)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
+
|
||||||
|
+ # This will always be true if zstd is required.
|
||||||
|
+ # If zstd *isn't* found when zstd is set to required,
|
||||||
|
+ # CMake will error out earlier in this block.
|
||||||
|
+ set(HTTPLIB_IS_USING_ZSTD ${zstd_FOUND})
|
||||||
|
endif()
|
||||||
|
- # Both find_package and PkgConf set a XXX_FOUND var
|
||||||
|
- set(HTTPLIB_IS_USING_ZSTD ${zstd_FOUND})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Used for default, common dirs that the end-user can change (if needed)
|
||||||
|
@@ -317,13 +323,13 @@ if(HTTPLIB_COMPILE)
|
||||||
|
$<BUILD_INTERFACE:${_httplib_build_includedir}/httplib.h>
|
||||||
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/httplib.h>
|
||||||
|
)
|
||||||
|
-
|
||||||
|
+
|
||||||
|
# Add C++20 module support if requested
|
||||||
|
# Include from separate file to prevent parse errors on older CMake versions
|
||||||
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.28")
|
||||||
|
include(cmake/modules.cmake)
|
||||||
|
endif()
|
||||||
|
-
|
||||||
|
+
|
||||||
|
set_target_properties(${PROJECT_NAME}
|
||||||
|
PROPERTIES
|
||||||
|
VERSION ${${PROJECT_NAME}_VERSION}
|
||||||
55
.patch/mcl/0001-assert-macro.patch
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
diff --git a/include/mcl/assert.hpp b/include/mcl/assert.hpp
|
||||||
|
index f77dbe7..9ec0b9c 100644
|
||||||
|
--- a/include/mcl/assert.hpp
|
||||||
|
+++ b/include/mcl/assert.hpp
|
||||||
|
@@ -23,8 +23,11 @@ template<typename... Ts>
|
||||||
|
|
||||||
|
} // namespace mcl::detail
|
||||||
|
|
||||||
|
+#ifndef UNREACHABLE
|
||||||
|
#define UNREACHABLE() ASSERT_FALSE("Unreachable code!")
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
+#ifndef ASSERT
|
||||||
|
#define ASSERT(expr) \
|
||||||
|
[&] { \
|
||||||
|
if (std::is_constant_evaluated()) { \
|
||||||
|
@@ -37,7 +40,9 @@ template<typename... Ts>
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}()
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
+#ifndef ASSERT_MSG
|
||||||
|
#define ASSERT_MSG(expr, ...) \
|
||||||
|
[&] { \
|
||||||
|
if (std::is_constant_evaluated()) { \
|
||||||
|
@@ -50,13 +55,24 @@ template<typename... Ts>
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
}()
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
+#ifndef ASSERT_FALSE
|
||||||
|
#define ASSERT_FALSE(...) ::mcl::detail::assert_terminate("false", __VA_ARGS__)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if defined(NDEBUG) || defined(MCL_IGNORE_ASSERTS)
|
||||||
|
-# define DEBUG_ASSERT(expr) ASSUME(expr)
|
||||||
|
-# define DEBUG_ASSERT_MSG(expr, ...) ASSUME(expr)
|
||||||
|
+# ifndef DEBUG_ASSERT
|
||||||
|
+# define DEBUG_ASSERT(expr) ASSUME(expr)
|
||||||
|
+# endif
|
||||||
|
+# ifndef DEBUG_ASSERT_MSG
|
||||||
|
+# define DEBUG_ASSERT_MSG(expr, ...) ASSUME(expr)
|
||||||
|
+# endif
|
||||||
|
#else
|
||||||
|
-# define DEBUG_ASSERT(expr) ASSERT(expr)
|
||||||
|
-# define DEBUG_ASSERT_MSG(expr, ...) ASSERT_MSG(expr, __VA_ARGS__)
|
||||||
|
+# ifndef DEBUG_ASSERT
|
||||||
|
+# define DEBUG_ASSERT(expr) ASSERT(expr)
|
||||||
|
+# endif
|
||||||
|
+# ifndef DEBUG_ASSERT_MSG
|
||||||
|
+# define DEBUG_ASSERT_MSG(expr, ...) ASSERT_MSG(expr, __VA_ARGS__)
|
||||||
|
+# endif
|
||||||
|
#endif
|
||||||
|
|
@ -1,214 +0,0 @@
|
||||||
From ec4c1fdf526cb9ad045abf59b29ee495bbf5023a Mon Sep 17 00:00:00 2001
|
|
||||||
From: crueter <crueter@eden-emu.dev>
|
|
||||||
Date: Sat, 30 May 2026 20:56:35 -0400
|
|
||||||
Subject: [PATCH] cpmutil compat
|
|
||||||
|
|
||||||
---
|
|
||||||
CMakeLists.txt | 31 ++++++++-----------
|
|
||||||
cmake/FetchOpenSSL.cmake | 64 ----------------------------------------
|
|
||||||
cmake/GetCPM.cmake | 5 ----
|
|
||||||
3 files changed, 13 insertions(+), 87 deletions(-)
|
|
||||||
delete mode 100644 cmake/FetchOpenSSL.cmake
|
|
||||||
delete mode 100644 cmake/GetCPM.cmake
|
|
||||||
|
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index 5420ecc..9ffd5a0 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -19,9 +19,7 @@ include(FetchContent)
|
|
||||||
include(ProcessorCount)
|
|
||||||
include(cmake/ConfigureOpenSSL.cmake)
|
|
||||||
include(cmake/DetectTargetPlatform.cmake)
|
|
||||||
-include(cmake/FetchOpenSSL.cmake)
|
|
||||||
include(cmake/FindVcvarsall.cmake)
|
|
||||||
-include(cmake/GetCPM.cmake)
|
|
||||||
|
|
||||||
# Custom options
|
|
||||||
option(OPENSSL_BUILD_VERBOSE "Enable verbose output from build" OFF)
|
|
||||||
@@ -47,9 +45,6 @@ if("${OPENSSL_TARGET_PLATFORM}" STREQUAL "")
|
|
||||||
detect_target_platform(OPENSSL_TARGET_PLATFORM)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-# Fetch OpenSSL source
|
|
||||||
-fetch_openssl()
|
|
||||||
-
|
|
||||||
# Apply patches
|
|
||||||
foreach(patch IN LISTS OPENSSL_PATCH)
|
|
||||||
if(EXISTS "${patch}" AND NOT IS_DIRECTORY "${patch}")
|
|
||||||
@@ -59,13 +54,13 @@ foreach(patch IN LISTS OPENSSL_PATCH)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND git init
|
|
||||||
- WORKING_DIRECTORY ${openssl_SOURCE_DIR}
|
|
||||||
+ WORKING_DIRECTORY ${OpenSSL_SOURCE_DIR}
|
|
||||||
OUTPUT_QUIET
|
|
||||||
ERROR_QUIET
|
|
||||||
)
|
|
||||||
execute_process(
|
|
||||||
COMMAND git apply ${patch}
|
|
||||||
- WORKING_DIRECTORY ${openssl_SOURCE_DIR}
|
|
||||||
+ WORKING_DIRECTORY ${OpenSSL_SOURCE_DIR}
|
|
||||||
OUTPUT_QUIET
|
|
||||||
ERROR_QUIET
|
|
||||||
)
|
|
||||||
@@ -161,8 +156,8 @@ list(PREPEND OPENSSL_CONFIGURE_OPTIONS ${OPENSSL_TARGET_PLATFORM})
|
|
||||||
# Configure OpenSSL
|
|
||||||
configure_openssl(
|
|
||||||
COMMAND ${VCVARSALL_COMMAND}
|
|
||||||
- FILE ${openssl_SOURCE_DIR}/Configure
|
|
||||||
- BUILD_DIR ${openssl_BINARY_DIR}
|
|
||||||
+ FILE ${OpenSSL_SOURCE_DIR}/Configure
|
|
||||||
+ BUILD_DIR ${OpenSSL_BINARY_DIR}
|
|
||||||
OPTIONS ${OPENSSL_CONFIGURE_OPTIONS}
|
|
||||||
)
|
|
||||||
|
|
||||||
@@ -203,8 +198,8 @@ endif()
|
|
||||||
# Parse Makefile
|
|
||||||
parse_makefile(${OPENSSL_MAKEFILE} "INSTALL_LIBS" OPENSSL_STATIC_LIBS)
|
|
||||||
parse_makefile(${OPENSSL_MAKEFILE} "INSTALL_SHLIBS" OPENSSL_SHARED_LIBS)
|
|
||||||
-list(TRANSFORM OPENSSL_STATIC_LIBS PREPEND "${openssl_BINARY_DIR}/")
|
|
||||||
-list(TRANSFORM OPENSSL_SHARED_LIBS PREPEND "${openssl_BINARY_DIR}/")
|
|
||||||
+list(TRANSFORM OPENSSL_STATIC_LIBS PREPEND "${OpenSSL_BINARY_DIR}/")
|
|
||||||
+list(TRANSFORM OPENSSL_SHARED_LIBS PREPEND "${OpenSSL_BINARY_DIR}/")
|
|
||||||
|
|
||||||
foreach(LIBRARY IN LISTS OPENSSL_STATIC_LIBS)
|
|
||||||
if(LIBRARY MATCHES "crypto")
|
|
||||||
@@ -239,14 +234,14 @@ endif()
|
|
||||||
|
|
||||||
# Provide same targets and variables as FindOpenSSL module
|
|
||||||
set(OPENSSL_FOUND ON CACHE BOOL "Override FindOpenSSL variables" FORCE)
|
|
||||||
-set(OPENSSL_INCLUDE_DIR ${openssl_SOURCE_DIR}/include ${openssl_BINARY_DIR}/include CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
+set(OPENSSL_INCLUDE_DIR ${OpenSSL_SOURCE_DIR}/include ${OpenSSL_BINARY_DIR}/include CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_${OPENSSL_LIBRARY_TYPE}_CRYPTO_LIBRARY} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_DEPENDENCIES} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_SSL_LIBRARY ${OPENSSL_${OPENSSL_LIBRARY_TYPE}_SSL_LIBRARY} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_DEPENDENCIES} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} ${OPENSSL_DEPENDENCIES} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
set(OPENSSL_VERSION ${OPENSSL_CONFIGURED_VERSION} CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
-set(OPENSSL_APPLINK_SOURCE ${openssl_SOURCE_DIR}/ms/applink.c CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
+set(OPENSSL_APPLINK_SOURCE ${OpenSSL_SOURCE_DIR}/ms/applink.c CACHE STRING "Override FindOpenSSL variables" FORCE)
|
|
||||||
|
|
||||||
add_library(OpenSSL::Crypto ${OPENSSL_LIBRARY_TYPE} IMPORTED GLOBAL)
|
|
||||||
add_library(OpenSSL::SSL ${OPENSSL_LIBRARY_TYPE} IMPORTED GLOBAL)
|
|
||||||
@@ -308,8 +303,8 @@ if(ANDROID)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(GLOB_RECURSE OPENSSL_SOURCES
|
|
||||||
- ${openssl_SOURCE_DIR}/*.[ch]
|
|
||||||
- ${openssl_SOURCE_DIR}/*.[ch].in
|
|
||||||
+ ${OpenSSL_SOURCE_DIR}/*.[ch]
|
|
||||||
+ ${OpenSSL_SOURCE_DIR}/*.[ch].in
|
|
||||||
)
|
|
||||||
|
|
||||||
set(OPENSSL_BUILD_OUTPUT
|
|
||||||
@@ -322,7 +317,7 @@ add_custom_command(
|
|
||||||
OUTPUT ${OPENSSL_BUILD_OUTPUT}
|
|
||||||
COMMAND ${OPENSSL_BUILD_COMMAND}
|
|
||||||
DEPENDS ${OPENSSL_SOURCES}
|
|
||||||
- WORKING_DIRECTORY ${openssl_BINARY_DIR}
|
|
||||||
+ WORKING_DIRECTORY ${OpenSSL_BINARY_DIR}
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
@@ -341,7 +336,7 @@ if(OPENSSL_TEST AND NOT CMAKE_CROSSCOMPILING)
|
|
||||||
add_test(
|
|
||||||
NAME openssl-test
|
|
||||||
COMMAND ${OPENSSL_BUILD_TOOL} test VERBOSE_FAILURE=yes HARNESS_JOBS=${NUMBER_OF_THREADS}
|
|
||||||
- WORKING_DIRECTORY ${openssl_BINARY_DIR}
|
|
||||||
+ WORKING_DIRECTORY ${OpenSSL_BINARY_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
@@ -356,7 +351,7 @@ if(OPENSSL_INSTALL)
|
|
||||||
install(CODE
|
|
||||||
"execute_process(
|
|
||||||
COMMAND ${OPENSSL_INSTALL_COMMAND}
|
|
||||||
- WORKING_DIRECTORY \"${openssl_BINARY_DIR}\"
|
|
||||||
+ WORKING_DIRECTORY \"${OpenSSL_BINARY_DIR}\"
|
|
||||||
)"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
diff --git a/cmake/FetchOpenSSL.cmake b/cmake/FetchOpenSSL.cmake
|
|
||||||
deleted file mode 100644
|
|
||||||
index a43505d..0000000
|
|
||||||
--- a/cmake/FetchOpenSSL.cmake
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,64 +0,0 @@
|
|
||||||
-function(fetch_openssl)
|
|
||||||
- if(EXISTS "${OPENSSL_SOURCE}" AND IS_DIRECTORY "${OPENSSL_SOURCE}")
|
|
||||||
- # Fetch the local OpenSSL source
|
|
||||||
- if(NOT IS_ABSOLUTE "${OPENSSL_SOURCE}")
|
|
||||||
- string(PREPEND OPENSSL_SOURCE ${CMAKE_SOURCE_DIR}/)
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- string(REPLACE "\\" "/" openssl-source_SOURCE_DIR "${OPENSSL_SOURCE}")
|
|
||||||
- set(openssl-source_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/openssl-source-build)
|
|
||||||
- else()
|
|
||||||
- set(CPM_OPTIONS
|
|
||||||
- NAME openssl-source
|
|
||||||
- DOWNLOAD_ONLY ON
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
- if(NOT OPENSSL_CONFIGURE_VERBOSE)
|
|
||||||
- list(APPEND CPM_OPTIONS QUIET)
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- if("${OPENSSL_SOURCE}" MATCHES "^http")
|
|
||||||
- # Download OpenSSL source from the internet
|
|
||||||
- list(APPEND CPM_OPTIONS URL ${OPENSSL_SOURCE})
|
|
||||||
- else()
|
|
||||||
- # Download OpenSSL source from the official website
|
|
||||||
- if("${OPENSSL_TARGET_VERSION}" STREQUAL "")
|
|
||||||
- set(OPENSSL_TARGET_VERSION ${PROJECT_VERSION})
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- if(OPENSSL_TARGET_VERSION VERSION_EQUAL PROJECT_VERSION)
|
|
||||||
- list(APPEND CPM_OPTIONS URL_HASH SHA256=aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f)
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- if(OPENSSL_TARGET_VERSION MATCHES "^1\.1\.1[a-w]$")
|
|
||||||
- string(REPLACE "." "_" OPENSSL_TAGGED_VERSION ${OPENSSL_TARGET_VERSION})
|
|
||||||
- list(APPEND CPM_OPTIONS URL https://github.com/openssl/openssl/releases/download/OpenSSL_${OPENSSL_TAGGED_VERSION}/openssl-${OPENSSL_TARGET_VERSION}.tar.gz)
|
|
||||||
- else()
|
|
||||||
- list(APPEND CPM_OPTIONS URL https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_TARGET_VERSION}/openssl-${OPENSSL_TARGET_VERSION}.tar.gz)
|
|
||||||
- endif()
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- CPMAddPackage(${CPM_OPTIONS})
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- # Clean build directory if source directory has changed
|
|
||||||
- if(DEFINED CACHE{openssl-source_SOURCE_DIR_OLD} AND NOT openssl-source_SOURCE_DIR STREQUAL openssl-source_SOURCE_DIR_OLD)
|
|
||||||
- set(openssl-source_SOURCE_DIR_OLD ${openssl-source_SOURCE_DIR} CACHE INTERNAL "Previously fetched OpenSSL source")
|
|
||||||
-
|
|
||||||
- if(IS_DIRECTORY ${openssl-source_BINARY_DIR})
|
|
||||||
- file(REMOVE_RECURSE ${openssl-source_BINARY_DIR})
|
|
||||||
- file(MAKE_DIRECTORY ${openssl-source_BINARY_DIR})
|
|
||||||
- endif()
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- # Override the FindOpenSSL module
|
|
||||||
- FetchContent_Declare(
|
|
||||||
- OpenSSL
|
|
||||||
- SOURCE_DIR ${openssl-source_SOURCE_DIR}
|
|
||||||
- BINARY_DIR ${openssl-source_BINARY_DIR}
|
|
||||||
- OVERRIDE_FIND_PACKAGE
|
|
||||||
- )
|
|
||||||
- FetchContent_MakeAvailable(OpenSSL)
|
|
||||||
-
|
|
||||||
- return(PROPAGATE openssl_SOURCE_DIR openssl_BINARY_DIR)
|
|
||||||
-endfunction()
|
|
||||||
diff --git a/cmake/GetCPM.cmake b/cmake/GetCPM.cmake
|
|
||||||
deleted file mode 100644
|
|
||||||
index bfc50f5..0000000
|
|
||||||
--- a/cmake/GetCPM.cmake
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,5 +0,0 @@
|
|
||||||
-file(
|
|
||||||
- DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake
|
|
||||||
- ${CMAKE_CURRENT_BINARY_DIR}/get_cpm.cmake
|
|
||||||
-)
|
|
||||||
-include(${CMAKE_CURRENT_BINARY_DIR}/get_cpm.cmake)
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
From d46675fbb61eb6d51e478023ce4075e545ad4cfd Mon Sep 17 00:00:00 2001
|
|
||||||
From: crueter <crueter@eden-emu.dev>
|
|
||||||
Date: Sat, 30 May 2026 21:11:55 -0400
|
|
||||||
Subject: [PATCH] use ccache
|
|
||||||
|
|
||||||
---
|
|
||||||
CMakeLists.txt | 1 -
|
|
||||||
cmake/ConfigureOpenSSL.cmake | 12 +++---------
|
|
||||||
2 files changed, 3 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index 9ffd5a0..9ff14c8 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -28,7 +28,6 @@ option(OPENSSL_ENABLE_PARALLEL "Build and test in parallel if possible" ON)
|
|
||||||
option(OPENSSL_INSTALL "Install OpenSSL components to the <prefix> directory" OFF)
|
|
||||||
option(OPENSSL_INSTALL_CERT "Install cert.pem to the <openssldir> directory" OFF)
|
|
||||||
option(OPENSSL_TEST "Enable testing and build OpenSSL self tests" OFF)
|
|
||||||
-option(OPENSSL_USE_CCACHE "Use ccache if available" ON)
|
|
||||||
|
|
||||||
if("${OPENSSL_BUILD_TARGET}" STREQUAL "")
|
|
||||||
# Makefile target for build
|
|
||||||
diff --git a/cmake/ConfigureOpenSSL.cmake b/cmake/ConfigureOpenSSL.cmake
|
|
||||||
index 211c18b..3d8cbed 100644
|
|
||||||
--- a/cmake/ConfigureOpenSSL.cmake
|
|
||||||
+++ b/cmake/ConfigureOpenSSL.cmake
|
|
||||||
@@ -69,15 +69,9 @@ function(apply_ccache FILE)
|
|
||||||
message(FATAL_ERROR "Couldn't find Makefile")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
- if(OPENSSL_USE_CCACHE)
|
|
||||||
- find_program(CCACHE ccache)
|
|
||||||
-
|
|
||||||
- if(NOT CCACHE)
|
|
||||||
- return()
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
+ if(USE_CCACHE)
|
|
||||||
file(READ ${FILE} MAKEFILE)
|
|
||||||
- string(REPLACE "\nCC=" "\nCC=ccache " MAKEFILE "${MAKEFILE}")
|
|
||||||
+ string(REPLACE "\nCC=" "\nCC=${CCACHE_BINARY} " MAKEFILE "${MAKEFILE}")
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
string(REPLACE "/Zi /Fdossl_static.pdb " "" MAKEFILE "${MAKEFILE}")
|
|
||||||
@@ -171,4 +165,4 @@ function(configure_openssl)
|
|
||||||
string(REPLACE "/W3" "/W0" MAKEFILE "${MAKEFILE}")
|
|
||||||
file(WRITE ${OPENSSL_MAKEFILE} "${MAKEFILE}")
|
|
||||||
endif()
|
|
||||||
-endfunction()
|
|
||||||
\ No newline at end of file
|
|
||||||
+endfunction()
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
From 4a3cc92a7abad403529ed1cb4255ca63d9252de4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: crueter <crueter@eden-emu.dev>
|
|
||||||
Date: Sat, 30 May 2026 21:48:42 -0400
|
|
||||||
Subject: [PATCH 2/2] use cmake compiler flags
|
|
||||||
|
|
||||||
---
|
|
||||||
cmake/ConfigureOpenSSL.cmake | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/cmake/ConfigureOpenSSL.cmake b/cmake/ConfigureOpenSSL.cmake
|
|
||||||
index 3d8cbed..3012e05 100644
|
|
||||||
--- a/cmake/ConfigureOpenSSL.cmake
|
|
||||||
+++ b/cmake/ConfigureOpenSSL.cmake
|
|
||||||
@@ -135,7 +135,10 @@ function(configure_openssl)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
- COMMAND ${CONFIGURE_COMMAND}
|
|
||||||
+ COMMAND ${CMAKE_COMMAND} -E env
|
|
||||||
+ "CFLAGS=${CMAKE_C_FLAGS}"
|
|
||||||
+ "CXXFLAGS=${CMAKE_CXX_FLAGS}"
|
|
||||||
+ ${CONFIGURE_COMMAND}
|
|
||||||
WORKING_DIRECTORY ${CONFIGURE_BUILD_DIR}
|
|
||||||
${VERBOSE_OPTION}
|
|
||||||
COMMAND_ERROR_IS_FATAL ANY
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
--- a/CMakeLists.txt 2026-06-01 23:53:16.498043856 -0400
|
|
||||||
+++ b/CMakeLists.txt 2026-06-01 23:53:23.910543615 -0400
|
|
||||||
@@ -312,13 +312,29 @@
|
|
||||||
${OPENSSL_SHARED_CRYPTO_LIBRARY}
|
|
||||||
${OPENSSL_SHARED_SSL_LIBRARY}
|
|
||||||
)
|
|
||||||
-add_custom_command(
|
|
||||||
- OUTPUT ${OPENSSL_BUILD_OUTPUT}
|
|
||||||
- COMMAND ${OPENSSL_BUILD_COMMAND}
|
|
||||||
- DEPENDS ${OPENSSL_SOURCES}
|
|
||||||
- WORKING_DIRECTORY ${OpenSSL_BINARY_DIR}
|
|
||||||
- VERBATIM
|
|
||||||
-)
|
|
||||||
+if (WIN32)
|
|
||||||
+ add_custom_command(
|
|
||||||
+ OUTPUT ${OPENSSL_BUILD_OUTPUT}
|
|
||||||
+ COMMAND ${OPENSSL_BUILD_COMMAND}
|
|
||||||
+ DEPENDS ${OPENSSL_SOURCES}
|
|
||||||
+ WORKING_DIRECTORY ${OpenSSL_BINARY_DIR}
|
|
||||||
+ VERBATIM)
|
|
||||||
+else()
|
|
||||||
+ set(_openssl_build_script "${CMAKE_CURRENT_BINARY_DIR}/BuildOpenSSL.cmake")
|
|
||||||
+ file(WRITE ${_openssl_build_script}
|
|
||||||
+ "execute_process(\n"
|
|
||||||
+ " COMMAND ${OPENSSL_BUILD_COMMAND}\n"
|
|
||||||
+ " WORKING_DIRECTORY ${OpenSSL_BINARY_DIR}\n"
|
|
||||||
+ " RESULT_VARIABLE _r)\n"
|
|
||||||
+ "if(_r)\n"
|
|
||||||
+ " message(FATAL_ERROR \"OpenSSL build failed: \${_r}\")\n"
|
|
||||||
+ "endif()\n")
|
|
||||||
+ add_custom_command(
|
|
||||||
+ OUTPUT ${OPENSSL_BUILD_OUTPUT}
|
|
||||||
+ COMMAND ${CMAKE_COMMAND} -P ${_openssl_build_script}
|
|
||||||
+ DEPENDS ${OPENSSL_SOURCES}
|
|
||||||
+ VERBATIM)
|
|
||||||
+endif()
|
|
||||||
|
|
||||||
if(PROJECT_IS_TOP_LEVEL)
|
|
||||||
add_custom_target(openssl-build ALL DEPENDS ${OPENSSL_BUILD_OUTPUT})
|
|
||||||
14
.patch/spirv-tools/0001-netbsd-fix.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
|
||||||
|
index eb4e69e..3155805 100644
|
||||||
|
--- a/external/CMakeLists.txt
|
||||||
|
+++ b/external/CMakeLists.txt
|
||||||
|
@@ -72,7 +72,8 @@ if (SPIRV_TOOLS_USE_MIMALLOC)
|
||||||
|
pop_variable(MI_BUILD_TESTS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if (DEFINED SPIRV-Headers_SOURCE_DIR)
|
||||||
|
+# NetBSD doesn't have SPIRV-Headers readily available on system
|
||||||
|
+if (DEFINED SPIRV-Headers_SOURCE_DIR AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
|
||||||
|
# This allows flexible position of the SPIRV-Headers repo.
|
||||||
|
set(SPIRV_HEADER_DIR ${SPIRV-Headers_SOURCE_DIR})
|
||||||
|
else()
|
||||||
287
.patch/spirv-tools/0002-allow-static-only.patch
Normal file
|
|
@ -0,0 +1,287 @@
|
||||||
|
From 67bf3d1381b1faf59e87001d6156ba4e21cada14 Mon Sep 17 00:00:00 2001
|
||||||
|
From: crueter <crueter@eden-emu.dev>
|
||||||
|
Date: Mon, 29 Dec 2025 21:22:36 -0500
|
||||||
|
Subject: [PATCH] [cmake] refactor: shared/static handling
|
||||||
|
|
||||||
|
This significantly redoes the way shared and static libraries are
|
||||||
|
handled. Now, it's controlled by two options: `SPIRV_TOOLS_BUILD_STATIC`
|
||||||
|
and `SPIRV_TOOLS_BUILD_SHARED`.
|
||||||
|
|
||||||
|
The default configuration (no `BUILD_SHARED_LIBS` set, options left at
|
||||||
|
default) is to build shared ONLY if this is the master project, or
|
||||||
|
static ONLY if this is a subproject (e.g. FetchContent, CPM.cmake). Also
|
||||||
|
I should note that static-only (i.e. no shared) is now a supported
|
||||||
|
target, this is done because projects including it as a submodule e.g.
|
||||||
|
on Android or Windows may prefer this.
|
||||||
|
|
||||||
|
Now the shared/static handling:
|
||||||
|
- static ON, shared OFF: Only generates `.a` libraries.
|
||||||
|
- static ON, shared ON: Generates `.a` libraries, but also
|
||||||
|
`libSPIRV-Tools.so`
|
||||||
|
- static OFF, shared ON: Only generates `.so` libraries.
|
||||||
|
|
||||||
|
Notable TODOs:
|
||||||
|
- SPIRV-Tools-shared.pc seems redundant--how should we handle which one
|
||||||
|
to use in the case of distributions that distribute both types (MSYS2
|
||||||
|
for instance)?
|
||||||
|
* *Note: pkgconfig sucks at this and usually just leaves it up to the
|
||||||
|
user, so the optimal solution may indeed be doing absolutely
|
||||||
|
nothing.* CMake is unaffected :)
|
||||||
|
- use namespaces in the CMake config files pleaaaaase
|
||||||
|
|
||||||
|
This is going to change things a good bit for package maintainers, but
|
||||||
|
cest la vie. It's for the greater good, I promise.
|
||||||
|
|
||||||
|
Signed-off-by: crueter <crueter@eden-emu.dev>
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 108 +++++++++++++++++++++++++-----------------
|
||||||
|
source/CMakeLists.txt | 62 ++++++++++++------------
|
||||||
|
2 files changed, 94 insertions(+), 76 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 4d843b4d2f..07201f690f 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -14,6 +14,15 @@
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.22.1)
|
||||||
|
|
||||||
|
+# master project detection--useful for FetchContent/submodule inclusion
|
||||||
|
+set(master_project OFF)
|
||||||
|
+set(subproject ON)
|
||||||
|
+
|
||||||
|
+if (NOT DEFINED PROJECT_NAME)
|
||||||
|
+ set(master_project ON)
|
||||||
|
+ set(subproject OFF)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
project(spirv-tools)
|
||||||
|
|
||||||
|
# Avoid a bug in CMake 3.22.1. By default it will set -std=c++11 for
|
||||||
|
@@ -135,46 +144,49 @@ if (DEFINED SPIRV_TOOLS_EXTRA_DEFINITIONS)
|
||||||
|
add_definitions(${SPIRV_TOOLS_EXTRA_DEFINITIONS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-# Library build setting definitions:
|
||||||
|
-#
|
||||||
|
-# * SPIRV_TOOLS_BUILD_STATIC - ON or OFF - Defaults to ON.
|
||||||
|
-# If enabled the following targets will be created:
|
||||||
|
-# ${SPIRV_TOOLS}-static - STATIC library.
|
||||||
|
-# Has full public symbol visibility.
|
||||||
|
-# ${SPIRV_TOOLS}-shared - SHARED library.
|
||||||
|
-# Has default-hidden symbol visibility.
|
||||||
|
-# ${SPIRV_TOOLS} - will alias to one of above, based on BUILD_SHARED_LIBS.
|
||||||
|
-# If disabled the following targets will be created:
|
||||||
|
-# ${SPIRV_TOOLS} - either STATIC or SHARED based on SPIRV_TOOLS_LIBRARY_TYPE.
|
||||||
|
-# Has full public symbol visibility.
|
||||||
|
-# ${SPIRV_TOOLS}-shared - SHARED library.
|
||||||
|
-# Has default-hidden symbol visibility.
|
||||||
|
-#
|
||||||
|
-# * SPIRV_TOOLS_LIBRARY_TYPE - SHARED or STATIC.
|
||||||
|
-# Specifies the library type used for building SPIRV-Tools libraries.
|
||||||
|
-# Defaults to SHARED when BUILD_SHARED_LIBS=1, otherwise STATIC.
|
||||||
|
-#
|
||||||
|
-# * SPIRV_TOOLS_FULL_VISIBILITY - "${SPIRV_TOOLS}-static" or "${SPIRV_TOOLS}"
|
||||||
|
-# Evaluates to the SPIRV_TOOLS target library name that has no hidden symbols.
|
||||||
|
-# This is used by internal targets for accessing symbols that are non-public.
|
||||||
|
-# Note this target provides no API stability guarantees.
|
||||||
|
-#
|
||||||
|
-# Ideally, all of these will go away - see https://github.com/KhronosGroup/SPIRV-Tools/issues/3909.
|
||||||
|
-option(ENABLE_EXCEPTIONS_ON_MSVC "Build SPIRV-TOOLS with c++ exceptions enabled in MSVC" ON)
|
||||||
|
-option(SPIRV_TOOLS_BUILD_STATIC "Build ${SPIRV_TOOLS}-static target. ${SPIRV_TOOLS} will alias to ${SPIRV_TOOLS}-static or ${SPIRV_TOOLS}-shared based on BUILD_SHARED_LIBS" ON)
|
||||||
|
-if(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
- set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-static)
|
||||||
|
+# If BUILD_SHARED_LIBS is undefined, set it based on whether we are
|
||||||
|
+# the master project or a subproject
|
||||||
|
+if (NOT DEFINED BUILD_SHARED_LIBS)
|
||||||
|
+ set(BUILD_SHARED_LIBS ${master_project})
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+if (BUILD_SHARED_LIBS)
|
||||||
|
+ set(static_default OFF)
|
||||||
|
+else()
|
||||||
|
+ set(static_default ON)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+option(SPIRV_TOOLS_BUILD_SHARED "Build ${SPIRV_TOOLS} as a shared library"
|
||||||
|
+ ${BUILD_SHARED_LIBS})
|
||||||
|
+option(SPIRV_TOOLS_BUILD_STATIC "Build ${SPIRV_TOOLS} as a static library"
|
||||||
|
+ ${static_default})
|
||||||
|
+
|
||||||
|
+# Avoid conflict between the dll import library and
|
||||||
|
+# the static library (thanks microsoft)
|
||||||
|
+if(CMAKE_STATIC_LIBRARY_PREFIX STREQUAL "" AND
|
||||||
|
+ CMAKE_STATIC_LIBRARY_SUFFIX STREQUAL ".lib")
|
||||||
|
+ set(SPIRV_TOOLS_STATIC_LIBNAME "${SPIRV_TOOLS}-static")
|
||||||
|
+else()
|
||||||
|
+ set(SPIRV_TOOLS_STATIC_LIBNAME "${SPIRV_TOOLS}")
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+if (SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
+ # If building a static library at all, always build other libraries as static,
|
||||||
|
+ # and link to the static SPIRV-Tools library.
|
||||||
|
set(SPIRV_TOOLS_LIBRARY_TYPE "STATIC")
|
||||||
|
-else(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
- set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS})
|
||||||
|
- if (NOT DEFINED SPIRV_TOOLS_LIBRARY_TYPE)
|
||||||
|
- if(BUILD_SHARED_LIBS)
|
||||||
|
- set(SPIRV_TOOLS_LIBRARY_TYPE "SHARED")
|
||||||
|
- else()
|
||||||
|
- set(SPIRV_TOOLS_LIBRARY_TYPE "STATIC")
|
||||||
|
- endif()
|
||||||
|
- endif()
|
||||||
|
-endif(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
+ set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-static)
|
||||||
|
+elseif (SPIRV_TOOLS_BUILD_SHARED)
|
||||||
|
+ # If only building a shared library, link other libraries to the
|
||||||
|
+ # shared library. Also, other libraries should be shared
|
||||||
|
+ set(SPIRV_TOOLS_LIBRARY_TYPE "SHARED")
|
||||||
|
+ set(SPIRV_TOOLS_FULL_VISIBILITY ${SPIRV_TOOLS}-shared)
|
||||||
|
+else()
|
||||||
|
+ message(FATAL_ERROR "You must set one of "
|
||||||
|
+ "SPIRV_TOOLS_BUILD_STATIC or SPIRV_TOOLS_BUILD_SHARED!")
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+option(ENABLE_EXCEPTIONS_ON_MSVC
|
||||||
|
+ "Build SPIRV-TOOLS with C++ exceptions enabled in MSVC" ON)
|
||||||
|
|
||||||
|
function(spvtools_default_compile_options TARGET)
|
||||||
|
target_compile_options(${TARGET} PRIVATE ${SPIRV_WARNINGS})
|
||||||
|
@@ -372,7 +384,7 @@ if (NOT "${SPIRV_SKIP_TESTS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(SPIRV_LIBRARIES "-lSPIRV-Tools-opt -lSPIRV-Tools -lSPIRV-Tools-link")
|
||||||
|
-set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
|
||||||
|
+set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools")
|
||||||
|
|
||||||
|
# Build pkg-config file
|
||||||
|
# Use a first-class target so it's regenerated when relevant files are updated.
|
||||||
|
@@ -388,7 +400,12 @@ add_custom_command(
|
||||||
|
-DSPIRV_LIBRARIES=${SPIRV_LIBRARIES}
|
||||||
|
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
|
||||||
|
DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake")
|
||||||
|
-add_custom_command(
|
||||||
|
+
|
||||||
|
+set(pc_files ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
|
||||||
|
+
|
||||||
|
+# TODO(crueter): remove?
|
||||||
|
+if (SPIRV_TOOLS_BUILD_SHARED)
|
||||||
|
+ add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES
|
||||||
|
@@ -400,9 +417,12 @@ add_custom_command(
|
||||||
|
-DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES}
|
||||||
|
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
|
||||||
|
DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools-shared.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake")
|
||||||
|
-add_custom_target(spirv-tools-pkg-config
|
||||||
|
- ALL
|
||||||
|
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
|
||||||
|
+ set(pc_files ${pc_files} ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+add_custom_target(spirv-tools-pkg-config
|
||||||
|
+ ALL
|
||||||
|
+ DEPENDS ${pc_files})
|
||||||
|
|
||||||
|
# Install pkg-config file
|
||||||
|
if (ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
|
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
|
||||||
|
index bfa1e661bc..fd3712c70c 100644
|
||||||
|
--- a/source/CMakeLists.txt
|
||||||
|
+++ b/source/CMakeLists.txt
|
||||||
|
@@ -337,49 +337,44 @@ function(spirv_tools_default_target_options target)
|
||||||
|
)
|
||||||
|
set_property(TARGET ${target} PROPERTY FOLDER "SPIRV-Tools libraries")
|
||||||
|
spvtools_check_symbol_exports(${target})
|
||||||
|
- add_dependencies(${target} spirv-tools-build-version core_tables extinst_tables)
|
||||||
|
+ add_dependencies(${target}
|
||||||
|
+ spirv-tools-build-version core_tables extinst_tables)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
-# Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and
|
||||||
|
-# unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility.
|
||||||
|
-add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
||||||
|
-if (SPIRV_TOOLS_USE_MIMALLOC)
|
||||||
|
- target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
|
||||||
|
+if (SPIRV_TOOLS_BUILD_SHARED)
|
||||||
|
+ add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
||||||
|
+ if (SPIRV_TOOLS_USE_MIMALLOC)
|
||||||
|
+ target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
|
||||||
|
+ endif()
|
||||||
|
+
|
||||||
|
+ set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES
|
||||||
|
+ OUTPUT_NAME "${SPIRV_TOOLS}")
|
||||||
|
+ spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
||||||
|
+
|
||||||
|
+ target_compile_definitions(${SPIRV_TOOLS}-shared
|
||||||
|
+ PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
||||||
|
+ PUBLIC SPIRV_TOOLS_SHAREDLIB)
|
||||||
|
+
|
||||||
|
+ list(APPEND SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-shared)
|
||||||
|
endif()
|
||||||
|
-spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
||||||
|
-set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
||||||
|
-target_compile_definitions(${SPIRV_TOOLS}-shared
|
||||||
|
- PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
||||||
|
- PUBLIC SPIRV_TOOLS_SHAREDLIB
|
||||||
|
-)
|
||||||
|
|
||||||
|
if(SPIRV_TOOLS_BUILD_STATIC)
|
||||||
|
add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES})
|
||||||
|
if (SPIRV_TOOLS_USE_MIMALLOC AND SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD)
|
||||||
|
target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
|
||||||
|
endif()
|
||||||
|
+
|
||||||
|
spirv_tools_default_target_options(${SPIRV_TOOLS}-static)
|
||||||
|
- # The static target does not have the '-static' suffix.
|
||||||
|
- set_target_properties(${SPIRV_TOOLS}-static PROPERTIES OUTPUT_NAME "${SPIRV_TOOLS}")
|
||||||
|
-
|
||||||
|
- # Create the "${SPIRV_TOOLS}" target as an alias to either "${SPIRV_TOOLS}-static"
|
||||||
|
- # or "${SPIRV_TOOLS}-shared" depending on the value of BUILD_SHARED_LIBS.
|
||||||
|
- if(BUILD_SHARED_LIBS)
|
||||||
|
- add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-shared)
|
||||||
|
- else()
|
||||||
|
- add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static)
|
||||||
|
- endif()
|
||||||
|
+ set_target_properties(${SPIRV_TOOLS}-static PROPERTIES
|
||||||
|
+ OUTPUT_NAME "${SPIRV_TOOLS_STATIC_LIBNAME}")
|
||||||
|
|
||||||
|
- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
|
||||||
|
-else()
|
||||||
|
- add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES})
|
||||||
|
- if (SPIRV_TOOLS_USE_MIMALLOC)
|
||||||
|
- target_link_libraries(${SPIRV_TOOLS} PRIVATE mimalloc-static)
|
||||||
|
- endif()
|
||||||
|
- spirv_tools_default_target_options(${SPIRV_TOOLS})
|
||||||
|
- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared)
|
||||||
|
+ list(APPEND SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+# Create the "SPIRV-Tools" target as an alias to either "SPIRV-Tools-static"
|
||||||
|
+# or "SPIRV-Tools-shared" depending on the value of SPIRV_TOOLS_BUILD_SHARED.
|
||||||
|
+add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS_FULL_VISIBILITY})
|
||||||
|
+
|
||||||
|
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||||
|
find_library(LIBRT rt)
|
||||||
|
if(LIBRT)
|
||||||
|
@@ -390,14 +385,17 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
|
- if (SPIRV_TOOLS_USE_MIMALLOC AND (NOT SPIRV_TOOLS_BUILD_STATIC OR SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD))
|
||||||
|
+ if (SPIRV_TOOLS_USE_MIMALLOC AND
|
||||||
|
+ (NOT SPIRV_TOOLS_BUILD_STATIC OR SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD))
|
||||||
|
list(APPEND SPIRV_TOOLS_TARGETS mimalloc-static)
|
||||||
|
endif()
|
||||||
|
install(TARGETS ${SPIRV_TOOLS_TARGETS} EXPORT ${SPIRV_TOOLS}Targets)
|
||||||
|
export(EXPORT ${SPIRV_TOOLS}Targets FILE ${SPIRV_TOOLS}Target.cmake)
|
||||||
|
|
||||||
|
spvtools_config_package_dir(${SPIRV_TOOLS} PACKAGE_DIR)
|
||||||
|
- install(EXPORT ${SPIRV_TOOLS}Targets FILE ${SPIRV_TOOLS}Target.cmake DESTINATION ${PACKAGE_DIR})
|
||||||
|
+ install(EXPORT ${SPIRV_TOOLS}Targets
|
||||||
|
+ FILE ${SPIRV_TOOLS}Target.cmake
|
||||||
|
+ DESTINATION ${PACKAGE_DIR})
|
||||||
|
|
||||||
|
# Special config file for root library compared to other libs.
|
||||||
|
file(WRITE ${CMAKE_BINARY_DIR}/${SPIRV_TOOLS}Config.cmake
|
||||||
174
CMakeLists.txt
|
|
@ -1,17 +1,15 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.31)
|
cmake_minimum_required(VERSION 3.22)
|
||||||
|
|
||||||
project(yuzu)
|
project(yuzu)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/find")
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
||||||
|
|
||||||
set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm)
|
set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(CMAKE_CXX_SCAN_FOR_MODULES 0)
|
|
||||||
|
|
||||||
include(DetectPlatform)
|
include(DetectPlatform)
|
||||||
include(DetectArchitecture)
|
include(DetectArchitecture)
|
||||||
|
|
@ -63,7 +61,6 @@ if (YUZU_STATIC_ROOM)
|
||||||
set(Boost_USE_STATIC_LIBS ON)
|
set(Boost_USE_STATIC_LIBS ON)
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||||
set(OPENSSL_USE_STATIC_LIBS ON)
|
set(OPENSSL_USE_STATIC_LIBS ON)
|
||||||
set(OpenSSL_FORCE_SYSTEM ON)
|
|
||||||
|
|
||||||
set(zstd_FORCE_BUNDLED ON)
|
set(zstd_FORCE_BUNDLED ON)
|
||||||
set(fmt_FORCE_BUNDLED ON)
|
set(fmt_FORCE_BUNDLED ON)
|
||||||
|
|
@ -78,8 +75,6 @@ cmake_dependent_option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet im
|
||||||
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
|
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
|
||||||
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
||||||
|
|
||||||
option(ENABLE_DEBUG_TOOLS "Enable debugging tools (maxwell disassembler, SPIRV translator, etc)" OFF)
|
|
||||||
|
|
||||||
# non-linux bundled qt are static
|
# non-linux bundled qt are static
|
||||||
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
|
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
|
||||||
set(YUZU_STATIC_BUILD ON)
|
set(YUZU_STATIC_BUILD ON)
|
||||||
|
|
@ -124,17 +119,18 @@ if (YUZU_STATIC_BUILD)
|
||||||
set(QuaZip-Qt6_FORCE_BUNDLED ON)
|
set(QuaZip-Qt6_FORCE_BUNDLED ON)
|
||||||
|
|
||||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||||
set(YUZU_USE_BUNDLED_SDL3 ON)
|
set(YUZU_USE_BUNDLED_SDL2 ON)
|
||||||
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
||||||
|
|
||||||
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
|
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||||
set(YUZU_USE_BUNDLED_SDL3 ON)
|
set(YUZU_USE_BUNDLED_SDL2 ON)
|
||||||
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
||||||
|
|
||||||
# these libs do not properly provide static libs/let you do it with cmake
|
# these libs do not properly provide static libs/let you do it with cmake
|
||||||
set(fmt_FORCE_BUNDLED ON)
|
set(fmt_FORCE_BUNDLED ON)
|
||||||
|
set(SPIRV-Tools_FORCE_BUNDLED ON)
|
||||||
set(SPIRV-Headers_FORCE_BUNDLED ON)
|
set(SPIRV-Headers_FORCE_BUNDLED ON)
|
||||||
set(zstd_FORCE_BUNDLED ON)
|
set(zstd_FORCE_BUNDLED ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -147,8 +143,8 @@ if (MSVC AND ARCHITECTURE_x86)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CXX_CLANG_CL)
|
if (CXX_CLANG_CL)
|
||||||
# clang-cl prints literally 10000+ warnings without this
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
|
# clang-cl prints literally 10000+ warnings without this
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-command-line-argument>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-command-line-argument>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unsafe-buffer-usage>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unsafe-buffer-usage>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-value>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-value>
|
||||||
|
|
@ -158,12 +154,12 @@ if (CXX_CLANG_CL)
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
|
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
|
||||||
|
|
||||||
# REQUIRED CPU features IN Windows-amd64
|
# REQUIRED CPU features IN Windows-amd64
|
||||||
if (ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86_64)
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-msse4.1>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-msse4.1>
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-mcx16>
|
$<$<COMPILE_LANGUAGE:C,CXX>:-mcx16>)
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -174,32 +170,9 @@ if (MSVC AND NOT CXX_CLANG)
|
||||||
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /W3 /WX-")
|
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /W3 /WX-")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set runtime library to MD/MDd for all configurations
|
|
||||||
if(MSVC)
|
|
||||||
if (YUZU_USE_BUNDLED_QT AND ARCHITECTURE_arm64)
|
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
|
||||||
set(libflag MT)
|
|
||||||
else()
|
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
|
||||||
set(libflag MD)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Force all projects (including external dependencies) to use the same runtime
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /${libflag}")
|
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /${libflag}d")
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /${libflag}")
|
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /${libflag}d")
|
|
||||||
|
|
||||||
# Add this to ensure Cubeb uses the same runtime
|
|
||||||
add_compile_options(
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:$<$<CONFIG:Debug>:/${libflag}d>>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:$<$<CONFIG:Release>:/${libflag}>>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:$<$<CONFIG:RelWithDebInfo>:/${libflag}>>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:$<$<CONFIG:MinSizeRel>:/${libflag}>>)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
||||||
cmake_dependent_option(YUZU_USE_BUNDLED_SDL3 "Download bundled SDL3 build" "${MSVC}" "NOT ANDROID" OFF)
|
cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "NOT MSVC;NOT ANDROID" OFF)
|
||||||
|
cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" "NOT ANDROID" OFF)
|
||||||
|
|
||||||
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
||||||
|
|
||||||
|
|
@ -233,10 +206,6 @@ cmake_dependent_option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF
|
||||||
|
|
||||||
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
||||||
|
|
||||||
# Install udev rules on Linux (mainly for gyros)
|
|
||||||
# Only acts on joysticks and nothing else.
|
|
||||||
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "PLATFORM_LINUX" OFF)
|
|
||||||
|
|
||||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||||
|
|
||||||
option(YUZU_LEGACY "Apply patches that improve compatibility with older GPUs (e.g. Snapdragon 865) at the cost of performance" OFF)
|
option(YUZU_LEGACY "Apply patches that improve compatibility with older GPUs (e.g. Snapdragon 865) at the cost of performance" OFF)
|
||||||
|
|
@ -300,6 +269,11 @@ if (NOT EXISTS ${PROJECT_BINARY_DIR}/${compat_json})
|
||||||
file(WRITE ${PROJECT_BINARY_DIR}/${compat_json} "")
|
file(WRITE ${PROJECT_BINARY_DIR}/${compat_json} "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (YUZU_LEGACY)
|
||||||
|
message(WARNING "Making legacy build. Performance may suffer.")
|
||||||
|
add_compile_definitions(YUZU_LEGACY)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
||||||
set(HAS_NCE 1)
|
set(HAS_NCE 1)
|
||||||
add_compile_definitions(HAS_NCE=1)
|
add_compile_definitions(HAS_NCE=1)
|
||||||
|
|
@ -309,7 +283,7 @@ if (YUZU_ROOM)
|
||||||
add_compile_definitions(YUZU_ROOM)
|
add_compile_definitions(YUZU_ROOM)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UNIX AND NOT (PLATFORM_LINUX OR WIN32))
|
if ((ANDROID OR APPLE OR UNIX) AND (NOT PLATFORM_LINUX OR ANDROID) AND NOT WIN32)
|
||||||
if(CXX_APPLE OR CXX_CLANG)
|
if(CXX_APPLE OR CXX_CLANG)
|
||||||
# libc++ has stop_token and jthread as experimental
|
# libc++ has stop_token and jthread as experimental
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library")
|
||||||
|
|
@ -365,6 +339,10 @@ if (CXX_GCC OR CXX_CLANG)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Other presets, e.g. steamdeck
|
||||||
|
# TODO(crueter): Just have every Linux/Windows use old sdl2
|
||||||
|
set(YUZU_SYSTEM_PROFILE "generic" CACHE STRING "CMake and Externals profile to use. One of: generic, steamdeck")
|
||||||
|
|
||||||
# Configure C++ standard
|
# Configure C++ standard
|
||||||
# ===========================
|
# ===========================
|
||||||
|
|
||||||
|
|
@ -386,20 +364,13 @@ find_package(RenderDoc MODULE)
|
||||||
# openssl funniness
|
# openssl funniness
|
||||||
if (YUZU_USE_BUNDLED_OPENSSL)
|
if (YUZU_USE_BUNDLED_OPENSSL)
|
||||||
set(BUILD_SHARED_LIBS OFF)
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
AddJsonPackage(openssl-ci)
|
|
||||||
else()
|
|
||||||
AddJsonPackage(openssl)
|
AddJsonPackage(openssl)
|
||||||
set(OPENSSL_BUILD_VERBOSE ON)
|
|
||||||
set(OPENSSL_CONFIGURE_VERBOSE ON)
|
|
||||||
|
|
||||||
if (OpenSSL_ADDED)
|
|
||||||
AddJsonPackage(openssl-cmake)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (OpenSSL_ADDED)
|
if (OpenSSL_ADDED)
|
||||||
add_compile_definitions(YUZU_BUNDLED_OPENSSL)
|
add_compile_definitions(YUZU_BUNDLED_OPENSSL)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(OpenSSL 3 REQUIRED)
|
||||||
|
|
||||||
message(STATUS "Fetching needed dependencies with CPM")
|
message(STATUS "Fetching needed dependencies with CPM")
|
||||||
|
|
||||||
|
|
@ -424,15 +395,13 @@ if (Boost_ADDED)
|
||||||
if (NOT MSVC OR CXX_CLANG)
|
if (NOT MSVC OR CXX_CLANG)
|
||||||
# boost sucks
|
# boost sucks
|
||||||
if (PLATFORM_SUN)
|
if (PLATFORM_SUN)
|
||||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>)
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthreads")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthreads")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(boost_heap INTERFACE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>)
|
target_compile_options(boost_heap INTERFACE -Wno-shadow)
|
||||||
target_compile_options(boost_icl INTERFACE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>)
|
target_compile_options(boost_icl INTERFACE -Wno-shadow)
|
||||||
target_compile_options(boost_asio INTERFACE
|
target_compile_options(boost_asio INTERFACE -Wno-conversion -Wno-implicit-fallthrough)
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-conversion>
|
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-fallthrough>
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -454,10 +423,10 @@ if (zstd_ADDED)
|
||||||
add_library(zstd::libzstd ALIAS libzstd_static)
|
add_library(zstd::libzstd ALIAS libzstd_static)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (NOT YUZU_STATIC_ROOM)
|
||||||
# nlohmann
|
# nlohmann
|
||||||
AddJsonPackage(nlohmann)
|
AddJsonPackage(nlohmann)
|
||||||
|
|
||||||
if (NOT YUZU_STATIC_ROOM)
|
|
||||||
# zlib
|
# zlib
|
||||||
AddJsonPackage(zlib)
|
AddJsonPackage(zlib)
|
||||||
|
|
||||||
|
|
@ -471,7 +440,7 @@ if (NOT YUZU_STATIC_ROOM)
|
||||||
if (Opus_ADDED)
|
if (Opus_ADDED)
|
||||||
if (MSVC AND CXX_CLANG)
|
if (MSVC AND CXX_CLANG)
|
||||||
target_compile_options(opus PRIVATE
|
target_compile_options(opus PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-function-declaration>
|
-Wno-implicit-function-declaration
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -515,10 +484,10 @@ endfunction()
|
||||||
# =============================================
|
# =============================================
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
foreach(fw Carbon Metal Cocoa IOKit CoreVideo CoreMedia Security UniformTypeIdentifiers)
|
# Umbrella framework for everything GUI-related
|
||||||
find_library(${fw}_LIBRARY ${fw} REQUIRED)
|
find_library(COCOA_LIBRARY Cocoa REQUIRED)
|
||||||
list(APPEND PLATFORM_LIBRARIES ${${fw}_LIBRARY})
|
find_library(IOKIT_LIBRARY IOKit REQUIRED)
|
||||||
endforeach()
|
set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY})
|
||||||
elseif (WIN32)
|
elseif (WIN32)
|
||||||
# Target Windows 10
|
# Target Windows 10
|
||||||
add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00)
|
add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00)
|
||||||
|
|
@ -527,8 +496,6 @@ elseif (WIN32)
|
||||||
# PSAPI is the Process Status API
|
# PSAPI is the Process Status API
|
||||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
|
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
|
||||||
endif()
|
endif()
|
||||||
elseif (PLATFORM_MANAGARM)
|
|
||||||
set(PLATFORM_LIBRARIES iconv intl)
|
|
||||||
elseif (PLATFORM_HAIKU)
|
elseif (PLATFORM_HAIKU)
|
||||||
# Haiku is so special :)
|
# Haiku is so special :)
|
||||||
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
||||||
|
|
@ -554,8 +521,10 @@ if (NOT YUZU_STATIC_ROOM)
|
||||||
find_package(VulkanMemoryAllocator)
|
find_package(VulkanMemoryAllocator)
|
||||||
find_package(VulkanUtilityLibraries)
|
find_package(VulkanUtilityLibraries)
|
||||||
find_package(SimpleIni)
|
find_package(SimpleIni)
|
||||||
|
find_package(SPIRV-Tools)
|
||||||
find_package(sirit)
|
find_package(sirit)
|
||||||
find_package(gamemode)
|
find_package(gamemode)
|
||||||
|
find_package(mcl)
|
||||||
find_package(frozen)
|
find_package(frozen)
|
||||||
|
|
||||||
if (ARCHITECTURE_riscv64)
|
if (ARCHITECTURE_riscv64)
|
||||||
|
|
@ -571,7 +540,7 @@ if (NOT YUZU_STATIC_ROOM)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT ANDROID)
|
if (NOT ANDROID)
|
||||||
find_package(SDL3)
|
find_package(SDL2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_DISCORD_PRESENCE)
|
if (USE_DISCORD_PRESENCE)
|
||||||
|
|
@ -590,7 +559,14 @@ endif()
|
||||||
# Qt stuff
|
# Qt stuff
|
||||||
if (ENABLE_QT)
|
if (ENABLE_QT)
|
||||||
if (YUZU_USE_BUNDLED_QT)
|
if (YUZU_USE_BUNDLED_QT)
|
||||||
AddQt(Eden-CI/Qt 6.11.1)
|
# Qt 6.8+ is broken on macOS (??)
|
||||||
|
if (APPLE)
|
||||||
|
AddQt(6.7.3)
|
||||||
|
else()
|
||||||
|
AddQt(6.9.3)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(YUZU_STATIC_BUILD ON)
|
||||||
else()
|
else()
|
||||||
message(STATUS "Using system Qt")
|
message(STATUS "Using system Qt")
|
||||||
if (NOT Qt6_DIR)
|
if (NOT Qt6_DIR)
|
||||||
|
|
@ -599,7 +575,23 @@ if (ENABLE_QT)
|
||||||
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}")
|
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core)
|
find_package(Qt6 CONFIG REQUIRED COMPONENTS Widgets Charts Concurrent)
|
||||||
|
|
||||||
|
if (YUZU_USE_QT_MULTIMEDIA)
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS Multimedia)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
|
||||||
|
# yes Qt, we get it
|
||||||
|
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS DBus OPTIONAL_COMPONENTS GuiPrivate)
|
||||||
|
elseif (UNIX AND NOT APPLE)
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS DBus Gui)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_QT_TRANSLATION)
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT DEFINED QT_TARGET_PATH)
|
if (NOT DEFINED QT_TARGET_PATH)
|
||||||
get_target_property(qtcore_path Qt6::Core LOCATION_Release)
|
get_target_property(qtcore_path Qt6::Core LOCATION_Release)
|
||||||
|
|
@ -622,27 +614,21 @@ if (ENABLE_QT)
|
||||||
## Components ##
|
## Components ##
|
||||||
|
|
||||||
# Best practice is to ask for all components at once, so they are from the same version
|
# Best practice is to ask for all components at once, so they are from the same version
|
||||||
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent Gui)
|
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent)
|
||||||
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
|
if (PLATFORM_LINUX)
|
||||||
list(APPEND YUZU_QT_COMPONENTS DBus)
|
list(APPEND YUZU_QT_COMPONENTS DBus)
|
||||||
# yes Qt, we get it
|
|
||||||
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
|
||||||
list(APPEND YUZU_QT_OPTIONAL GuiPrivate)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_QT_MULTIMEDIA)
|
if (YUZU_USE_QT_MULTIMEDIA)
|
||||||
list(APPEND YUZU_QT_COMPONENTS Multimedia)
|
list(APPEND YUZU_QT_COMPONENTS Multimedia)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_QT_WEB_ENGINE)
|
if (YUZU_USE_QT_WEB_ENGINE)
|
||||||
list(APPEND YUZU_QT_COMPONENTS WebEngineCore WebEngineWidgets)
|
list(APPEND YUZU_QT_COMPONENTS WebEngineCore WebEngineWidgets)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_QT_TRANSLATION)
|
if (ENABLE_QT_TRANSLATION)
|
||||||
list(APPEND YUZU_QT_COMPONENTS LinguistTools)
|
list(APPEND YUZU_QT_COMPONENTS LinguistTools)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS ${YUZU_QT_COMPONENTS} OPTIONAL_COMPONENTS ${YUZU_QT_OPTIONAL})
|
find_package(Qt6 REQUIRED COMPONENTS ${YUZU_QT_COMPONENTS})
|
||||||
set(QT_MAJOR_VERSION 6)
|
set(QT_MAJOR_VERSION 6)
|
||||||
# Qt6 sets cxx_std_17 and we need to undo that
|
# Qt6 sets cxx_std_17 and we need to undo that
|
||||||
set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
|
set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
|
||||||
|
|
@ -708,14 +694,27 @@ if (MSVC AND CXX_CLANG)
|
||||||
link_libraries(llvm-mingw-runtime)
|
link_libraries(llvm-mingw-runtime)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src)
|
# Set runtime library to MD/MDd for all configurations
|
||||||
|
if(MSVC)
|
||||||
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||||
|
|
||||||
if (ENABLE_DEBUG_TOOLS)
|
# Force all projects (including external dependencies) to use the same runtime
|
||||||
add_subdirectory(tools/maxwell-disas)
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
|
||||||
add_subdirectory(tools/maxwell-spirv)
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
|
||||||
add_subdirectory(tools/maxwell-ir)
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MD")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MDd")
|
||||||
|
|
||||||
|
# Add this to ensure Cubeb uses the same runtime
|
||||||
|
add_compile_options(
|
||||||
|
$<$<CONFIG:Debug>:/MDd>
|
||||||
|
$<$<CONFIG:Release>:/MD>
|
||||||
|
$<$<CONFIG:RelWithDebInfo>:/MD>
|
||||||
|
$<$<CONFIG:MinSizeRel>:/MD>
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
|
||||||
# Set yuzu project or yuzu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
# Set yuzu project or yuzu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
||||||
if(ENABLE_QT)
|
if(ENABLE_QT)
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT yuzu)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT yuzu)
|
||||||
|
|
@ -731,8 +730,6 @@ endif()
|
||||||
# https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
# https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
||||||
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||||
# https://www.freedesktop.org/software/appstream/docs/
|
# https://www.freedesktop.org/software/appstream/docs/
|
||||||
|
|
||||||
# TODO: Icon/install handling n such should be put into dist/CMakeLists.txt
|
|
||||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||||
install(FILES "dist/dev.eden_emu.eden.desktop"
|
install(FILES "dist/dev.eden_emu.eden.desktop"
|
||||||
DESTINATION "share/applications")
|
DESTINATION "share/applications")
|
||||||
|
|
@ -745,10 +742,3 @@ if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||||
install(FILES "dist/dev.eden_emu.eden.metainfo.xml"
|
install(FILES "dist/dev.eden_emu.eden.metainfo.xml"
|
||||||
DESTINATION "share/metainfo")
|
DESTINATION "share/metainfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_INSTALL_UDEV_RULES)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
install(FILES "dist/72-eden-input.rules"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/udev/rules.d")
|
|
||||||
endif()
|
|
||||||
|
|
|
||||||
|
|
@ -1,48 +1,23 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
||||||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.31)
|
set(CPM_SOURCE_CACHE "${PROJECT_SOURCE_DIR}/.cache/cpm" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
if(MSVC OR ANDROID OR IOS)
|
if(MSVC OR ANDROID)
|
||||||
set(BUNDLED_DEFAULT ON)
|
set(BUNDLED_DEFAULT ON)
|
||||||
else()
|
else()
|
||||||
set(BUNDLED_DEFAULT OFF)
|
set(BUNDLED_DEFAULT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CPM_SOURCE_CACHE "${PROJECT_SOURCE_DIR}/.cache/cpm" CACHE STRING "" FORCE)
|
|
||||||
|
|
||||||
option(CPMUTIL_FORCE_BUNDLED
|
option(CPMUTIL_FORCE_BUNDLED
|
||||||
"Force bundled packages for all CPM depdendencies" ${BUNDLED_DEFAULT})
|
"Force bundled packages for all CPM depdendencies" ${BUNDLED_DEFAULT})
|
||||||
|
|
||||||
option(CPMUTIL_FORCE_SYSTEM
|
option(CPMUTIL_FORCE_SYSTEM
|
||||||
"Force system packages for all CPM dependencies" OFF)
|
"Force system packages for all CPM dependencies (NOT RECOMMENDED)" OFF)
|
||||||
|
|
||||||
set(CPMUTIL_PATCH_DIR "${PROJECT_SOURCE_DIR}/.patch" CACHE STRING
|
|
||||||
"Directory containing patches for packages")
|
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.22)
|
||||||
include(CPM)
|
include(CPM)
|
||||||
|
|
||||||
# Rudimentary target architecture detection
|
|
||||||
if (NOT DEFINED ARCHITECTURE)
|
|
||||||
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} processor)
|
|
||||||
if (processor MATCHES "x86|amd64")
|
|
||||||
set(CPMUTIL_AMD64 ON)
|
|
||||||
elseif(processor MATCHES "^aarch64|^arm64|^armv8\.*")
|
|
||||||
set(CPMUTIL_ARM64 ON)
|
|
||||||
elseif(processor MATCHES "riscv")
|
|
||||||
set(CPMUTIL_RISCV64 ON)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
# This block exists for compatibility with my own DetectArchitecture.cmake.
|
|
||||||
if (ARCHITECTURE_x86_64)
|
|
||||||
set(CPMUTIL_AMD64 ON)
|
|
||||||
elseif(ARCHITECTURE_arm64)
|
|
||||||
set(CPMUTIL_ARM64 ON)
|
|
||||||
elseif(ARCHITECTURE_riscv64)
|
|
||||||
set(CPMUTIL_RISCV64 ON)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# cpmfile parsing
|
# cpmfile parsing
|
||||||
set(CPMUTIL_JSON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cpmfile.json")
|
set(CPMUTIL_JSON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cpmfile.json")
|
||||||
|
|
||||||
|
|
@ -95,6 +70,7 @@ function(get_json_element object out member default)
|
||||||
|
|
||||||
if(out_type STREQUAL "ARRAY")
|
if(out_type STREQUAL "ARRAY")
|
||||||
string(JSON _len LENGTH "${object}" ${member})
|
string(JSON _len LENGTH "${object}" ${member})
|
||||||
|
# array_to_list("${outvar}" ${_len} outvar)
|
||||||
set("${out}_LENGTH" "${_len}" PARENT_SCOPE)
|
set("${out}_LENGTH" "${_len}" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -152,8 +128,7 @@ function(AddDependentPackages)
|
||||||
message(FATAL_ERROR "Partial dependency installation detected "
|
message(FATAL_ERROR "Partial dependency installation detected "
|
||||||
"for the following packages:\n${package_names}\n"
|
"for the following packages:\n${package_names}\n"
|
||||||
"You can solve this in one of two ways:\n"
|
"You can solve this in one of two ways:\n"
|
||||||
"1. Install or upgrade the following packages "
|
"1. Install the following packages to your system if available:"
|
||||||
"to your system if available:"
|
|
||||||
"\n\t${bundled_names}\n"
|
"\n\t${bundled_names}\n"
|
||||||
"2. Set the following variables to ON:"
|
"2. Set the following variables to ON:"
|
||||||
"\n\t${system_names}\n"
|
"\n\t${system_names}\n"
|
||||||
|
|
@ -172,12 +147,11 @@ macro(parse_object object)
|
||||||
get_json_element("${object}" repo repo "")
|
get_json_element("${object}" repo repo "")
|
||||||
get_json_element("${object}" ci ci OFF)
|
get_json_element("${object}" ci ci OFF)
|
||||||
get_json_element("${object}" version version "")
|
get_json_element("${object}" version version "")
|
||||||
get_json_element("${object}" min_version min_version "")
|
|
||||||
get_json_element("${object}" git_host git_host "github.com")
|
|
||||||
|
|
||||||
if(ci)
|
if(ci)
|
||||||
get_json_element("${object}" name name "${JSON_NAME}")
|
get_json_element("${object}" name name "${JSON_NAME}")
|
||||||
get_json_element("${object}" extension extension "tar.zst")
|
get_json_element("${object}" extension extension "tar.zst")
|
||||||
|
get_json_element("${object}" min_version min_version "")
|
||||||
get_json_element("${object}" raw_disabled disabled_platforms "")
|
get_json_element("${object}" raw_disabled disabled_platforms "")
|
||||||
|
|
||||||
if(raw_disabled)
|
if(raw_disabled)
|
||||||
|
|
@ -188,10 +162,14 @@ macro(parse_object object)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
get_json_element("${object}" hash hash "")
|
get_json_element("${object}" hash hash "")
|
||||||
|
get_json_element("${object}" hash_suffix hash_suffix "")
|
||||||
get_json_element("${object}" sha sha "")
|
get_json_element("${object}" sha sha "")
|
||||||
get_json_element("${object}" url url "")
|
get_json_element("${object}" url url "")
|
||||||
|
get_json_element("${object}" key key "")
|
||||||
get_json_element("${object}" tag tag "")
|
get_json_element("${object}" tag tag "")
|
||||||
get_json_element("${object}" artifact artifact "")
|
get_json_element("${object}" artifact artifact "")
|
||||||
|
get_json_element("${object}" git_version git_version "")
|
||||||
|
get_json_element("${object}" git_host git_host "")
|
||||||
get_json_element("${object}" source_subdir source_subdir "")
|
get_json_element("${object}" source_subdir source_subdir "")
|
||||||
get_json_element("${object}" bundled bundled "unset")
|
get_json_element("${object}" bundled bundled "unset")
|
||||||
get_json_element("${object}" find_args find_args "")
|
get_json_element("${object}" find_args find_args "")
|
||||||
|
|
@ -199,17 +177,23 @@ macro(parse_object object)
|
||||||
|
|
||||||
# okay here comes the fun part: REPLACEMENTS!
|
# okay here comes the fun part: REPLACEMENTS!
|
||||||
# first: tag gets %VERSION% replaced if applicable,
|
# first: tag gets %VERSION% replaced if applicable,
|
||||||
# with version
|
# with either git_version (preferred) or version
|
||||||
# second: artifact gets %VERSION% and %TAG% replaced
|
# second: artifact gets %VERSION% and %TAG% replaced
|
||||||
# accordingly (same rules for VERSION)
|
# accordingly (same rules for VERSION)
|
||||||
|
|
||||||
|
if(git_version)
|
||||||
|
set(version_replace ${git_version})
|
||||||
|
else()
|
||||||
|
set(version_replace ${version})
|
||||||
|
endif()
|
||||||
|
|
||||||
# TODO(crueter): fmt module for cmake
|
# TODO(crueter): fmt module for cmake
|
||||||
if(tag)
|
if(tag)
|
||||||
string(REPLACE "%VERSION%" "${version}" tag ${tag})
|
string(REPLACE "%VERSION%" "${version_replace}" tag ${tag})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(artifact)
|
if(artifact)
|
||||||
string(REPLACE "%VERSION%" "${version}"
|
string(REPLACE "%VERSION%" "${version_replace}"
|
||||||
artifact ${artifact})
|
artifact ${artifact})
|
||||||
string(REPLACE "%TAG%" "${tag}" artifact ${artifact})
|
string(REPLACE "%TAG%" "${tag}" artifact ${artifact})
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -222,7 +206,7 @@ macro(parse_object object)
|
||||||
string(JSON _patch GET "${raw_patches}" "${IDX}")
|
string(JSON _patch GET "${raw_patches}" "${IDX}")
|
||||||
|
|
||||||
set(full_patch
|
set(full_patch
|
||||||
"${CPMUTIL_PATCH_DIR}/${JSON_NAME}/${_patch}")
|
"${PROJECT_SOURCE_DIR}/.patch/${JSON_NAME}/${_patch}")
|
||||||
if(NOT EXISTS ${full_patch})
|
if(NOT EXISTS ${full_patch})
|
||||||
cpm_utils_message(FATAL_ERROR ${JSON_NAME}
|
cpm_utils_message(FATAL_ERROR ${JSON_NAME}
|
||||||
"specifies patch ${full_patch} which does not exist")
|
"specifies patch ${full_patch} which does not exist")
|
||||||
|
|
@ -257,16 +241,13 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
# these are overrides that can be generated at runtime,
|
# these are overrides that can be generated at runtime,
|
||||||
# so can be defined separately from the json
|
# so can be defined separately from the json
|
||||||
|
DOWNLOAD_ONLY
|
||||||
|
BUNDLED_PACKAGE
|
||||||
FORCE_BUNDLED_PACKAGE)
|
FORCE_BUNDLED_PACKAGE)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS)
|
set(multiValueArgs OPTIONS)
|
||||||
|
|
||||||
set(optionArgs MODULE_PATH DOWNLOAD_ONLY)
|
cmake_parse_arguments(JSON "" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
|
|
||||||
cmake_parse_arguments(JSON
|
|
||||||
"${optionArgs}"
|
|
||||||
"${oneValueArgs}"
|
|
||||||
"${multiValueArgs}"
|
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
list(LENGTH ARGN argnLength)
|
list(LENGTH ARGN argnLength)
|
||||||
|
|
@ -277,8 +258,8 @@ function(AddJsonPackage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED CPMFILE_CONTENT)
|
if(NOT DEFINED CPMFILE_CONTENT)
|
||||||
cpm_utils_message(FATAL_ERROR ${name}
|
cpm_utils_message(WARNING ${name}
|
||||||
"No cpmfile present")
|
"No cpmfile, AddJsonPackage is a no-op")
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -295,27 +276,16 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
parse_object(${object})
|
parse_object(${object})
|
||||||
|
|
||||||
if (JSON_MODULE_PATH)
|
|
||||||
list(APPEND EXTRA_ARGS MODULE_PATH)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (JSON_DOWNLOAD_ONLY)
|
|
||||||
list(APPEND EXTRA_ARGS DOWNLOAD_ONLY)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ci)
|
if(ci)
|
||||||
AddCIPackage(
|
AddCIPackage(
|
||||||
VERSION "${version}"
|
VERSION ${version}
|
||||||
NAME "${name}"
|
NAME ${name}
|
||||||
REPO "${repo}"
|
REPO ${repo}
|
||||||
PACKAGE "${package}"
|
PACKAGE ${package}
|
||||||
EXTENSION "${extension}"
|
EXTENSION ${extension}
|
||||||
MIN_VERSION "${min_version}"
|
MIN_VERSION ${min_version}
|
||||||
DISABLED_PLATFORMS "${disabled_platforms}"
|
DISABLED_PLATFORMS ${disabled_platforms})
|
||||||
|
|
||||||
GIT_HOST "${git_host}"
|
|
||||||
|
|
||||||
${EXTRA_ARGS})
|
|
||||||
else()
|
else()
|
||||||
if (NOT DEFINED JSON_FORCE_BUNDLED_PACKAGE)
|
if (NOT DEFINED JSON_FORCE_BUNDLED_PACKAGE)
|
||||||
set(JSON_FORCE_BUNDLED_PACKAGE OFF)
|
set(JSON_FORCE_BUNDLED_PACKAGE OFF)
|
||||||
|
|
@ -324,11 +294,12 @@ function(AddJsonPackage)
|
||||||
AddPackage(
|
AddPackage(
|
||||||
NAME "${package}"
|
NAME "${package}"
|
||||||
VERSION "${version}"
|
VERSION "${version}"
|
||||||
MIN_VERSION "${min_version}"
|
|
||||||
URL "${url}"
|
URL "${url}"
|
||||||
HASH "${hash}"
|
HASH "${hash}"
|
||||||
|
HASH_SUFFIX "${hash_suffix}"
|
||||||
SHA "${sha}"
|
SHA "${sha}"
|
||||||
REPO "${repo}"
|
REPO "${repo}"
|
||||||
|
KEY "${key}"
|
||||||
PATCHES "${patches}"
|
PATCHES "${patches}"
|
||||||
OPTIONS "${options}"
|
OPTIONS "${options}"
|
||||||
FIND_PACKAGE_ARGUMENTS "${find_args}"
|
FIND_PACKAGE_ARGUMENTS "${find_args}"
|
||||||
|
|
@ -336,53 +307,68 @@ function(AddJsonPackage)
|
||||||
FORCE_BUNDLED_PACKAGE "${JSON_FORCE_BUNDLED_PACKAGE}"
|
FORCE_BUNDLED_PACKAGE "${JSON_FORCE_BUNDLED_PACKAGE}"
|
||||||
SOURCE_SUBDIR "${source_subdir}"
|
SOURCE_SUBDIR "${source_subdir}"
|
||||||
|
|
||||||
GIT_HOST "${git_host}"
|
GIT_VERSION ${git_version}
|
||||||
|
GIT_HOST ${git_host}
|
||||||
|
|
||||||
ARTIFACT "${artifact}"
|
ARTIFACT ${artifact}
|
||||||
TAG "${tag}"
|
TAG ${tag})
|
||||||
|
|
||||||
${EXTRA_ARGS})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
Propagate(${package}_ADDED)
|
Propagate(${package}_ADDED)
|
||||||
Propagate(${package}_SOURCE_DIR)
|
Propagate(${package}_SOURCE_DIR)
|
||||||
Propagate(${package}_BINARY_DIR)
|
Propagate(${package}_BINARY_DIR)
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(AddPackage)
|
function(AddPackage)
|
||||||
cpm_set_policies()
|
cpm_set_policies()
|
||||||
set(EXTRA_ARGS "")
|
|
||||||
|
|
||||||
|
# TODO(crueter): git clone?
|
||||||
|
|
||||||
|
#[[
|
||||||
|
URL configurations, descending order of precedence:
|
||||||
|
- URL [+ GIT_URL] -> bare URL fetch
|
||||||
|
- REPO + TAG + ARTIFACT -> github release artifact
|
||||||
|
- REPO + TAG -> github release archive
|
||||||
|
- REPO + SHA -> github commit archive
|
||||||
|
- REPO + BRANCH -> github branch
|
||||||
|
|
||||||
|
Hash configurations, descending order of precedence:
|
||||||
|
- HASH -> bare sha512sum
|
||||||
|
- HASH_SUFFIX -> hash grabbed from the URL + this suffix
|
||||||
|
- HASH_URL -> hash grabbed from a URL
|
||||||
|
* technically this is unsafe since a hacker can attack that url
|
||||||
|
|
||||||
|
NOTE: hash algo defaults to sha512
|
||||||
|
#]]
|
||||||
set(oneValueArgs
|
set(oneValueArgs
|
||||||
NAME
|
NAME
|
||||||
VERSION
|
VERSION
|
||||||
MIN_VERSION
|
GIT_VERSION
|
||||||
GIT_HOST
|
GIT_HOST
|
||||||
|
|
||||||
REPO
|
REPO
|
||||||
TAG
|
TAG
|
||||||
ARTIFACT
|
ARTIFACT
|
||||||
SHA
|
SHA
|
||||||
|
BRANCH
|
||||||
|
|
||||||
HASH
|
HASH
|
||||||
|
HASH_SUFFIX
|
||||||
|
HASH_URL
|
||||||
|
HASH_ALGO
|
||||||
|
|
||||||
URL
|
URL
|
||||||
|
GIT_URL
|
||||||
|
|
||||||
SOURCE_SUBDIR
|
KEY
|
||||||
BUNDLED_PACKAGE
|
BUNDLED_PACKAGE
|
||||||
FORCE_BUNDLED_PACKAGE
|
FORCE_BUNDLED_PACKAGE
|
||||||
FIND_PACKAGE_ARGUMENTS)
|
FIND_PACKAGE_ARGUMENTS)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS PATCHES)
|
set(multiValueArgs OPTIONS PATCHES)
|
||||||
|
|
||||||
set(optionArgs MODULE_PATH DOWNLOAD_ONLY)
|
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS
|
|
||||||
"${optionArgs}"
|
|
||||||
"${oneValueArgs}"
|
|
||||||
"${multiValueArgs}"
|
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
if(NOT DEFINED PKG_ARGS_NAME)
|
if(NOT DEFINED PKG_ARGS_NAME)
|
||||||
|
|
@ -401,7 +387,6 @@ function(AddPackage)
|
||||||
set(CPM_${PKG_ARGS_NAME}_SOURCE ${${PKG_ARGS_NAME}_CUSTOM_DIR})
|
set(CPM_${PKG_ARGS_NAME}_SOURCE ${${PKG_ARGS_NAME}_CUSTOM_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# TODO: See if this can be delegated to subshells
|
|
||||||
if(NOT DEFINED PKG_ARGS_GIT_HOST)
|
if(NOT DEFINED PKG_ARGS_GIT_HOST)
|
||||||
set(git_host github.com)
|
set(git_host github.com)
|
||||||
else()
|
else()
|
||||||
|
|
@ -410,22 +395,42 @@ function(AddPackage)
|
||||||
|
|
||||||
if(DEFINED PKG_ARGS_URL)
|
if(DEFINED PKG_ARGS_URL)
|
||||||
set(pkg_url ${PKG_ARGS_URL})
|
set(pkg_url ${PKG_ARGS_URL})
|
||||||
|
|
||||||
|
if(DEFINED PKG_ARGS_REPO)
|
||||||
|
set(pkg_git_url https://${git_host}/${PKG_ARGS_REPO})
|
||||||
|
else()
|
||||||
|
if(DEFINED PKG_ARGS_GIT_URL)
|
||||||
|
set(pkg_git_url ${PKG_ARGS_GIT_URL})
|
||||||
|
else()
|
||||||
set(pkg_git_url ${pkg_url})
|
set(pkg_git_url ${pkg_url})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
elseif(DEFINED PKG_ARGS_REPO)
|
elseif(DEFINED PKG_ARGS_REPO)
|
||||||
set(pkg_git_url https://${git_host}/${PKG_ARGS_REPO})
|
set(pkg_git_url https://${git_host}/${PKG_ARGS_REPO})
|
||||||
|
|
||||||
if(DEFINED PKG_ARGS_SHA)
|
if(DEFINED PKG_ARGS_TAG)
|
||||||
set(pkg_url "${pkg_git_url}/archive/${PKG_ARGS_SHA}.tar.gz")
|
set(pkg_key ${PKG_ARGS_TAG})
|
||||||
elseif(DEFINED PKG_ARGS_TAG)
|
|
||||||
set(tag "${PKG_ARGS_TAG}")
|
|
||||||
if(DEFINED PKG_ARGS_ARTIFACT)
|
if(DEFINED PKG_ARGS_ARTIFACT)
|
||||||
set(artifact "${PKG_ARGS_ARTIFACT}")
|
|
||||||
set(pkg_url
|
set(pkg_url
|
||||||
"${pkg_git_url}/releases/download/${tag}/${artifact}")
|
"${pkg_git_url}/releases/download/${PKG_ARGS_TAG}/${PKG_ARGS_ARTIFACT}")
|
||||||
else()
|
else()
|
||||||
set(pkg_url
|
set(pkg_url
|
||||||
"${pkg_git_url}/archive/refs/tags/${tag}.tar.gz")
|
${pkg_git_url}/archive/refs/tags/${PKG_ARGS_TAG}.tar.gz)
|
||||||
endif()
|
endif()
|
||||||
|
elseif(DEFINED PKG_ARGS_SHA)
|
||||||
|
set(pkg_url "${pkg_git_url}/archive/${PKG_ARGS_SHA}.tar.gz")
|
||||||
|
else()
|
||||||
|
if(DEFINED PKG_ARGS_BRANCH)
|
||||||
|
set(PKG_BRANCH ${PKG_ARGS_BRANCH})
|
||||||
|
else()
|
||||||
|
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
||||||
|
"REPO defined but no TAG, SHA, BRANCH, or URL"
|
||||||
|
"specified, defaulting to master")
|
||||||
|
set(PKG_BRANCH master)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(pkg_url ${pkg_git_url}/archive/refs/heads/${PKG_BRANCH}.tar.gz)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
cpm_utils_message(FATAL_ERROR ${PKG_ARGS_NAME}
|
cpm_utils_message(FATAL_ERROR ${PKG_ARGS_NAME}
|
||||||
|
|
@ -434,24 +439,75 @@ function(AddPackage)
|
||||||
|
|
||||||
cpm_utils_message(DEBUG ${PKG_ARGS_NAME} "Download URL is ${pkg_url}")
|
cpm_utils_message(DEBUG ${PKG_ARGS_NAME} "Download URL is ${pkg_url}")
|
||||||
|
|
||||||
|
if(NOT DEFINED PKG_ARGS_KEY)
|
||||||
if(DEFINED PKG_ARGS_SHA)
|
if(DEFINED PKG_ARGS_SHA)
|
||||||
string(SUBSTRING ${PKG_ARGS_SHA} 0 4 pkg_key)
|
string(SUBSTRING ${PKG_ARGS_SHA} 0 4 pkg_key)
|
||||||
elseif(DEFINED PKG_ARGS_VERSION)
|
cpm_utils_message(DEBUG ${PKG_ARGS_NAME}
|
||||||
set(pkg_key ${PKG_ARGS_VERSION})
|
"No custom key defined, using ${pkg_key} from sha")
|
||||||
|
elseif(DEFINED PKG_ARGS_GIT_VERSION)
|
||||||
|
set(pkg_key ${PKG_ARGS_GIT_VERSION})
|
||||||
|
cpm_utils_message(DEBUG ${PKG_ARGS_NAME}
|
||||||
|
"No custom key defined, using ${pkg_key}")
|
||||||
elseif(DEFINED PKG_ARGS_TAG)
|
elseif(DEFINED PKG_ARGS_TAG)
|
||||||
set(pkg_key ${PKG_ARGS_TAG})
|
set(pkg_key ${PKG_ARGS_TAG})
|
||||||
elseif(DEFINED PKG_ARGS_MIN_VERSION)
|
cpm_utils_message(DEBUG ${PKG_ARGS_NAME}
|
||||||
set(pkg_key ${PKG_ARGS_MIN_VERSION})
|
"No custom key defined, using ${pkg_key}")
|
||||||
|
elseif(DEFINED PKG_ARGS_VERSION)
|
||||||
|
set(pkg_key ${PKG_ARGS_VERSION})
|
||||||
|
cpm_utils_message(DEBUG ${PKG_ARGS_NAME}
|
||||||
|
"No custom key defined, using ${pkg_key}")
|
||||||
else()
|
else()
|
||||||
cpm_utils_message(FATAL_ERROR ${PKG_ARGS_NAME}
|
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
||||||
"Could not determine cache key")
|
"Could not determine cache key, using CPM defaults")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(pkg_key ${PKG_ARGS_KEY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED PKG_ARGS_HASH_ALGO)
|
||||||
|
set(hash_algo ${PKG_ARGS_HASH_ALGO})
|
||||||
|
else()
|
||||||
|
set(hash_algo SHA512)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEFINED PKG_ARGS_HASH)
|
if(DEFINED PKG_ARGS_HASH)
|
||||||
set(pkg_hash "SHA512=${PKG_ARGS_HASH}")
|
set(pkg_hash "${hash_algo}=${PKG_ARGS_HASH}")
|
||||||
|
elseif(DEFINED PKG_ARGS_HASH_SUFFIX)
|
||||||
|
# funny sanity check
|
||||||
|
string(TOLOWER ${hash_algo} hash_algo_lower)
|
||||||
|
string(TOLOWER ${PKG_ARGS_HASH_SUFFIX} suffix_lower)
|
||||||
|
if(NOT ${suffix_lower} MATCHES ${hash_algo_lower})
|
||||||
|
cpm_utils_message(WARNING
|
||||||
|
"Hash algorithm and hash suffix do not match, errors may occur")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(hash_url ${pkg_url}.${PKG_ARGS_HASH_SUFFIX})
|
||||||
|
elseif(DEFINED PKG_ARGS_HASH_URL)
|
||||||
|
set(hash_url ${PKG_ARGS_HASH_URL})
|
||||||
else()
|
else()
|
||||||
cpm_utils_message(FATAL_ERROR ${PKG_ARGS_NAME}
|
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
||||||
"No hash defined")
|
"No hash or hash URL found")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED hash_url)
|
||||||
|
set(outfile ${CMAKE_CURRENT_BINARY_DIR}/${PKG_ARGS_NAME}.hash)
|
||||||
|
|
||||||
|
# TODO(crueter): This is kind of a bad solution
|
||||||
|
# because "technically" the hash is invalidated each week
|
||||||
|
# but it works for now kjsdnfkjdnfjksdn
|
||||||
|
string(TOLOWER ${PKG_ARGS_NAME} lowername)
|
||||||
|
if(NOT EXISTS ${outfile} AND NOT EXISTS
|
||||||
|
${CPM_SOURCE_CACHE}/${lowername}/${pkg_key})
|
||||||
|
file(DOWNLOAD ${hash_url} ${outfile})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(EXISTS ${outfile})
|
||||||
|
file(READ ${outfile} pkg_hash_tmp)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED ${pkg_hash_tmp})
|
||||||
|
set(pkg_hash "${hash_algo}=${pkg_hash_tmp}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(set_precedence local force)
|
macro(set_precedence local force)
|
||||||
|
|
@ -491,33 +547,9 @@ function(AddPackage)
|
||||||
set_precedence(ON OFF)
|
set_precedence(ON OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEFINED PKG_ARGS_MIN_VERSION)
|
if(DEFINED PKG_ARGS_VERSION)
|
||||||
list(APPEND EXTRA_ARGS
|
list(APPEND EXTRA_ARGS
|
||||||
VERSION ${PKG_ARGS_MIN_VERSION})
|
VERSION ${PKG_ARGS_VERSION})
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PKG_ARGS_FIND_PACKAGE_ARGUMENTS)
|
|
||||||
list(APPEND EXTRA_ARGS
|
|
||||||
FIND_PACKAGE_ARGUMENTS "${PKG_ARGS_FIND_PACKAGE_ARGUMENTS}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PKG_ARGS_PATCHES)
|
|
||||||
list(APPEND EXTRA_ARGS
|
|
||||||
PATCHES "${PKG_ARGS_PATCHES}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PKG_ARGS_OPTIONS)
|
|
||||||
list(APPEND EXTRA_ARGS
|
|
||||||
OPTIONS "${PKG_ARGS_OPTIONS}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PKG_ARGS_SOURCE_SUBDIR)
|
|
||||||
list(APPEND EXTRA_ARGS
|
|
||||||
SOURCE_SUBDIR "${PKG_ARGS_SOURCE_SUBDIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PKG_ARGS_DOWNLOAD_ONLY OR PKG_ARGS_MODULE_PATH)
|
|
||||||
list(APPEND EXTRA_ARGS DOWNLOAD_ONLY ON)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
CPMAddPackage(
|
CPMAddPackage(
|
||||||
|
|
@ -525,7 +557,11 @@ function(AddPackage)
|
||||||
URL ${pkg_url}
|
URL ${pkg_url}
|
||||||
URL_HASH ${pkg_hash}
|
URL_HASH ${pkg_hash}
|
||||||
CUSTOM_CACHE_KEY ${pkg_key}
|
CUSTOM_CACHE_KEY ${pkg_key}
|
||||||
|
DOWNLOAD_ONLY ${PKG_ARGS_DOWNLOAD_ONLY}
|
||||||
|
FIND_PACKAGE_ARGUMENTS ${PKG_ARGS_FIND_PACKAGE_ARGUMENTS}
|
||||||
|
|
||||||
|
OPTIONS ${PKG_ARGS_OPTIONS}
|
||||||
|
PATCHES ${PKG_ARGS_PATCHES}
|
||||||
EXCLUDE_FROM_ALL ON
|
EXCLUDE_FROM_ALL ON
|
||||||
|
|
||||||
${EXTRA_ARGS}
|
${EXTRA_ARGS}
|
||||||
|
|
@ -539,15 +575,15 @@ function(AddPackage)
|
||||||
if(DEFINED PKG_ARGS_SHA)
|
if(DEFINED PKG_ARGS_SHA)
|
||||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
||||||
${PKG_ARGS_SHA})
|
${PKG_ARGS_SHA})
|
||||||
elseif(DEFINED PKG_ARGS_VERSION)
|
elseif(DEFINED PKG_ARGS_GIT_VERSION)
|
||||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
||||||
${PKG_ARGS_VERSION})
|
${PKG_ARGS_GIT_VERSION})
|
||||||
elseif(DEFINED PKG_ARGS_TAG)
|
elseif(DEFINED PKG_ARGS_TAG)
|
||||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
||||||
${PKG_ARGS_TAG})
|
${PKG_ARGS_TAG})
|
||||||
elseif(DEFINED PKG_ARGS_MIN_VERSION)
|
elseif(DEFINED PKG_ARGS_VERSION)
|
||||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS
|
||||||
${PKG_ARGS_MIN_VERSION})
|
${PKG_ARGS_VERSION})
|
||||||
else()
|
else()
|
||||||
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
||||||
"Package has no specified sha, tag, or version")
|
"Package has no specified sha, tag, or version")
|
||||||
|
|
@ -565,14 +601,13 @@ function(AddPackage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
Propagate(${PKG_ARGS_NAME}_ADDED)
|
set(${PKG_ARGS_NAME}_ADDED "${${PKG_ARGS_NAME}_ADDED}"
|
||||||
Propagate(${PKG_ARGS_NAME}_SOURCE_DIR)
|
PARENT_SCOPE)
|
||||||
Propagate(${PKG_ARGS_NAME}_BINARY_DIR)
|
set(${PKG_ARGS_NAME}_SOURCE_DIR "${${PKG_ARGS_NAME}_SOURCE_DIR}"
|
||||||
|
PARENT_SCOPE)
|
||||||
|
set(${PKG_ARGS_NAME}_BINARY_DIR "${${PKG_ARGS_NAME}_BINARY_DIR}"
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
if (PKG_ARGS_MODULE_PATH)
|
|
||||||
list(PREPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}")
|
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# TODO(crueter): we could do an AddMultiArchPackage, multiplatformpackage?
|
# TODO(crueter): we could do an AddMultiArchPackage, multiplatformpackage?
|
||||||
|
|
@ -584,12 +619,11 @@ function(AddCIPackage)
|
||||||
REPO
|
REPO
|
||||||
PACKAGE
|
PACKAGE
|
||||||
EXTENSION
|
EXTENSION
|
||||||
MIN_VERSION
|
MIN_VERSION)
|
||||||
GIT_HOST)
|
|
||||||
|
|
||||||
set(multiValueArgs DISABLED_PLATFORMS)
|
set(multiValueArgs DISABLED_PLATFORMS)
|
||||||
|
|
||||||
set(optionArgs MODULE_PATH)
|
set(optionArgs MODULE)
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS
|
cmake_parse_arguments(PKG_ARGS
|
||||||
"${optionArgs}"
|
"${optionArgs}"
|
||||||
|
|
@ -597,7 +631,6 @@ function(AddCIPackage)
|
||||||
"${multiValueArgs}"
|
"${multiValueArgs}"
|
||||||
${ARGN})
|
${ARGN})
|
||||||
|
|
||||||
# TODO: use cpm_utils_message
|
|
||||||
if(NOT DEFINED PKG_ARGS_VERSION)
|
if(NOT DEFINED PKG_ARGS_VERSION)
|
||||||
message(FATAL_ERROR "[CPMUtil] VERSION is required")
|
message(FATAL_ERROR "[CPMUtil] VERSION is required")
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -623,12 +656,6 @@ function(AddCIPackage)
|
||||||
set(ARTIFACT_EXT ${PKG_ARGS_EXTENSION})
|
set(ARTIFACT_EXT ${PKG_ARGS_EXTENSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT DEFINED PKG_ARGS_GIT_HOST)
|
|
||||||
set(ARTIFACT_GIT_HOST "github.com")
|
|
||||||
else()
|
|
||||||
set(ARTIFACT_GIT_HOST "${PKG_ARGS_GIT_HOST}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DEFINED PKG_ARGS_MIN_VERSION)
|
if(DEFINED PKG_ARGS_MIN_VERSION)
|
||||||
set(ARTIFACT_MIN_VERSION ${PKG_ARGS_MIN_VERSION})
|
set(ARTIFACT_MIN_VERSION ${PKG_ARGS_MIN_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -643,114 +670,75 @@ function(AddCIPackage)
|
||||||
set(ARTIFACT_REPO ${PKG_ARGS_REPO})
|
set(ARTIFACT_REPO ${PKG_ARGS_REPO})
|
||||||
set(ARTIFACT_PACKAGE ${PKG_ARGS_PACKAGE})
|
set(ARTIFACT_PACKAGE ${PKG_ARGS_PACKAGE})
|
||||||
|
|
||||||
# TODO: Use amd64/aarch64 naming for everything.
|
if(MSVC AND ARCHITECTURE_x86_64)
|
||||||
# Also drop macos universal
|
set(pkgname windows-amd64)
|
||||||
|
elseif(MSVC AND ARCHITECTURE_arm64)
|
||||||
if (MSVC)
|
set(pkgname windows-arm64)
|
||||||
set(platname windows)
|
elseif(MINGW AND ARCHITECTURE_x86_64)
|
||||||
elseif(MINGW)
|
set(pkgname mingw-amd64)
|
||||||
set(platname mingw)
|
elseif(MINGW AND ARCHITECTURE_arm64)
|
||||||
elseif(ANDROID)
|
set(pkgname mingw-arm64)
|
||||||
set(platname android)
|
elseif(ANDROID AND ARCHITECTURE_x86_64)
|
||||||
elseif(LINUX)
|
set(pkgname android-x86_64)
|
||||||
set(platname linux)
|
elseif(ANDROID AND ARCHITECTURE_arm64)
|
||||||
elseif(IOS)
|
set(pkgname android-aarch64)
|
||||||
set(platname ios)
|
elseif(PLATFORM_SUN)
|
||||||
|
set(pkgname solaris-amd64)
|
||||||
|
elseif(PLATFORM_FREEBSD)
|
||||||
|
set(pkgname freebsd-amd64)
|
||||||
|
elseif(PLATFORM_LINUX AND ARCHITECTURE_x86_64)
|
||||||
|
set(pkgname linux-amd64)
|
||||||
|
elseif(PLATFORM_LINUX AND ARCHITECTURE_arm64)
|
||||||
|
set(pkgname linux-aarch64)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(platname macos)
|
set(pkgname macos-universal)
|
||||||
else()
|
|
||||||
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
|
||||||
"Unsupported platform ${CMAKE_SYSTEM_NAME} for CI packages")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (APPLE AND NOT IOS)
|
if (DEFINED pkgname AND NOT "${pkgname}" IN_LIST DISABLED_PLATFORMS)
|
||||||
set(archname universal)
|
|
||||||
elseif((WIN32 OR LINUX) AND CPMUTIL_AMD64)
|
|
||||||
set(archname amd64)
|
|
||||||
elseif(WIN32 AND CPMUTIL_ARM64)
|
|
||||||
set(archname arm64)
|
|
||||||
elseif((IOS OR LINUX OR ANDROID) AND CPMUTIL_ARM64)
|
|
||||||
set(archname aarch64)
|
|
||||||
elseif(ANDROID AND CPMUTIL_AMD64)
|
|
||||||
set(archname x86_64)
|
|
||||||
else()
|
|
||||||
cpm_utils_message(WARNING ${PKG_ARGS_NAME}
|
|
||||||
"Unsupported platform/arch combo for CI packages")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (DEFINED platname AND DEFINED archname)
|
|
||||||
set(pkgname ${platname}-${archname})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (DEFINED pkgname
|
|
||||||
AND NOT "${pkgname}" IN_LIST DISABLED_PLATFORMS)
|
|
||||||
set(ARTIFACT
|
set(ARTIFACT
|
||||||
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
||||||
|
|
||||||
if (PKG_ARGS_MODULE_PATH)
|
|
||||||
set(EXTRA_ARGS MODULE_PATH)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# download sha512sum file
|
|
||||||
# TODO:
|
|
||||||
set(sha512sum_url
|
|
||||||
"https://${ARTIFACT_GIT_HOST}/${ARTIFACT_REPO}/releases/download/v${ARTIFACT_VERSION}/${ARTIFACT}.sha512sum")
|
|
||||||
set(sha512sum_file
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/.cpmutil_${ARTIFACT}_sha512sum")
|
|
||||||
|
|
||||||
file(DOWNLOAD "${sha512sum_url}" "${sha512sum_file}"
|
|
||||||
STATUS sha512sum_status)
|
|
||||||
list(GET sha512sum_status 0 sha512sum_error)
|
|
||||||
|
|
||||||
if(sha512sum_error)
|
|
||||||
message(FATAL_ERROR "[CPMUtil] Failed to download sha512sum "
|
|
||||||
"for ${ARTIFACT_NAME} from ${sha512sum_url}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(READ "${sha512sum_file}" sha512sum_hash)
|
|
||||||
string(STRIP "${sha512sum_hash}" sha512sum_hash)
|
|
||||||
file(REMOVE "${sha512sum_file}")
|
|
||||||
|
|
||||||
AddPackage(
|
AddPackage(
|
||||||
NAME ${ARTIFACT_PACKAGE}
|
NAME ${ARTIFACT_PACKAGE}
|
||||||
REPO ${ARTIFACT_REPO}
|
REPO ${ARTIFACT_REPO}
|
||||||
TAG "v${ARTIFACT_VERSION}"
|
TAG "v${ARTIFACT_VERSION}"
|
||||||
MIN_VERSION ${ARTIFACT_VERSION}
|
GIT_VERSION ${ARTIFACT_VERSION}
|
||||||
ARTIFACT ${ARTIFACT}
|
ARTIFACT ${ARTIFACT}
|
||||||
HASH ${sha512sum_hash}
|
|
||||||
|
KEY "${pkgname}-${ARTIFACT_VERSION}"
|
||||||
|
HASH_SUFFIX sha512sum
|
||||||
FORCE_BUNDLED_PACKAGE ON
|
FORCE_BUNDLED_PACKAGE ON
|
||||||
${EXTRA_ARGS})
|
DOWNLOAD_ONLY ${PKG_ARGS_MODULE})
|
||||||
|
|
||||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||||
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR)
|
set(${ARTIFACT_PACKAGE}_SOURCE_DIR
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
"${${ARTIFACT_PACKAGE}_SOURCE_DIR}" PARENT_SCOPE)
|
||||||
|
|
||||||
|
if (PKG_ARGS_MODULE)
|
||||||
|
list(APPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}")
|
||||||
|
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED)
|
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Utility function for Qt
|
# Utility function for Qt
|
||||||
function(AddQt repo version)
|
function(AddQt version)
|
||||||
if (NOT DEFINED repo)
|
|
||||||
message(FATAL_ERROR "[CPMUtil] AddQt: repo is required")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT DEFINED version)
|
if (NOT DEFINED version)
|
||||||
message(FATAL_ERROR "[CPMUtil] AddQt: version is required")
|
message(FATAL_ERROR "[CPMUtil] AddQt: version is required")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
AddCIPackage(
|
AddCIPackage(
|
||||||
NAME qt
|
NAME Qt
|
||||||
PACKAGE Qt6
|
PACKAGE Qt6
|
||||||
VERSION ${version}
|
VERSION ${version}
|
||||||
MIN_VERSION 6
|
MIN_VERSION 6
|
||||||
REPO ${repo}
|
REPO crueter-ci/Qt
|
||||||
DISABLED_PLATFORMS
|
DISABLED_PLATFORMS
|
||||||
android-x86_64 android-aarch64
|
android-x86_64 android-aarch64
|
||||||
MODULE_PATH)
|
freebsd-amd64 solaris-amd64 openbsd-amd64
|
||||||
|
MODULE)
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH)
|
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
|
||||||
|
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
|
||||||
Propagate(Qt6_SOURCE_DIR)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2019 Citra Emulator Project
|
# SPDX-FileCopyrightText: 2019 Citra Emulator Project
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
@ -16,8 +13,7 @@ endif()
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(LLVM HANDLE_COMPONENTS CONFIG_MODE)
|
find_package_handle_standard_args(LLVM HANDLE_COMPONENTS CONFIG_MODE)
|
||||||
|
|
||||||
# Demangle only for Windows targets
|
if (LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle)
|
||||||
if (WIN32 AND LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle)
|
|
||||||
add_library(LLVM::Demangle INTERFACE IMPORTED)
|
add_library(LLVM::Demangle INTERFACE IMPORTED)
|
||||||
target_compile_definitions(LLVM::Demangle INTERFACE ${LLVM_DEFINITIONS})
|
target_compile_definitions(LLVM::Demangle INTERFACE ${LLVM_DEFINITIONS})
|
||||||
target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS})
|
target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS})
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
26
CMakeModules/FindSPIRV-Tools.cmake
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
pkg_search_module(SPIRV-Tools QUIET IMPORTED_TARGET SPIRV-Tools)
|
||||||
|
find_package_handle_standard_args(SPIRV-Tools
|
||||||
|
REQUIRED_VARS SPIRV-Tools_LINK_LIBRARIES
|
||||||
|
VERSION_VAR SPIRV-Tools_VERSION
|
||||||
|
)
|
||||||
|
|
||||||
|
if (PLATFORM_MSYS)
|
||||||
|
FixMsysPath(PkgConfig::SPIRV-Tools)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (SPIRV-Tools_FOUND AND NOT TARGET SPIRV-Tools::SPIRV-Tools)
|
||||||
|
if (TARGET SPIRV-Tools)
|
||||||
|
add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools)
|
||||||
|
else()
|
||||||
|
add_library(SPIRV-Tools::SPIRV-Tools ALIAS PkgConfig::SPIRV-Tools)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <andrea@pappacoda.it>
|
# SPDX-FileCopyrightText: 2022 Andrea Pappacoda <andrea@pappacoda.it>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
find_package(PkgConfig QUIET)
|
find_package(PkgConfig QUIET)
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||||
|
|
@ -33,21 +33,19 @@ endif()
|
||||||
set(GIT_DESC ${BUILD_VERSION})
|
set(GIT_DESC ${BUILD_VERSION})
|
||||||
|
|
||||||
# Generate cpp with Git revision from template
|
# Generate cpp with Git revision from template
|
||||||
|
# Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well
|
||||||
|
|
||||||
# TODO(crueter): Stable releases feed.
|
# Auto-updater metadata! Must somewhat mirror GitHub API endpoint
|
||||||
set(BUILD_AUTO_UPDATE_STABLE_REPO "eden-emu/eden")
|
|
||||||
set(BUILD_AUTO_UPDATE_STABLE_API "git.eden-emu.dev")
|
|
||||||
set(BUILD_AUTO_UPDATE_STABLE_API_PATH "/api/v1/repos/")
|
|
||||||
|
|
||||||
set(BUILD_AUTO_UPDATE_API_PATH "/latest/release.json")
|
|
||||||
if (NIGHTLY_BUILD)
|
if (NIGHTLY_BUILD)
|
||||||
set(BUILD_AUTO_UPDATE_WEBSITE "https://git.eden-emu.dev")
|
set(BUILD_AUTO_UPDATE_WEBSITE "https://github.com")
|
||||||
set(BUILD_AUTO_UPDATE_API "nightly.eden-emu.dev")
|
set(BUILD_AUTO_UPDATE_API "api.github.com")
|
||||||
set(BUILD_AUTO_UPDATE_REPO "eden-ci/nightly")
|
set(BUILD_AUTO_UPDATE_API_PATH "/repos/")
|
||||||
|
set(BUILD_AUTO_UPDATE_REPO "Eden-CI/Nightly")
|
||||||
set(REPO_NAME "Eden Nightly")
|
set(REPO_NAME "Eden Nightly")
|
||||||
else()
|
else()
|
||||||
set(BUILD_AUTO_UPDATE_WEBSITE "https://git.eden-emu.dev")
|
set(BUILD_AUTO_UPDATE_WEBSITE "https://git.eden-emu.dev")
|
||||||
set(BUILD_AUTO_UPDATE_API "stable.eden-emu.dev")
|
set(BUILD_AUTO_UPDATE_API "git.eden-emu.dev")
|
||||||
|
set(BUILD_AUTO_UPDATE_API_PATH "/api/v1/repos/")
|
||||||
set(BUILD_AUTO_UPDATE_REPO "eden-emu/eden")
|
set(BUILD_AUTO_UPDATE_REPO "eden-emu/eden")
|
||||||
set(REPO_NAME "Eden")
|
set(REPO_NAME "Eden")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
39
CMakeModules/WindowsCopyFiles.cmake
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# This file provides the function windows_copy_files.
|
||||||
|
# This is only valid on Windows.
|
||||||
|
|
||||||
|
# Include guard
|
||||||
|
if(__windows_copy_files)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__windows_copy_files YES)
|
||||||
|
|
||||||
|
# Any number of files to copy from SOURCE_DIR to DEST_DIR can be specified after DEST_DIR.
|
||||||
|
# This copying happens post-build.
|
||||||
|
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
function(windows_copy_files TARGET SOURCE_DIR DEST_DIR)
|
||||||
|
# windows commandline expects the / to be \ so switch them
|
||||||
|
string(REPLACE "/" "\\\\" SOURCE_DIR ${SOURCE_DIR})
|
||||||
|
string(REPLACE "/" "\\\\" DEST_DIR ${DEST_DIR})
|
||||||
|
|
||||||
|
# /NJH /NJS /NDL /NFL /NC /NS /NP - Silence any output
|
||||||
|
# cmake adds an extra check for command success which doesn't work too well with robocopy
|
||||||
|
# so trick it into thinking the command was successful with the || cmd /c "exit /b 0"
|
||||||
|
add_custom_command(TARGET ${TARGET} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||||
|
COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0"
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
else()
|
||||||
|
function(windows_copy_files TARGET SOURCE_DIR DEST_DIR)
|
||||||
|
add_custom_command(TARGET ${TARGET} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||||
|
COMMAND cp -ra ${SOURCE_DIR}/. ${DEST_DIR}
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
endif()
|
||||||
30
CMakeModules/aqt_config.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 kleidis
|
||||||
|
|
||||||
|
[aqt]
|
||||||
|
concurrency: 2
|
||||||
|
|
||||||
|
[mirrors]
|
||||||
|
trusted_mirrors:
|
||||||
|
https://download.qt.io
|
||||||
|
blacklist:
|
||||||
|
https://qt.mirror.constant.com
|
||||||
|
https://mirrors.ocf.berkeley.edu
|
||||||
|
https://mirrors.ustc.edu.cn
|
||||||
|
https://mirrors.tuna.tsinghua.edu.cn
|
||||||
|
https://mirrors.geekpie.club
|
||||||
|
https://mirrors-wan.geekpie.club
|
||||||
|
https://mirrors.sjtug.sjtu.edu.cn
|
||||||
|
fallbacks:
|
||||||
|
https://qtproject.mirror.liquidtelecom.com/
|
||||||
|
https://mirrors.aliyun.com/qt/
|
||||||
|
https://ftp.jaist.ac.jp/pub/qtproject/
|
||||||
|
https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/
|
||||||
|
https://qt-mirror.dannhauer.de/
|
||||||
|
https://ftp.fau.de/qtproject/
|
||||||
|
https://mirror.netcologne.de/qtproject/
|
||||||
|
https://mirrors.dotsrc.org/qtproject/
|
||||||
|
https://www.nic.funet.fi/pub/mirrors/download.qt-project.org/
|
||||||
|
https://master.qt.io/
|
||||||
|
https://mirrors.ukfast.co.uk/sites/qt.io/
|
||||||
|
https://ftp2.nluug.nl/languages/qt/
|
||||||
|
https://ftp1.nluug.nl/languages/qt/
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
set(CROSS_TARGET "" CACHE STRING "Cross-compilation target (aarch64, etc)")
|
|
||||||
set(CROSS_PLATFORM "unknown-linux-gnu" CACHE STRING "Cross-compilation platform (e.g. unknown-linux-gnu)")
|
|
||||||
set(CROSS_COMPILER "gcc" CACHE STRING "Cross compiler type (gcc or clang)")
|
|
||||||
|
|
||||||
if (NOT CROSS_TARGET)
|
|
||||||
message(FATAL_ERROR "GentooCross used without a valid CROSS_TARGET")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(prefix ${CROSS_TARGET}-${CROSS_PLATFORM})
|
|
||||||
|
|
||||||
set(CMAKE_SYSROOT /usr/${prefix})
|
|
||||||
|
|
||||||
if (CROSS_COMPILER STREQUAL "gcc")
|
|
||||||
set(CMAKE_C_COMPILER ${prefix}-gcc)
|
|
||||||
set(CMAKE_CXX_COMPILER ${prefix}-g++)
|
|
||||||
elseif (CROSS_COMPILER STREQUAL "clang")
|
|
||||||
set(CMAKE_C_COMPILER ${prefix}-clang)
|
|
||||||
set(CMAKE_CXX_COMPILER ${prefix}-clang++)
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unsupported cross compiler type ${CROSS_COMPILER}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# search programs in the host environment
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
|
|
||||||
# search headers and libraries in the target environment
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
|
|
||||||
|
|
||||||
# sanity checks
|
|
||||||
if (NOT IS_DIRECTORY ${CMAKE_SYSROOT})
|
|
||||||
message(FATAL_ERROR "Invalid sysroot ${CMAKE_SYSROOT}."
|
|
||||||
"Double-check your CROSS_TARGET and CROSS_PLATFORM.")
|
|
||||||
endif()
|
|
||||||
456
cpmfile.json
|
|
@ -1,404 +1,118 @@
|
||||||
{
|
{
|
||||||
"biscuit": {
|
"openssl": {
|
||||||
"hash": "1229f345b014f7ca544dedb4edb3311e41ba736f9aa9a67f88b5f26f3c983288c6bb6cdedcfb0b8a02c63088a37e6a0d7ba97d9c2a4d721b213916327cffe28a",
|
"ci": true,
|
||||||
"min_version": "0.9.1",
|
"package": "OpenSSL",
|
||||||
"repo": "lioncash/biscuit",
|
"name": "openssl",
|
||||||
"tag": "v%VERSION%",
|
"repo": "crueter-ci/OpenSSL",
|
||||||
"version": "0.19.0"
|
"version": "3.6.0-1cb0d36b39",
|
||||||
|
"min_version": "3"
|
||||||
},
|
},
|
||||||
"boost": {
|
"boost": {
|
||||||
"artifact": "%TAG%-cmake.tar.xz",
|
|
||||||
"find_args": "CONFIG OPTIONAL_COMPONENTS headers context system fiber filesystem",
|
|
||||||
"hash": "6ae6e94664fe7f2fb01976b59b276ac5df8085c7503fa829d810fbfe495960cfec44fa2c36e2cb23480bc19c956ed199d4952b02639a00a6c07625d4e7130c2d",
|
|
||||||
"min_version": "1.57",
|
|
||||||
"package": "Boost",
|
"package": "Boost",
|
||||||
"patches": [
|
|
||||||
"0001-clang-cl.patch"
|
|
||||||
],
|
|
||||||
"repo": "boostorg/boost",
|
"repo": "boostorg/boost",
|
||||||
"tag": "boost-%VERSION%",
|
"tag": "boost-%VERSION%",
|
||||||
"version": "1.90.0"
|
"artifact": "%TAG%-cmake.tar.xz",
|
||||||
},
|
"hash": "6ae6e94664fe7f2fb01976b59b276ac5df8085c7503fa829d810fbfe495960cfec44fa2c36e2cb23480bc19c956ed199d4952b02639a00a6c07625d4e7130c2d",
|
||||||
"boost_headers": {
|
"git_version": "1.90.0",
|
||||||
"bundled": true,
|
"version": "1.57",
|
||||||
"hash": "4ef845775e2277a8104ded6ddf749aa262ce52cf8438042869a048f9a0156dd772fbbcfa74efa1378fecef339b7286f6fe4b4feb5c45d49966b35d08e3e83507",
|
"find_args": "CONFIG OPTIONAL_COMPONENTS headers context system fiber filesystem",
|
||||||
"repo": "boostorg/headers",
|
|
||||||
"tag": "boost-%VERSION%",
|
|
||||||
"version": "1.90.0"
|
|
||||||
},
|
|
||||||
"catch2": {
|
|
||||||
"hash": "7eea385d79d88a5690cde131fe7ccda97d5c54ea09d6f515000d7bf07c828809d61c1ac99912c1ee507cf933f61c1c47ecdcc45df7850ffa82714034b0fccf35",
|
|
||||||
"min_version": "3.0.1",
|
|
||||||
"package": "Catch2",
|
|
||||||
"patches": [
|
"patches": [
|
||||||
"0001-solaris-isnan-fix.patch"
|
"0001-clang-cl.patch"
|
||||||
],
|
]
|
||||||
"repo": "catchorg/Catch2",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "3.13.0"
|
|
||||||
},
|
|
||||||
"cpp-jwt": {
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"hash": "d11cbd5ddb3197b4c5ca15679bcd76a49963e7b530b7dd132db91e042925efa20dfb2c24ccfbe7ef82a7012af80deff0f72ee25851312ae80381a462df8534b8",
|
|
||||||
"min_version": "1.4",
|
|
||||||
"options": [
|
|
||||||
"CPP_JWT_USE_VENDORED_NLOHMANN_JSON OFF"
|
|
||||||
],
|
|
||||||
"patches": [
|
|
||||||
"0001-fix-missing-decl.patch"
|
|
||||||
],
|
|
||||||
"repo": "arun11299/cpp-jwt",
|
|
||||||
"sha": "7f24eb4c32",
|
|
||||||
"version": "1.5.1"
|
|
||||||
},
|
|
||||||
"cubeb": {
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"hash": "8a4bcb2f83ba590f52c66626e895304a73eb61928dbc57777e1822e55378e3568366f17f9da4b80036cc2ef4ea9723c32abf6e7d9bbe00fb03654f0991596ab0",
|
|
||||||
"options": [
|
|
||||||
"USE_SANITIZERS OFF",
|
|
||||||
"BUILD_TESTS OFF",
|
|
||||||
"BUILD_TOOLS OFF",
|
|
||||||
"BUNDLE_SPEEX ON"
|
|
||||||
],
|
|
||||||
"repo": "mozilla/cubeb",
|
|
||||||
"sha": "fa02160712",
|
|
||||||
"version": "0.0.0"
|
|
||||||
},
|
|
||||||
"discord-rpc": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "8213c43dcb0f7d479f5861091d111ed12fbdec1e62e6d729d65a4bc181d82f48a35d5fd3cd5c291f2393ac7c9681eabc6b76609755f55376284c8a8d67e148f3",
|
|
||||||
"package": "DiscordRPC",
|
|
||||||
"repo": "eden-emulator/discord-rpc",
|
|
||||||
"sha": "0d8b2d6a37",
|
|
||||||
"version": "3.4.1"
|
|
||||||
},
|
|
||||||
"enet": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "a0d2fa8c957704dd49e00a726284ac5ca034b50b00d2b20a94fa1bbfbb80841467834bfdc84aa0ed0d6aab894608fd6c86c3b94eee46343f0e6d9c22e391dbf9",
|
|
||||||
"min_version": "1.3",
|
|
||||||
"repo": "lsalzman/enet",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "1.3.18"
|
|
||||||
},
|
|
||||||
"ffmpeg": {
|
|
||||||
"bundled": true,
|
|
||||||
"hash": "ed177621176b3961bdcaa339187d3a7688c1c8b060b79c4bb0257cbc67ad7021ae5d5adca5303b45625abbbe3d9aafdd87ce777b8690ac295290d744c875489a",
|
|
||||||
"repo": "FFmpeg/FFmpeg",
|
|
||||||
"sha": "c7b5f1537d",
|
|
||||||
"version": "8.0.1"
|
|
||||||
},
|
|
||||||
"ffmpeg-ci": {
|
|
||||||
"ci": true,
|
|
||||||
"min_version": "4.1",
|
|
||||||
"name": "ffmpeg",
|
|
||||||
"package": "FFmpeg",
|
|
||||||
"repo": "crueter-ci/FFmpeg",
|
|
||||||
"version": "8.0.1-c7b5f1537d"
|
|
||||||
},
|
},
|
||||||
"fmt": {
|
"fmt": {
|
||||||
"hash": "f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2",
|
|
||||||
"min_version": "8",
|
|
||||||
"repo": "fmtlib/fmt",
|
"repo": "fmtlib/fmt",
|
||||||
"tag": "%VERSION%",
|
"tag": "%VERSION%",
|
||||||
"version": "12.1.0"
|
"hash": "f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2",
|
||||||
},
|
"version": "8",
|
||||||
"frozen": {
|
"git_version": "12.1.0"
|
||||||
"hash": "b8dfe741c82bc178dfc9749d4ab5a130cee718d9ee7b71d9b547cf5f7f23027ed0152ad250012a8546399fcc1e12187efc68d89d6731256c4d2df7d04eef8d5c",
|
|
||||||
"package": "frozen",
|
|
||||||
"repo": "serge-sans-paille/frozen",
|
|
||||||
"sha": "61dce5ae18",
|
|
||||||
"version": "1.2.0"
|
|
||||||
},
|
|
||||||
"gamemode": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "e87ec14ed3e826d578ebf095c41580069dda603792ba91efa84f45f4571a28f4d91889675055fd6f042d7dc25b0b9443daf70963ae463e38b11bcba95f4c65a9",
|
|
||||||
"min_version": "1.7",
|
|
||||||
"repo": "FeralInteractive/gamemode",
|
|
||||||
"sha": "ce6fe122f3",
|
|
||||||
"version": "1.8.2"
|
|
||||||
},
|
|
||||||
"httplib": {
|
|
||||||
"find_args": "MODULE GLOBAL",
|
|
||||||
"hash": "159ed94965018f2a371d45a3bfc1961e5fb1549e501ded70a6b4532d7fe99d0579c18b5195aff6e35f96f399b426cea2650ec9fb75ef80d4c9edeccb51f2e6c9",
|
|
||||||
"options": [
|
|
||||||
"HTTPLIB_REQUIRE_OPENSSL ON",
|
|
||||||
"HTTPLIB_DISABLE_MACOSX_AUTOMATIC_ROOT_CERTIFICATES ON"
|
|
||||||
],
|
|
||||||
"patches": [
|
|
||||||
"0001-mingw.patch"
|
|
||||||
],
|
|
||||||
"repo": "yhirose/cpp-httplib",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "0.46.0"
|
|
||||||
},
|
|
||||||
"lagoon": {
|
|
||||||
"hash": "b9380f99c6effaeccc6d8f81d4942e852c11ad28613df637e155451556ae5826f93765bee57a5c87a9740d2bd1db463ad0f55a947772fe9d57eeabae3efa373e",
|
|
||||||
"repo": "loongson-community/lagoon",
|
|
||||||
"tag": "%VERSION%",
|
|
||||||
"version": "1.0.0"
|
|
||||||
},
|
|
||||||
"libadrenotools": {
|
|
||||||
"hash": "f6526620cb752876edc5ed4c0925d57b873a8218ee09ad10859ee476e9333259784f61c1dcc55a2bcba597352d18aff22cd2e4c1925ec2ae94074e09d7da2265",
|
|
||||||
"patches": [
|
|
||||||
"0001-linkerns-cpm.patch"
|
|
||||||
],
|
|
||||||
"repo": "eden-emulator/libadrenotools",
|
|
||||||
"sha": "8ba23b42d7",
|
|
||||||
"version": "1.0.0"
|
|
||||||
},
|
|
||||||
"libusb": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "98c5f7940ff06b25c9aa65aa98e23de4c79a4c1067595f4c73cc145af23a1c286639e1ba11185cd91bab702081f307b973f08a4c9746576dc8d01b3620a3aeb5",
|
|
||||||
"patches": [
|
|
||||||
"0001-netbsd-gettime.patch"
|
|
||||||
],
|
|
||||||
"repo": "libusb/libusb",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "1.0.29"
|
|
||||||
},
|
|
||||||
"llvm-mingw": {
|
|
||||||
"artifact": "clang-rt-builtins.tar.zst",
|
|
||||||
"git_host": "git.eden-emu.dev",
|
|
||||||
"hash": "d902392caf94e84f223766e2cc51ca5fab6cae36ab8dc6ef9ef6a683ab1c483bfcfe291ef0bd38ab16a4ecc4078344fa8af72da2f225ab4c378dee23f6186181",
|
|
||||||
"repo": "eden-emu/llvm-mingw",
|
|
||||||
"tag": "%VERSION%",
|
|
||||||
"version": "20250828"
|
|
||||||
},
|
},
|
||||||
"lz4": {
|
"lz4": {
|
||||||
"hash": "35c21a5d9cfb5bbf314a5321d02b36819491d2ee3cf8007030ca09d13ca4dae672247b7aeab553e973093604fc48221cb03dc92197c6efe8fc3746891363fdab",
|
|
||||||
"name": "lz4",
|
"name": "lz4",
|
||||||
"repo": "lz4/lz4",
|
"repo": "lz4/lz4",
|
||||||
"sha": "ebb370ca83",
|
"sha": "ebb370ca83",
|
||||||
"source_subdir": "build/cmake",
|
"hash": "35c21a5d9cfb5bbf314a5321d02b36819491d2ee3cf8007030ca09d13ca4dae672247b7aeab553e973093604fc48221cb03dc92197c6efe8fc3746891363fdab",
|
||||||
"version": "1.10.0"
|
"source_subdir": "build/cmake"
|
||||||
},
|
|
||||||
"moltenvk": {
|
|
||||||
"artifact": "MoltenVK-macOS.tar",
|
|
||||||
"bundled": true,
|
|
||||||
"hash": "5695b36ca5775819a71791557fcb40a4a5ee4495be6b8442e0b666d0c436bec02aae68cc6210183f7a5c986bdbec0e117aecfad5396e496e9c2fd5c89133a347",
|
|
||||||
"repo": "V380-Ori/Ryujinx.MoltenVK",
|
|
||||||
"tag": "v%VERSION%-ryujinx",
|
|
||||||
"version": "1.4.1"
|
|
||||||
},
|
},
|
||||||
"nlohmann": {
|
"nlohmann": {
|
||||||
"hash": "6cc1e86261f8fac21cc17a33da3b6b3c3cd5c116755651642af3c9e99bb3538fd42c1bd50397a77c8fb6821bc62d90e6b91bcdde77a78f58f2416c62fc53b97d",
|
|
||||||
"min_version": "3.8",
|
|
||||||
"package": "nlohmann_json",
|
"package": "nlohmann_json",
|
||||||
"repo": "nlohmann/json",
|
"repo": "nlohmann/json",
|
||||||
"tag": "v%VERSION%",
|
"tag": "v%VERSION%",
|
||||||
"version": "3.12.0"
|
"hash": "6cc1e86261f8fac21cc17a33da3b6b3c3cd5c116755651642af3c9e99bb3538fd42c1bd50397a77c8fb6821bc62d90e6b91bcdde77a78f58f2416c62fc53b97d",
|
||||||
},
|
"version": "3.8",
|
||||||
"oaknut": {
|
"git_version": "3.12.0"
|
||||||
"hash": "9697e80a7d5d9bcb3ce51051a9a24962fb90ca79d215f1f03ae6b58da8ba13a63b5dda1b4dde3d26ac6445029696b8ef2883f4e5a777b342bba01283ed293856",
|
|
||||||
"min_version": "2.0.1",
|
|
||||||
"repo": "eden-emulator/oaknut",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "2.0.3"
|
|
||||||
},
|
|
||||||
"oboe": {
|
|
||||||
"bundled": true,
|
|
||||||
"hash": "ce4011afe7345370d4ead3b891cd69a5ef224b129535783586c0ca75051d303ed446e6c7f10bde8da31fff58d6e307f1732a3ffd03b249f9ef1fd48fd4132715",
|
|
||||||
"repo": "google/oboe",
|
|
||||||
"tag": "%VERSION%",
|
|
||||||
"version": "1.10.0"
|
|
||||||
},
|
|
||||||
"openssl": {
|
|
||||||
"hash": "29002ce50cb95a4f4f1d0e9d3f684401fbd4eac34203dc2eef3b6334af5d44aa46bf788b63a6f5c139c383eafb7269ae87a58a9a3ad5912903b9773e545ccc0a",
|
|
||||||
"min_version": "3.0.0",
|
|
||||||
"package": "OpenSSL",
|
|
||||||
"patches": [
|
|
||||||
"0001-add-bundled-cert.patch"
|
|
||||||
],
|
|
||||||
"repo": "openssl/openssl",
|
|
||||||
"tag": "openssl-%VERSION%",
|
|
||||||
"version": "3.6.2"
|
|
||||||
},
|
|
||||||
"openssl-ci": {
|
|
||||||
"ci": true,
|
|
||||||
"min_version": "3.0.0",
|
|
||||||
"name": "openssl",
|
|
||||||
"package": "OpenSSL",
|
|
||||||
"repo": "crueter-ci/OpenSSL",
|
|
||||||
"version": "4.0.0-11b7b6ea3b"
|
|
||||||
},
|
|
||||||
"openssl-cmake": {
|
|
||||||
"bundled": true,
|
|
||||||
"hash": "2cc185c924fd70e7d886257ca0caa42b3b8f7f712f2052b4f94dde74759e27022de76178460e18c9bdfc57c366583999e198fbb6052d4e7d91c099d15a0ca63e",
|
|
||||||
"options": [
|
|
||||||
"OPENSSL_CONFIGURE_OPTIONS threads"
|
|
||||||
],
|
|
||||||
"patches": [
|
|
||||||
"0001-cpmutil-compat.patch",
|
|
||||||
"0002-use-ccache.patch",
|
|
||||||
"0003-use-cmake-compiler-flags.patch",
|
|
||||||
"0004-use-shell-wrapper.patch"
|
|
||||||
],
|
|
||||||
"repo": "jimmy-park/openssl-cmake",
|
|
||||||
"tag": "%VERSION%",
|
|
||||||
"version": "3.6.2"
|
|
||||||
},
|
|
||||||
"opus": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "9506147b0de35befda8633ff272981cc2575c860874791bd455b752f797fd7dbd1079f0ba42ccdd7bb1fe6773fa5e84b3d75667c2883dd1fb2d0e4a5fa4f8387",
|
|
||||||
"min_version": "1.3",
|
|
||||||
"options": [
|
|
||||||
"OPUS_PRESUME_NEON ON"
|
|
||||||
],
|
|
||||||
"package": "Opus",
|
|
||||||
"patches": [
|
|
||||||
"0001-disable-clang-runtime-neon.patch",
|
|
||||||
"0002-no-install.patch"
|
|
||||||
],
|
|
||||||
"repo": "xiph/opus",
|
|
||||||
"sha": "a3f0ec02b3",
|
|
||||||
"version": "1.5.2"
|
|
||||||
},
|
|
||||||
"quazip": {
|
|
||||||
"hash": "609c240c7f029ac26a37d8fbab51bc16284e05e128b78b9b9c0e95d083538c36047a67d682759ac990e4adb0eeb90f04f1ea7fe2253bbda7e7e3bcce32e53dd8",
|
|
||||||
"min_version": "1.3",
|
|
||||||
"options": [
|
|
||||||
"QUAZIP_QT_MAJOR_VERSION 6",
|
|
||||||
"QUAZIP_INSTALL OFF",
|
|
||||||
"QUAZIP_ENABLE_QTEXTCODEC OFF",
|
|
||||||
"QUAZIP_BZIP2 OFF"
|
|
||||||
],
|
|
||||||
"package": "QuaZip-Qt6",
|
|
||||||
"repo": "stachenov/quazip",
|
|
||||||
"sha": "2e95c9001b",
|
|
||||||
"version": "1.5"
|
|
||||||
},
|
|
||||||
"sdl3": {
|
|
||||||
"hash": "df5a323af7ac366661a3c0e887969c72584d232f3cc211419d59b0487b620b6b2859d4549c9e8df002ee489290062e466fcfddf7edc0872a37b1f2845e81c0f3",
|
|
||||||
"min_version": "3.2.10",
|
|
||||||
"package": "SDL3",
|
|
||||||
"repo": "libsdl-org/SDL",
|
|
||||||
"tag": "release-%VERSION%",
|
|
||||||
"version": "3.4.8"
|
|
||||||
},
|
|
||||||
"sdl3-ci": {
|
|
||||||
"ci": true,
|
|
||||||
"min_version": "3.2.10",
|
|
||||||
"name": "SDL3",
|
|
||||||
"package": "SDL3",
|
|
||||||
"repo": "crueter-ci/SDL3",
|
|
||||||
"version": "3.4.8-d57c3b685c"
|
|
||||||
},
|
|
||||||
"simpleini": {
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "b937c18a7b6277d77ca7ebfb216af4984810f77af4c32d101b7685369a4bd5eb61406223f82698e167e6311a728d07415ab59639fdf19eff71ad6dc2abfda989",
|
|
||||||
"package": "SimpleIni",
|
|
||||||
"repo": "brofield/simpleini",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "4.25"
|
|
||||||
},
|
|
||||||
"sirit": {
|
|
||||||
"artifact": "sirit-source-%VERSION%.tar.zst",
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"options": [
|
|
||||||
"SIRIT_USE_SYSTEM_SPIRV_HEADERS ON"
|
|
||||||
],
|
|
||||||
"repo": "eden-emulator/sirit",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "1.0.5",
|
|
||||||
"hash": "10b3ff60bdcad428bb4f54360ff749212333a1d24c0b3ed99e466b1bfcf99d2db6cf596c0f965854a2095dfef9b7ce4e045edb070fa9f76eb3b295ab03a4a293"
|
|
||||||
},
|
|
||||||
"sirit-ci": {
|
|
||||||
"ci": true,
|
|
||||||
"name": "sirit",
|
|
||||||
"package": "sirit",
|
|
||||||
"repo": "eden-emulator/sirit",
|
|
||||||
"version": "1.0.5"
|
|
||||||
},
|
|
||||||
"spirv-headers": {
|
|
||||||
"hash": "cae8cd179c9013068876908fecc1d158168310ad6ac250398a41f0f5206ceff6469e2aaeab9c820bce9d1b08950c725c89c46e94b89a692be9805432cf749396",
|
|
||||||
"options": [
|
|
||||||
"SPIRV_WERROR OFF"
|
|
||||||
],
|
|
||||||
"package": "SPIRV-Headers",
|
|
||||||
"repo": "KhronosGroup/SPIRV-Headers",
|
|
||||||
"sha": "04f10f650d"
|
|
||||||
},
|
|
||||||
"tzdb": {
|
|
||||||
"artifact": "%VERSION%.tar.gz",
|
|
||||||
"git_host": "git.eden-emu.dev",
|
|
||||||
"hash": "cce65a12bf90f4ead43b24a0b95dfad77ac3d9bfbaaf66c55e6701346e7a1e44ca5d2f23f47ee35ee02271eb1082bf1762af207aad9fb236f1c8476812d008ed",
|
|
||||||
"package": "nx_tzdb",
|
|
||||||
"repo": "eden-emu/tzdb_to_nx",
|
|
||||||
"tag": "%VERSION%",
|
|
||||||
"version": "230326"
|
|
||||||
},
|
|
||||||
"unordered-dense": {
|
|
||||||
"bundled": true,
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"hash": "d2106f6640f6bfb81755e4b8bfb64982e46ec4a507cacdb38f940123212ccf35a20b43c70c6f01d7bfb8c246d1a16f7845d8052971949cea9def1475e3fa02c8",
|
|
||||||
"package": "unordered_dense",
|
|
||||||
"patches": [
|
|
||||||
"0001-avoid-memset-when-clearing-an-empty-table.patch"
|
|
||||||
],
|
|
||||||
"repo": "martinus/unordered_dense",
|
|
||||||
"sha": "7b55cab841",
|
|
||||||
"version": "4.8.1"
|
|
||||||
},
|
|
||||||
"vulkan-headers": {
|
|
||||||
"hash": "d2846ea228415772645eea4b52a9efd33e6a563043dd3de059e798be6391a8f0ca089f455ae420ff22574939ed0f48ed7c6ff3d5a9987d5231dbf3b3f89b484b",
|
|
||||||
"min_version": "1.4.317",
|
|
||||||
"package": "VulkanHeaders",
|
|
||||||
"repo": "KhronosGroup/Vulkan-Headers",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "1.4.345"
|
|
||||||
},
|
|
||||||
"vulkan-memory-allocator": {
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"hash": "deb5902ef8db0e329fbd5f3f4385eb0e26bdd9f14f3a2334823fb3fe18f36bc5d235d620d6e5f6fe3551ec3ea7038638899db8778c09f6d5c278f5ff95c3344b",
|
|
||||||
"package": "VulkanMemoryAllocator",
|
|
||||||
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "3.3.0"
|
|
||||||
},
|
|
||||||
"vulkan-utility-libraries": {
|
|
||||||
"hash": "114f6b237a6dcba923ccc576befb5dea3f1c9b3a30de7dc741f234a831d1c2d52d8a224afb37dd57dffca67ac0df461eaaab6a5ab5e503b393f91c166680c3e1",
|
|
||||||
"package": "VulkanUtilityLibraries",
|
|
||||||
"repo": "KhronosGroup/Vulkan-Utility-Libraries",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "1.4.345"
|
|
||||||
},
|
|
||||||
"vulkan-validation-layers": {
|
|
||||||
"artifact": "android-binaries-%VERSION%.zip",
|
|
||||||
"hash": "8812ae84cbe49e6a3418ade9c458d3be6d74a3dffd319d4502007b564d580998056e8190414368ec11b27bc83993c7a0dad713c31bcc3d9553b51243efee3753",
|
|
||||||
"package": "VVL",
|
|
||||||
"repo": "KhronosGroup/Vulkan-ValidationLayers",
|
|
||||||
"tag": "vulkan-sdk-%VERSION%",
|
|
||||||
"version": "1.4.341.0"
|
|
||||||
},
|
|
||||||
"xbyak": {
|
|
||||||
"hash": "b6475276b2faaeb315734ea8f4f8bd87ededcee768961b39679bee547e7f3e98884d8b7851e176d861dab30a80a76e6ea302f8c111483607dde969b4797ea95a",
|
|
||||||
"package": "xbyak",
|
|
||||||
"repo": "herumi/xbyak",
|
|
||||||
"tag": "v%VERSION%",
|
|
||||||
"version": "7.35.2"
|
|
||||||
},
|
},
|
||||||
"zlib": {
|
"zlib": {
|
||||||
"hash": "16fea4df307a68cf0035858abe2fd550250618a97590e202037acd18a666f57afc10f8836cbbd472d54a0e76539d0e558cb26f059d53de52ff90634bbf4f47d4",
|
|
||||||
"min_version": "1.2",
|
|
||||||
"options": [
|
|
||||||
"ZLIB_BUILD_SHARED OFF",
|
|
||||||
"ZLIB_INSTALL OFF"
|
|
||||||
],
|
|
||||||
"package": "ZLIB",
|
"package": "ZLIB",
|
||||||
"repo": "madler/zlib",
|
"repo": "madler/zlib",
|
||||||
"tag": "v%VERSION%",
|
"tag": "v%VERSION%",
|
||||||
"version": "1.3.2"
|
"hash": "16fea4df307a68cf0035858abe2fd550250618a97590e202037acd18a666f57afc10f8836cbbd472d54a0e76539d0e558cb26f059d53de52ff90634bbf4f47d4",
|
||||||
|
"version": "1.2",
|
||||||
|
"git_version": "1.3.2",
|
||||||
|
"options": [
|
||||||
|
"ZLIB_BUILD_SHARED OFF",
|
||||||
|
"ZLIB_INSTALL OFF"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"zstd": {
|
"zstd": {
|
||||||
"find_args": "MODULE",
|
|
||||||
"hash": "cc5ad4b119a9c2ea57f0b71eeff01113bb506e0d17000159c5409cb8236d22e38c52d5e9e97e7947a4bf1b2dfc44b6c503ab2d9aedbd59458435c6a2849cb029",
|
|
||||||
"min_version": "1.5",
|
|
||||||
"options": [
|
|
||||||
"ZSTD_BUILD_SHARED OFF"
|
|
||||||
],
|
|
||||||
"repo": "facebook/zstd",
|
"repo": "facebook/zstd",
|
||||||
"sha": "b8d6101fba",
|
"sha": "b8d6101fba",
|
||||||
|
"hash": "cc5ad4b119a9c2ea57f0b71eeff01113bb506e0d17000159c5409cb8236d22e38c52d5e9e97e7947a4bf1b2dfc44b6c503ab2d9aedbd59458435c6a2849cb029",
|
||||||
|
"version": "1.5",
|
||||||
"source_subdir": "build/cmake",
|
"source_subdir": "build/cmake",
|
||||||
"version": "1.5.7"
|
"find_args": "MODULE",
|
||||||
|
"options": [
|
||||||
|
"ZSTD_BUILD_SHARED OFF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"opus": {
|
||||||
|
"package": "Opus",
|
||||||
|
"repo": "xiph/opus",
|
||||||
|
"sha": "a3f0ec02b3",
|
||||||
|
"hash": "9506147b0de35befda8633ff272981cc2575c860874791bd455b752f797fd7dbd1079f0ba42ccdd7bb1fe6773fa5e84b3d75667c2883dd1fb2d0e4a5fa4f8387",
|
||||||
|
"version": "1.3",
|
||||||
|
"find_args": "MODULE",
|
||||||
|
"options": [
|
||||||
|
"OPUS_PRESUME_NEON ON"
|
||||||
|
],
|
||||||
|
"patches": [
|
||||||
|
"0001-disable-clang-runtime-neon.patch",
|
||||||
|
"0002-no-install.patch"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"boost_headers": {
|
||||||
|
"repo": "boostorg/headers",
|
||||||
|
"sha": "95930ca8f5",
|
||||||
|
"hash": "8a07d7a6f0065587d3005a83481a794704ae22e773b9f336fbd89ed230aaa7b4c86c03edcbae30bba8b3e20839c3131eaa2dceac037ef811533ef4eadc53b15b",
|
||||||
|
"bundled": true
|
||||||
|
},
|
||||||
|
"llvm-mingw": {
|
||||||
|
"repo": "misc/llvm-mingw",
|
||||||
|
"git_host": "git.crueter.xyz",
|
||||||
|
"tag": "%VERSION%",
|
||||||
|
"version": "20250828",
|
||||||
|
"artifact": "clang-rt-builtins.tar.zst",
|
||||||
|
"hash": "d902392caf94e84f223766e2cc51ca5fab6cae36ab8dc6ef9ef6a683ab1c483bfcfe291ef0bd38ab16a4ecc4078344fa8af72da2f225ab4c378dee23f6186181"
|
||||||
|
},
|
||||||
|
"vulkan-validation-layers": {
|
||||||
|
"package": "VVL",
|
||||||
|
"repo": "KhronosGroup/Vulkan-ValidationLayers",
|
||||||
|
"tag": "vulkan-sdk-%VERSION%",
|
||||||
|
"git_version": "1.4.341.0",
|
||||||
|
"artifact": "android-binaries-%VERSION%.zip",
|
||||||
|
"hash": "8812ae84cbe49e6a3418ade9c458d3be6d74a3dffd319d4502007b564d580998056e8190414368ec11b27bc83993c7a0dad713c31bcc3d9553b51243efee3753"
|
||||||
|
},
|
||||||
|
"quazip": {
|
||||||
|
"package": "QuaZip-Qt6",
|
||||||
|
"repo": "stachenov/quazip",
|
||||||
|
"sha": "2e95c9001b",
|
||||||
|
"hash": "609c240c7f029ac26a37d8fbab51bc16284e05e128b78b9b9c0e95d083538c36047a67d682759ac990e4adb0eeb90f04f1ea7fe2253bbda7e7e3bcce32e53dd8",
|
||||||
|
"version": "1.3",
|
||||||
|
"git_version": "1.5",
|
||||||
|
"options": [
|
||||||
|
"QUAZIP_QT_MAJOR_VERSION 6",
|
||||||
|
"QUAZIP_INSTALL OFF",
|
||||||
|
"QUAZIP_ENABLE_QTEXTCODEC OFF"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
dist/72-eden-input.rules
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# Allow systemd-logind to manage user access to hidraw with this file
|
|
||||||
# On most systems, this file should be installed to /etc/udev/rules.d/72-eden-input.rules
|
|
||||||
# Consult your distro if this is not the case
|
|
||||||
|
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ENV{ID_INPUT_JOYSTICK}=="1", MODE="0660", TAG+="uaccess"
|
|
||||||
19
dist/72-yuzu-input.rules
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# Allow systemd-logind to manage user access to hidraw with this file
|
||||||
|
# On most systems, this file should be installed to /etc/udev/rules.d/72-yuzu-input.rules
|
||||||
|
# Consult your distro if this is not the case
|
||||||
|
|
||||||
|
# Switch Pro Controller (USB/Bluetooth)
|
||||||
|
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0660", TAG+="uaccess"
|
||||||
|
KERNEL=="hidraw*", KERNELS=="*057e:2009*", MODE="0660", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Joy-Con L (Bluetooth)
|
||||||
|
KERNEL=="hidraw*", KERNELS=="*057e:2006*", MODE="0660", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Joy-Con R (Bluetooth)
|
||||||
|
KERNEL=="hidraw*", KERNELS=="*057e:2007*", MODE="0660", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Joy-Con Charging Grip (USB)
|
||||||
|
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="200e", MODE="0660", TAG+="uaccess"
|
||||||
BIN
dist/Assets.car
vendored
366
dist/dev.eden_emu.eden.svg
vendored
|
|
@ -6,197 +6,133 @@
|
||||||
viewBox="0 0 512 512"
|
viewBox="0 0 512 512"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg7"
|
id="svg7"
|
||||||
sodipodi:docname="base.svg.2026_01_12_14_43_47.0.svg"
|
sodipodi:docname="saintpatrick2026_named.svg"
|
||||||
inkscape:version="1.4.2 (ebf0e94, 2025-05-08)"
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
inkscape:export-filename="base.svg.2026_01_12_14_43_47.0.svg"
|
xml:space="preserve"
|
||||||
|
inkscape:export-filename="dev.eden_emu.eden.png"
|
||||||
inkscape:export-xdpi="96"
|
inkscape:export-xdpi="96"
|
||||||
inkscape:export-ydpi="96"
|
inkscape:export-ydpi="96"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<metadata
|
||||||
|
id="metadata1">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
|
||||||
|
<dc:creator>
|
||||||
|
<cc:Agent>
|
||||||
|
<dc:title>Madeline_Dev</dc:title>
|
||||||
|
<dc:identifier>mailto:madelvidel@gmail.com</dc:identifier>
|
||||||
|
</cc:Agent>
|
||||||
|
</dc:creator>
|
||||||
|
<dc:date>2025</dc:date>
|
||||||
|
<dc:license
|
||||||
|
rdf:resource="https://www.gnu.org/licenses/gpl-3.0.html" />
|
||||||
|
<dc:rights>2025 Eden Emulator Project</dc:rights>
|
||||||
|
<dc:source>https://git.eden-emu.dev</dc:source>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
id="defs7">
|
id="defs7"><linearGradient
|
||||||
<linearGradient
|
id="swatch14"
|
||||||
id="linearGradient1"
|
inkscape:swatch="solid"><stop
|
||||||
inkscape:collect="always">
|
style="stop-color:#66003b;stop-opacity:1;"
|
||||||
<stop
|
|
||||||
style="stop-color:#ff2e88;stop-opacity:0.5;"
|
|
||||||
offset="0"
|
offset="0"
|
||||||
id="stop3" />
|
id="stop14" /></linearGradient><linearGradient
|
||||||
<stop
|
|
||||||
style="stop-color:#bf42f6;stop-opacity:0.5;"
|
|
||||||
offset="0.44631511"
|
|
||||||
id="stop4" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5da5ed;stop-opacity:0.5;"
|
|
||||||
offset="0.90088946"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient138"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff2e88;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop152" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#bf42f6;stop-opacity:1;"
|
|
||||||
offset="0.44971901"
|
|
||||||
id="stop137" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5da5ed;stop-opacity:1;"
|
|
||||||
offset="0.89793283"
|
|
||||||
id="stop138" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch37"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop37" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch28"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#252525;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop28" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch27"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000000;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop27" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch15"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop16" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient14"
|
|
||||||
inkscape:swatch="gradient">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop14" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop15" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch9"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop10" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch8"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop9" />
|
|
||||||
</linearGradient>
|
|
||||||
<rect
|
|
||||||
x="22.627417"
|
|
||||||
y="402.76802"
|
|
||||||
width="521.34025"
|
|
||||||
height="248.94868"
|
|
||||||
id="rect24" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient11"
|
id="linearGradient11"
|
||||||
inkscape:collect="always">
|
inkscape:collect="always"><stop
|
||||||
<stop
|
style="stop-color:#f6d512;stop-opacity:1;"
|
||||||
style="stop-color:#ff2e88;stop-opacity:1;"
|
|
||||||
offset="0"
|
offset="0"
|
||||||
id="stop11" />
|
id="stop11" /><stop
|
||||||
<stop
|
style="stop-color:#1d8e53;stop-opacity:1;"
|
||||||
style="stop-color:#bf42f6;stop-opacity:1;"
|
offset="0.99898213"
|
||||||
offset="0.44971901"
|
id="stop20" /><stop
|
||||||
id="stop154" />
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
<stop
|
offset="0.99898213"
|
||||||
style="stop-color:#5da5ed;stop-opacity:1;"
|
id="stop12" /></linearGradient><linearGradient
|
||||||
offset="0.89793283"
|
|
||||||
id="stop12" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient138"
|
|
||||||
id="linearGradient6"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.118028,0,0,1.116699,-46.314723,-42.388667)"
|
|
||||||
x1="270.39996"
|
|
||||||
y1="40.000019"
|
|
||||||
x2="270.39996"
|
|
||||||
y2="494.39996"
|
|
||||||
spreadMethod="pad" />
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath18">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle18"
|
|
||||||
cx="-246.8315"
|
|
||||||
cy="246.8338"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath22">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle22"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
xlink:href="#linearGradient11"
|
xlink:href="#linearGradient11"
|
||||||
id="linearGradient27"
|
id="linearGradient12"
|
||||||
|
x1="109.74531"
|
||||||
|
y1="106.54533"
|
||||||
|
x2="431.05463"
|
||||||
|
y2="427.85461"
|
||||||
gradientUnits="userSpaceOnUse"
|
gradientUnits="userSpaceOnUse"
|
||||||
gradientTransform="translate(-6.9401139e-5,-2.8678628)"
|
spreadMethod="reflect"
|
||||||
x1="256.00012"
|
gradientTransform="matrix(1.0945321,0,0,1.0945321,-39.661525,-35.159057)" /><filter
|
||||||
y1="102.94693"
|
inkscape:label="Light Contour"
|
||||||
x2="256.00012"
|
inkscape:menu="Image Paint and Draw"
|
||||||
y2="409.05307" />
|
inkscape:menu-tooltip="Uses vertical specular light to draw lines"
|
||||||
<clipPath
|
style="color-interpolation-filters:sRGB"
|
||||||
clipPathUnits="userSpaceOnUse"
|
id="filter11"
|
||||||
id="clipPath128">
|
x="-0.01907517"
|
||||||
<circle
|
y="-0.054959154"
|
||||||
style="fill:none;fill-opacity:1;stroke:#03ffff;stroke-width:0;stroke-dasharray:none;stroke-opacity:1"
|
width="1.0379885"
|
||||||
id="circle128"
|
height="1.1092314"><feGaussianBlur
|
||||||
cx="256"
|
in="SourceGraphic"
|
||||||
cy="256"
|
stdDeviation="0.38250006"
|
||||||
r="192" />
|
result="result3"
|
||||||
</clipPath>
|
id="feGaussianBlur9" /><feComponentTransfer
|
||||||
<linearGradient
|
result="result1"
|
||||||
inkscape:collect="always"
|
in="result3"
|
||||||
xlink:href="#linearGradient1"
|
id="feComponentTransfer9"><feFuncR
|
||||||
id="linearGradient2"
|
type="discrete"
|
||||||
x1="256"
|
tableValues="0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1"
|
||||||
y1="64"
|
id="feFuncR9" /><feFuncG
|
||||||
x2="256"
|
type="discrete"
|
||||||
y2="448"
|
tableValues="0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1"
|
||||||
gradientUnits="userSpaceOnUse"
|
id="feFuncG9" /><feFuncB
|
||||||
gradientTransform="matrix(1.3229974,0,0,1.3214002,-82.687336,-82.290326)" />
|
type="discrete"
|
||||||
</defs>
|
tableValues="0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1"
|
||||||
<sodipodi:namedview
|
id="feFuncB9" /></feComponentTransfer><feGaussianBlur
|
||||||
|
result="result5"
|
||||||
|
stdDeviation="0.01"
|
||||||
|
id="feGaussianBlur10" /><feBlend
|
||||||
|
in2="result5"
|
||||||
|
result="result6"
|
||||||
|
mode="lighten"
|
||||||
|
in="result5"
|
||||||
|
id="feBlend10" /><feColorMatrix
|
||||||
|
in="result6"
|
||||||
|
type="luminanceToAlpha"
|
||||||
|
result="result2"
|
||||||
|
id="feColorMatrix10" /><feSpecularLighting
|
||||||
|
surfaceScale="5"
|
||||||
|
result="result9"
|
||||||
|
specularExponent="20"
|
||||||
|
in="result2"
|
||||||
|
specularConstant="1"
|
||||||
|
id="feSpecularLighting10"><feDistantLight
|
||||||
|
azimuth="180"
|
||||||
|
elevation="90"
|
||||||
|
id="feDistantLight10" /></feSpecularLighting><feComposite
|
||||||
|
in2="result6"
|
||||||
|
operator="arithmetic"
|
||||||
|
in="result9"
|
||||||
|
k1="0.4"
|
||||||
|
k3="0.7"
|
||||||
|
result="result3"
|
||||||
|
id="feComposite10"
|
||||||
|
k2="0"
|
||||||
|
k4="0" /><feBlend
|
||||||
|
in2="result1"
|
||||||
|
in="result3"
|
||||||
|
mode="normal"
|
||||||
|
result="result8"
|
||||||
|
id="feBlend11" /><feComposite
|
||||||
|
in2="SourceGraphic"
|
||||||
|
in="result8"
|
||||||
|
operator="in"
|
||||||
|
result="result7"
|
||||||
|
id="feComposite11" /></filter></defs><sodipodi:namedview
|
||||||
id="namedview7"
|
id="namedview7"
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#000000"
|
bordercolor="#000000"
|
||||||
|
|
@ -205,26 +141,56 @@
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pagecheckerboard="0"
|
inkscape:pagecheckerboard="0"
|
||||||
inkscape:deskcolor="#d1d1d1"
|
inkscape:deskcolor="#d1d1d1"
|
||||||
inkscape:zoom="1.4142136"
|
inkscape:zoom="0.6363961"
|
||||||
inkscape:cx="261.62951"
|
inkscape:cx="172.06265"
|
||||||
inkscape:cy="230.87036"
|
inkscape:cy="122.56518"
|
||||||
inkscape:window-width="1920"
|
inkscape:window-width="1600"
|
||||||
inkscape:window-height="1008"
|
inkscape:window-height="849"
|
||||||
inkscape:window-x="1080"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="351"
|
inkscape:window-y="27"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="svg7" />
|
inkscape:current-layer="svg7"
|
||||||
<path
|
showguides="false" /><circle
|
||||||
id="path8-7"
|
style="fill:url(#linearGradient12);fill-opacity:1;stroke:#e4e4e4;stroke-width:14.0448;stroke-opacity:1;paint-order:stroke fill markers"
|
||||||
style="display:inline;mix-blend-mode:multiply;fill:url(#linearGradient6);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2);stroke-width:3.9666;stroke-dasharray:none;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
id="path8"
|
||||||
inkscape:label="Circle"
|
cx="256.2999"
|
||||||
d="M 256,2.2792898 A 254.0155,253.71401 0 0 0 150.68475,25.115202 c 19.54414,1.070775 38.74692,5.250294 51.56848,11.647658 14.14361,7.056691 28.63804,19.185961 39.4212,29.347551 h 40.60981 c 1.03847,-0.68139 2.10297,-1.36938 3.1938,-2.05957 5.45602,-15.78533 14.79164,-43.183497 19.49612,-57.0097682 A 254.0155,253.71401 0 0 0 256,2.2792898 Z m 61.57106,7.567234 -18.26098,46.1544672 c 7.79702,-4.13918 16.35655,-7.87447 25.20671,-10.87081 23.1229,-7.828433 43.96931,-10.170904 54.94058,-10.868226 A 254.0155,253.71401 0 0 0 317.57106,9.8465238 Z m 65.39277,26.4001532 c -9.68256,4.806644 -33.05532,16.642034 -55.68217,29.863734 H 424.4677 A 254.0155,253.71401 0 0 0 382.96383,36.246677 Z M 113.90698,45.690231 A 254.0155,253.71401 0 0 0 87.532302,66.110411 H 194.2739 c -1.47402,-0.80231 -2.35141,-1.25949 -2.35141,-1.25949 l 10.4496,-11.83348 -38.40568,7.01234 c 0,1e-5 -12.21537,-4.60266 -40.17313,-12.27223 -3.45336,-0.94731 -6.75329,-1.61824 -9.8863,-2.06732 z m -36.803618,30.18635 a 254.0155,253.71401 0 0 0 -34.88372,43.090929 h 59.976738 c 18.11461,-12.04145 40.14252,-22.882149 62.31266,-24.534159 52.93006,-3.9444 70.16538,1.86342 70.16538,1.86342 0,0 -4.612,-4.8206 -14.51938,-13.36656 -2.72366,-2.34942 -6.0844,-4.77373 -9.52455,-7.05363 z m 174.472868,0 c 4.57322,4.7186 7.29716,7.83565 7.29716,7.83565 0,0 3.53501,-3.18484 9.62532,-7.83565 z m 60.27649,0 c -21.56573,15.45339 -25.4703,27.979669 -25.4703,27.979669 0,0 54.83326,-19.215729 100.70543,-0.31228 11.63986,4.79661 21.58481,10.13159 29.94832,15.42354 h 52.74419 A 254.0155,253.71401 0 0 0 434.89664,75.876581 Z M 36.250648,128.73367 A 254.0155,253.71401 0 0 0 16.372095,171.82459 H 147.45478 c 1.45695,-2.5815 3.06539,-5.08648 4.83979,-7.48982 14.23694,-19.28301 27.92088,-30.0088 36.86047,-35.6011 h -30.25323 c -5.87346,0.93472 -12.04945,1.99094 -18.28166,3.16937 -30.12936,5.69727 -81.157618,22.78945 -81.157618,22.78945 0,0 11.47125,-12.39249 29.11369,-25.95882 z m 265.630492,0 c 33.48676,11.2434 52.42799,26.78443 62.7752,43.09092 h 130.97157 a 254.0155,253.71401 0 0 0 -19.87856,-43.09092 h -44.81136 c 14.85233,11.5863 21.59948,20.9854 21.59948,20.9854 0,0 -33.5226,-12.37087 -66.0646,-20.9854 z m -45.96641,16.27007 c -1.00419,0.0106 -10.12705,0.72026 -44.98966,20.64729 -3.12132,1.78406 -6.25434,3.86182 -9.37468,6.17356 h 41.81911 c 7.17181,-17.34774 12.64083,-26.82085 12.64083,-26.82085 0,0 -0.0287,-7.1e-4 -0.0957,0 z m 14.18088,0.0465 c 0,0 -3.31228,9.32762 -7.30492,26.77438 h 51.78554 C 287.6577,146.14158 270.09561,145.0502 270.09561,145.0502 Z M 13.152456,181.59075 A 254.0155,253.71401 0 0 0 3.927651,224.68167 H 134.1447 c 0.56161,-12.72411 2.67825,-28.50188 8.61499,-43.09092 z m 176.661504,0 c -14.27121,13.10564 -27.60733,29.58761 -37.56073,43.09092 h 73.3721 c 4.47018,-16.79061 9.35068,-31.26371 13.86562,-43.09092 z m 70.85787,0 c -2.41384,11.76417 -4.9032,26.20707 -6.94831,43.09092 H 360.4832 c -8.32133,-10.88917 -20.66988,-26.17008 -36.35141,-43.09092 z m 109.17313,0 c 6.63611,15.24089 6.92441,30.5373 5.57882,43.09092 h 132.64857 a 254.0155,253.71401 0 0 0 -9.22481,-43.09092 z M 2.90181,234.44783 A 254.0155,253.71401 0 0 0 1.984498,255.9933 254.0155,253.71401 0 0 0 2.90181,277.53876 h 211.89923 c 2.25762,-15.52555 5.14325,-29.93448 8.3385,-43.09093 h -77.8863 c -6.46396,9.27617 -10.33076,15.56549 -10.33076,15.56549 0,0 -0.82623,-6.14945 -0.9354,-15.56549 z m 249.72093,0 c -1.3692,13.09684 -2.4456,27.49209 -3.02068,43.09093 h 259.49613 a 254.0155,253.71401 0 0 0 0.91731,-21.54546 254.0155,253.71401 0 0 0 -0.91731,-21.54547 H 374.02584 c -0.445,2.5469 -0.90878,4.89768 -1.32817,7.01751 0,0 -1.69726,-2.53821 -4.94056,-7.01751 z M 3.927651,287.30493 a 254.0155,253.71401 0 0 0 9.224805,43.09091 H 214.04393 c -1.29238,-15.40742 -1.57503,-30.04388 -0.41861,-43.09091 z m 245.385009,0 c -0.30355,13.54349 -0.22032,27.92598 0.36951,43.09091 h 249.16537 a 254.0155,253.71401 0 0 0 9.22481,-43.09091 z M 16.369511,340.16201 a 254.0155,253.71401 0 0 0 19.878554,43.09091 H 221.4677 c -2.69781,-14.4523 -4.96108,-29.01285 -6.4832,-43.09091 z m 233.842379,0 c 1.15864,15.47765 3.81286,29.83979 7.51679,43.09091 h 218.02325 a 254.0155,253.71401 0 0 0 19.87856,-43.09091 z M 42.217052,393.01909 a 254.0155,253.71401 0 0 0 34.88372,43.09093 H 233.09561 c -3.40902,-13.67281 -6.76794,-28.2531 -9.73902,-43.09093 z m 218.490958,0 c 5.34985,16.15926 12.22007,30.51982 19.68733,43.09093 h 154.50389 a 254.0155,253.71401 0 0 0 34.88371,-43.09093 z M 87.529722,445.87618 a 254.0155,253.71401 0 0 0 166.229968,63.8208 c -3.67805,-12.0825 -10.85464,-35.49828 -18.18088,-63.8208 z m 199.010328,0 c 17.5887,26.43772 36.99259,43.60598 47.33592,51.61309 a 254.0155,253.71401 0 0 0 90.59431,-51.61309 z" />
|
cy="257.2999"
|
||||||
<path
|
r="248.67769" /><path
|
||||||
id="path27"
|
id="path15"
|
||||||
style="display:inline;mix-blend-mode:multiply;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient27);stroke-width:3;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
style="fill:#f3ffeb;fill-opacity:1;stroke:#ffffff;stroke-width:16.9642;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.33910036;paint-order:stroke fill markers"
|
||||||
d="m 318.98012,441.7375 c -9.87518,-6.73978 -64.39137,-49.0272 -67.68975,-127.81978 -3.69298,-88.21893 15.36468,-141.91029 15.36468,-141.91029 0,0 16.00378,0.99513 39.80316,26.53195 23.79939,25.53753 37.74965,46.43102 37.74965,46.43102 3.91262,-19.79992 12.84563,-66.32402 -60.72865,-87.55523 0,0 12.82326,-5.38883 39.3925,-3.81382 26.56907,1.57572 81.6822,21.93799 81.6822,21.93799 0,0 -14.79766,-20.63773 -49.47063,-34.94295 -34.67291,-14.30533 -76.1182,0.23644 -76.1182,0.23644 0,0 3.86959,-12.43127 27.22669,-26.38478 23.35718,-13.9537 49.27409,-26.501533 49.27409,-26.501533 0,0 -21.97854,-0.26548 -47.67725,8.44535 -6.68948,2.267506 -13.15863,5.094213 -19.05208,8.226563 l 16.05803,-40.634103 -4.4617,-1.89059 -5.1305,-0.95965 c 0,0 -11.24072,33.12428 -16.92051,49.576513 -12.13137,7.68489 -20.11005,14.87735 -20.11005,14.87735 0,0 -21.90573,-25.09227 -42.79668,-35.527803 -26.03412,-13.00525 -86.88249,-13.90359 -94.0044,10.401173 0,0 13.56804,-7.884703 34.70032,-2.080917 21.13214,5.803997 30.3644,9.287307 30.3644,9.287307 l 29.02989,-5.30681 -7.89811,8.95527 c 0,0 13.8496,7.21324 21.33822,13.68063 7.48859,6.46722 10.9757,10.11472 10.9757,10.11472 0,0 -13.02739,-4.39388 -53.03507,-1.40893 -40.00771,2.98473 -79.40016,45.60209 -79.40016,45.60209 0,0 38.57037,-12.93531 61.34393,-17.24677 22.77354,-4.31126 44.52166,-6.46757 44.52166,-6.46757 0,0 -17.23298,5.97003 -35.69792,31.00932 -18.46522,25.03987 -13.13146,64.83866 -13.13146,64.83866 0,0 29.33874,-47.7577 57.44675,-63.84249 28.10798,-16.08527 34.0799,-15.6238 34.0799,-15.6238 0,0 -22.56785,39.13486 -31.39017,101.98268 -8.03005,57.2039 26.77689,163.75449 31.1572,178.89699"
|
d="m 306.72111,24.233031 c 0,0 -11.98397,40.08696 -18.0546,60.431848 -12.96613,9.503601 -21.49377,18.397701 -21.49377,18.397701 0,0 -23.41313,-31.029398 -45.74145,-43.934598 -22.32833,-12.905201 -52.42065,-11.242483 -52.42065,-11.242483 0,0 -12.50052,4e-4 -27.63117,5.537132 -15.13066,5.536732 -21.27107,9.227888 -21.27107,9.227888 0,0 15.35165,-0.410529 37.93799,6.766716 22.58635,7.177243 32.45374,11.484796 32.45374,11.484796 l 31.02752,-6.562453 -8.44161,11.074275 c 0,0 14.80259,8.920284 22.80648,16.917787 8.0039,7.9975 11.73088,12.50812 11.73088,12.50812 0,0 -13.92373,-5.43341 -56.68427,-1.74226 -42.76055,3.69116 -84.86368,56.39265 -84.86368,56.39265 0,0 41.22428,-15.9958 65.5649,-21.32747 24.34062,-5.33166 47.58524,-7.9983 47.58524,-7.9983 0,0 -18.41865,7.3827 -38.15428,38.3474 -19.73564,30.96468 -14.0351,80.18128 -14.0351,80.18128 0,0 31.35774,-59.05848 61.39977,-78.94969 30.04203,-19.89124 36.182,-20.50642 36.182,-20.50642 0,0 -24.1209,48.39514 -33.55015,126.11445 -9.42924,77.71931 30.26089,207.72959 30.26089,207.72959 l 47.80367,-6.97298 c 0,0 -45.61041,-42.24281 -49.55753,-151.33695 -3.94713,-109.09413 16.66479,-174.30453 16.66479,-174.30453 0,0 17.10508,1.23039 42.54213,32.81027 25.43704,31.57987 40.34713,57.41795 40.34713,57.41795 0,0 9.65024,-51.26683 -11.4011,-74.64415 -21.05135,-23.3773 -53.50637,-33.62931 -53.50637,-33.62931 0,0 13.70573,-6.66419 42.10313,-4.71609 28.39738,1.94813 87.30278,27.12897 87.30278,27.12896 0,0 -15.8158,-25.5214 -52.87463,-43.21167 -37.05881,-17.69028 -81.35597,0.29238 -81.35597,0.29238 0,0 4.13589,-15.37277 29.10021,-32.628037 24.96432,-17.25527 56.907,-34.36427 56.907,-34.36427 0,0 -26.3595,1.160335 -55.20025,12.035504 -7.176,2.7059 -14.064,6.299542 -20.36309,10.173104 l 17.40574,-51.051762 z" /><path
|
||||||
sodipodi:nodetypes="cscsccscscscsccccccscscccscscscscscsc"
|
d="m 364.02341,369.59545 c -1.05628,0.0923 -4.67136,0.65996 -7.06652,1.09993 -1.73317,0.31934 -2.17946,0.41869 -2.99769,0.68125 -0.51326,0.15613 -0.62485,0.17032 -0.91495,0.0993 -0.43144,-0.10644 -2.3208,-0.2058 -4.86474,-0.26256 -4.47793,-0.10645 -6.76898,0.3761 -9.18647,1.91601 -1.68109,1.07865 -2.9754,2.40567 -4.18788,4.3075 -0.72897,1.14251 -0.92234,2.15729 -0.77357,4.17266 0.11901,1.59667 0.37935,2.58307 1.19757,4.54877 1.61417,3.84622 3.75641,6.6209 9.60302,12.41863 4.25482,4.22943 5.65324,5.72676 5.65324,6.07449 0,0.15612 -0.0298,0.17031 -0.40911,0.17031 -0.52812,0 -0.77362,-0.0993 -1.69599,-0.69545 -1.0711,-0.68834 -2.31333,-1.61087 -4.66389,-3.46302 -3.42913,-2.69661 -3.92749,-3.07982 -5.19948,-4.02364 -2.0307,-1.49024 -3.6374,-2.49082 -4.74571,-2.95209 -1.8968,-0.78769 -5.02097,-1.24895 -7.31945,-1.07864 -2.68526,0.20579 -4.72343,0.85866 -6.76156,2.16438 -1.98605,1.28445 -5.15484,4.17977 -5.58628,5.11648 -0.29009,0.62448 -0.46118,1.93022 -0.59505,4.4991 -0.11158,2.05794 -0.0373,3.37077 0.29011,5.40033 l 0.20083,1.24187 -0.45376,1.59667 c -0.70663,2.45535 -0.95956,4.18686 -1.04882,6.95444 -0.0819,2.76759 0.19338,4.45651 0.94467,5.90417 0.97445,1.85925 3.83081,4.98875 5.91358,6.46479 1.23478,0.87994 2.98284,1.48315 5.09534,1.7599 1.10831,0.14903 3.4663,0.12773 4.23992,-0.0355 1.02649,-0.21289 2.61833,-0.73092 3.39936,-1.10704 1.47284,-0.70253 3.91264,-2.36308 6.97727,-4.75455 4.66392,-3.63334 6.5235,-5.01713 7.28968,-5.40744 0.3868,-0.20579 0.51327,-0.23417 1.00417,-0.23417 0.49094,0 0.60253,0.0284 0.94471,0.21289 l 0.37936,0.21999 -1.78522,1.76698 c -8.50216,8.44468 -9.78157,9.89943 -11.44034,13.02184 -1.42817,2.69662 -2.41749,5.54225 -2.78942,8.01888 -0.23059,1.5825 -0.0892,4.59135 0.29753,6.03192 0.28267,1.06444 0.78846,2.24244 1.24966,2.87403 0.6546,0.90832 1.65877,2.09341 1.76292,2.09341 0.2901,0 1.77778,-1.12122 2.11996,-1.59668 0.14134,-0.1916 0.31243,-0.49673 0.37936,-0.67415 0.17852,-0.47546 0.20827,-1.52571 0.0744,-2.79596 -0.15619,-1.46186 -0.15619,-3.64754 -0.007,-4.48491 0.14877,-0.81607 0.60996,-2.44825 1.03396,-3.61204 0.78105,-2.18569 1.71829,-3.94559 3.35473,-6.31577 1.65877,-2.39857 4.64161,-6.0319 6.28548,-7.65697 0.66203,-0.65287 2.0456,-1.73151 2.12743,-1.66056 0.0297,0.0355 -0.61742,1.5683 -1.2199,2.85984 -0.41659,0.90123 -1.32407,2.62566 -2.13486,4.04493 -1.4505,2.54049 -1.98605,3.66882 -2.16458,4.55586 -0.29009,1.45476 -0.43143,3.34239 -0.43143,5.76934 0,2.12891 0.0147,2.48374 0.16362,3.40625 0.19341,1.15672 0.54301,2.77469 0.76619,3.49851 0.51322,1.67475 1.71084,3.49141 3.25803,4.94616 1.56209,1.47606 2.98283,2.16441 5.43008,2.63985 0.83307,0.15613 1.04881,0.16322 3.46631,0.0993 2.26129,-0.0639 2.98283,-0.23417 6.02513,-1.39088 1.74807,-0.66706 2.57372,-0.94382 3.64486,-1.22767 2.96051,-0.7806 5.22924,-0.9864 6.96983,-0.63158 0.78848,0.16322 0.7959,0.16322 1.07858,0.0284 0.15619,-0.0781 0.81822,-0.30515 1.46536,-0.50385 0.6546,-0.1987 1.4505,-0.49674 1.77778,-0.66705 2.14971,-1.09285 6.40453,-4.93907 7.26737,-6.57833 0.66945,-1.27735 1.17528,-3.87462 1.09345,-5.64871 -0.10415,-2.18568 -0.78103,-4.1017 -2.3059,-6.52156 -0.95956,-1.53281 -1.7555,-2.44825 -3.76387,-4.36426 -1.78521,-1.70313 -3.14646,-2.85984 -6.8136,-5.81901 -4.55235,-3.66173 -6.17394,-5.06681 -6.12187,-5.30809 0.0151,-0.071 0.0819,-0.11354 0.17109,-0.0993 0.27521,0.0497 1.85962,1.06446 6.00286,3.85334 4.28453,2.88111 6.06231,3.92428 7.81781,4.60554 3.94235,1.51151 8.04839,2.29922 11.44773,2.17857 1.95634,-0.0639 3.31758,-0.36901 4.85734,-1.08575 0.88516,-0.41157 2.40259,-1.3625 3.49606,-2.19986 1.07115,-0.81608 3.03487,-2.68952 3.51838,-3.34949 0.97443,-1.3412 1.65877,-3.95977 1.55462,-5.94674 -0.0595,-1.08575 -0.25287,-1.90184 -0.93723,-4.04494 -0.69179,-2.16438 -1.15298,-3.77526 -1.28684,-4.4636 -0.15624,-0.82319 -0.11901,-3.30691 0.0819,-4.8965 0.20827,-1.66764 0.28263,-4.11589 0.16362,-5.10938 -0.18594,-1.52571 -0.6397,-3.1153 -1.23476,-4.34298 -0.99674,-2.05794 -3.33244,-4.20814 -5.7276,-5.27968 -1.41332,-0.62449 -3.4961,-1.09994 -5.89127,-1.34831 -1.24965,-0.12065 -3.91264,-0.0497 -5.04324,0.14192 -1.815,0.30515 -4.71601,1.09994 -5.31849,1.44766 -0.80337,0.46836 -2.80432,2.24955 -7.21533,6.39382 -1.77778,1.67474 -3.8531,3.60496 -4.61181,4.28621 -1.24966,1.12832 -2.1051,1.79538 -2.19437,1.71022 -0.0967,-0.0993 1.34635,-2.19987 4.90939,-7.16023 4.95399,-6.89057 5.67552,-8.06147 6.44171,-10.41036 1.12318,-3.47012 0.052,-8.16082 -2.67041,-11.73029 -0.8852,-1.15671 -2.05303,-2.05085 -3.73412,-2.86694 -1.43561,-0.69544 -2.86379,-1.12122 -4.53745,-1.3554 -0.75872,-0.10644 -4.11344,-0.1987 -4.83498,-0.13482 z"
|
||||||
inkscape:label="MainOutline"
|
id="path1"
|
||||||
clip-path="url(#clipPath128)"
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00726536" /><path
|
||||||
transform="matrix(1.3229974,0,0,1.3214002,-82.687282,-82.278451)" />
|
d="m 83.20673,250.24331 c -1.05628,0.0923 -4.67136,0.65996 -7.06652,1.09993 -1.73317,0.31934 -2.17946,0.41869 -2.99769,0.68125 -0.51326,0.15613 -0.62485,0.17032 -0.91495,0.0993 -0.43144,-0.10644 -2.3208,-0.2058 -4.86474,-0.26256 -4.47793,-0.10645 -6.76898,0.3761 -9.18647,1.91601 -1.68109,1.07865 -2.9754,2.40567 -4.18788,4.3075 -0.72897,1.14251 -0.92234,2.15729 -0.77357,4.17266 0.11901,1.59667 0.37935,2.58307 1.19757,4.54877 1.61417,3.84622 3.75641,6.6209 9.60302,12.41863 4.25482,4.22943 5.65324,5.72676 5.65324,6.07449 0,0.15612 -0.0298,0.17031 -0.40911,0.17031 -0.52812,0 -0.77362,-0.0993 -1.69599,-0.69545 -1.0711,-0.68834 -2.31333,-1.61087 -4.66389,-3.46302 -3.42913,-2.69661 -3.92749,-3.07982 -5.19948,-4.02364 -2.0307,-1.49024 -3.6374,-2.49082 -4.74571,-2.95209 -1.8968,-0.78769 -5.02097,-1.24895 -7.31945,-1.07864 -2.68526,0.20579 -4.72343,0.85866 -6.76156,2.16438 -1.98605,1.28445 -5.15484,4.17977 -5.58628,5.11648 -0.29009,0.62448 -0.46118,1.93022 -0.59505,4.4991 -0.11158,2.05794 -0.0373,3.37077 0.29011,5.40033 l 0.20083,1.24187 -0.45376,1.59667 c -0.70663,2.45535 -0.95956,4.18686 -1.04882,6.95444 -0.0819,2.76759 0.19338,4.45651 0.94467,5.90417 0.97445,1.85925 3.83081,4.98875 5.91358,6.46479 1.23478,0.87994 2.98284,1.48315 5.09534,1.7599 1.10831,0.14903 3.4663,0.12773 4.23992,-0.0355 1.02649,-0.21289 2.61833,-0.73092 3.39936,-1.10704 1.47284,-0.70253 3.91264,-2.36308 6.97727,-4.75455 4.66392,-3.63334 6.5235,-5.01713 7.28968,-5.40744 0.3868,-0.20579 0.51327,-0.23417 1.00417,-0.23417 0.49094,0 0.60253,0.0284 0.94471,0.21289 l 0.37936,0.21999 -1.78522,1.76698 c -8.50216,8.44468 -9.78157,9.89943 -11.44034,13.02184 -1.42817,2.69662 -2.41749,5.54225 -2.78942,8.01888 -0.23059,1.5825 -0.0892,4.59135 0.29753,6.03192 0.28267,1.06444 0.78846,2.24244 1.24966,2.87403 0.6546,0.90832 1.65877,2.09341 1.76292,2.09341 0.2901,0 1.77778,-1.12122 2.11996,-1.59668 0.14134,-0.1916 0.31243,-0.49673 0.37936,-0.67415 0.17852,-0.47546 0.20827,-1.52571 0.0744,-2.79596 -0.15619,-1.46186 -0.15619,-3.64754 -0.007,-4.48491 0.14877,-0.81607 0.60996,-2.44825 1.03396,-3.61204 0.78105,-2.18569 1.71829,-3.94559 3.35473,-6.31577 1.65877,-2.39857 4.64161,-6.0319 6.28548,-7.65697 0.66203,-0.65287 2.0456,-1.73151 2.12743,-1.66056 0.0297,0.0355 -0.61742,1.5683 -1.2199,2.85984 -0.41659,0.90123 -1.32407,2.62566 -2.13486,4.04493 -1.4505,2.54049 -1.98605,3.66882 -2.16458,4.55586 -0.29009,1.45476 -0.43143,3.34239 -0.43143,5.76934 0,2.12891 0.0147,2.48374 0.16362,3.40625 0.19341,1.15672 0.54301,2.77469 0.76619,3.49851 0.51322,1.67475 1.71084,3.49141 3.25803,4.94616 1.56209,1.47606 2.98283,2.16441 5.43008,2.63985 0.83307,0.15613 1.04881,0.16322 3.46631,0.0993 2.26129,-0.0639 2.98283,-0.23417 6.02513,-1.39088 1.74807,-0.66706 2.57372,-0.94382 3.64486,-1.22767 2.96051,-0.7806 5.22924,-0.9864 6.96983,-0.63158 0.78848,0.16322 0.7959,0.16322 1.07858,0.0284 0.15619,-0.0781 0.81822,-0.30515 1.46536,-0.50385 0.6546,-0.1987 1.4505,-0.49674 1.77778,-0.66705 2.14971,-1.09285 6.40453,-4.93907 7.26737,-6.57833 0.66945,-1.27735 1.17528,-3.87462 1.09345,-5.64871 -0.10415,-2.18568 -0.78103,-4.1017 -2.3059,-6.52156 -0.95956,-1.53281 -1.7555,-2.44825 -3.76387,-4.36426 -1.78521,-1.70313 -3.14646,-2.85984 -6.8136,-5.81901 -4.55235,-3.66173 -6.17394,-5.06681 -6.12187,-5.30809 0.0151,-0.071 0.0819,-0.11354 0.17109,-0.0993 0.27521,0.0497 1.85962,1.06446 6.00286,3.85334 4.28453,2.88111 6.06231,3.92428 7.81781,4.60554 3.94235,1.51151 8.04839,2.29922 11.44773,2.17857 1.95634,-0.0639 3.31758,-0.36901 4.85734,-1.08575 0.88516,-0.41157 2.40259,-1.3625 3.49606,-2.19986 1.07115,-0.81608 3.03487,-2.68952 3.51838,-3.34949 0.97443,-1.3412 1.65877,-3.95977 1.55462,-5.94674 -0.0595,-1.08575 -0.25287,-1.90184 -0.93723,-4.04494 -0.69179,-2.16438 -1.15298,-3.77526 -1.28684,-4.4636 -0.15624,-0.82319 -0.11901,-3.30691 0.0819,-4.8965 0.20827,-1.66764 0.28263,-4.11589 0.16362,-5.10938 -0.18594,-1.52571 -0.6397,-3.1153 -1.23476,-4.34298 -0.99674,-2.05794 -3.33244,-4.20814 -5.7276,-5.27968 -1.41332,-0.62449 -3.4961,-1.09994 -5.89127,-1.34831 -1.24965,-0.12065 -3.91264,-0.0497 -5.04324,0.14192 -1.815,0.30515 -4.71601,1.09994 -5.31849,1.44766 -0.80337,0.46836 -2.80432,2.24955 -7.21533,6.39382 -1.77778,1.67474 -3.8531,3.60496 -4.61181,4.28621 -1.24966,1.12832 -2.1051,1.79538 -2.19437,1.71022 -0.0967,-0.0993 1.34635,-2.19987 4.90939,-7.16023 4.95399,-6.89057 5.67552,-8.06147 6.44171,-10.41036 1.12318,-3.47012 0.052,-8.16082 -2.67041,-11.73029 -0.8852,-1.15671 -2.05303,-2.05085 -3.73412,-2.86694 -1.43561,-0.69544 -2.86379,-1.12122 -4.53745,-1.3554 -0.75872,-0.10644 -4.11344,-0.1987 -4.83498,-0.13482 z"
|
||||||
</svg>
|
id="path1-9"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00726536" /><path
|
||||||
|
d="m 439.21947,248.58317 c -1.32752,0.12081 -5.87092,0.86387 -8.88113,1.43979 -2.17823,0.41802 -2.73912,0.54806 -3.76747,0.89175 -0.64506,0.20437 -0.7853,0.22295 -1.1499,0.12998 -0.54223,-0.13933 -2.91676,-0.26938 -6.11395,-0.34369 -5.62782,-0.13934 -8.50719,0.49231 -11.54547,2.50804 -2.11277,1.41194 -3.73945,3.14899 -5.26329,5.63847 -0.91615,1.49553 -1.15918,2.82387 -0.97221,5.46197 0.14957,2.09002 0.47676,3.38121 1.5051,5.9543 2.02866,5.03465 4.72101,8.66669 12.06898,16.25585 5.34741,5.53628 7.10493,7.49627 7.10493,7.95145 0,0.20436 -0.0375,0.22293 -0.51416,0.22293 -0.66374,0 -0.97228,-0.12998 -2.13151,-0.91034 -1.34614,-0.90103 -2.90737,-2.10861 -5.86153,-4.53305 -4.30969,-3.52984 -4.93603,-4.03145 -6.53465,-5.26691 -2.55217,-1.95071 -4.57145,-3.26045 -5.96436,-3.86425 -2.38388,-1.03107 -6.3103,-1.63487 -9.19901,-1.41193 -3.37482,0.26938 -5.93636,1.12398 -8.49786,2.83315 -2.49604,1.68134 -6.47855,5.47127 -7.02078,6.69742 -0.36459,0.81743 -0.57961,2.52664 -0.74785,5.88927 -0.14024,2.69383 -0.0469,4.4123 0.3646,7.06898 l 0.25241,1.6256 -0.57028,2.09002 c -0.8881,3.21403 -1.20598,5.48056 -1.31815,9.10329 -0.10293,3.62275 0.24303,5.83353 1.18725,7.7285 1.22468,2.43373 4.81452,6.53023 7.43213,8.46235 1.55185,1.15183 3.7488,1.94142 6.40377,2.30368 1.39291,0.19508 4.35641,0.16719 5.32868,-0.0464 1.29009,-0.27867 3.29069,-0.95677 4.27229,-1.44911 1.85104,-0.91959 4.91736,-3.09324 8.76896,-6.22365 5.86156,-4.756 8.19866,-6.56736 9.1616,-7.07828 0.48612,-0.26938 0.64507,-0.30652 1.26203,-0.30652 0.617,0 0.75725,0.0371 1.1873,0.27867 l 0.47677,0.28796 -2.24364,2.31295 c -10.68543,11.05401 -12.29338,12.95826 -14.37811,17.04546 -1.79491,3.52986 -3.03827,7.25475 -3.50571,10.49663 -0.28981,2.07148 -0.11211,6.01003 0.37392,7.89573 0.35526,1.39333 0.99094,2.93533 1.57057,3.76207 0.82269,1.18898 2.08473,2.74025 2.21562,2.74025 0.36459,0 2.2343,-1.46767 2.66435,-2.09004 0.17763,-0.2508 0.39265,-0.65021 0.47676,-0.88245 0.22437,-0.62238 0.26176,-1.99714 0.0935,-3.65989 -0.19629,-1.91355 -0.19629,-4.77458 -0.009,-5.87069 0.18698,-1.06823 0.7666,-3.20474 1.29948,-4.72813 0.98162,-2.86105 2.15954,-5.16473 4.21619,-8.26728 2.08473,-3.13971 5.83353,-7.89569 7.89953,-10.02289 0.83203,-0.8546 2.57089,-2.26653 2.67373,-2.17366 0.0373,0.0465 -0.77596,2.05289 -1.53315,3.7435 -0.52357,1.17971 -1.66408,3.43696 -2.68307,5.29478 -1.82298,3.32547 -2.49605,4.80245 -2.72043,5.96357 -0.36458,1.90426 -0.54221,4.37516 -0.54221,7.55201 0,2.78672 0.0185,3.25118 0.20563,4.45874 0.24308,1.51413 0.68245,3.63204 0.96294,4.57952 0.64501,2.19223 2.15017,4.57021 4.09466,6.47447 1.96322,1.93214 3.74879,2.83318 6.82447,3.45554 1.04699,0.20437 1.31814,0.21365 4.35643,0.12998 2.84196,-0.0837 3.74879,-0.30652 7.57232,-1.82065 2.19695,-0.87318 3.23462,-1.23545 4.58082,-1.60701 3.72074,-1.0218 6.57206,-1.29118 8.75961,-0.82673 0.99096,0.21366 1.00028,0.21366 1.35555,0.0371 0.1963,-0.10223 1.02833,-0.39944 1.84165,-0.65953 0.8227,-0.26009 1.82298,-0.65022 2.2343,-0.87316 2.70173,-1.43052 8.04915,-6.46519 9.13355,-8.61097 0.84136,-1.67203 1.47709,-5.07183 1.37424,-7.3941 -0.13089,-2.86103 -0.98159,-5.36908 -2.89803,-8.53665 -1.20597,-2.00643 -2.2063,-3.20474 -4.73039,-5.71278 -2.24364,-2.22938 -3.95444,-3.74349 -8.56327,-7.61702 -5.72135,-4.79316 -7.75934,-6.6324 -7.6939,-6.94823 0.019,-0.093 0.10293,-0.14863 0.21502,-0.12998 0.34588,0.0651 2.33715,1.39336 7.54434,5.04398 5.38475,3.77133 7.61905,5.13684 9.82534,6.02861 4.95471,1.97854 10.11514,3.00965 14.38739,2.85172 2.45871,-0.0837 4.1695,-0.48304 6.10466,-1.42124 1.11246,-0.53874 3.01955,-1.7835 4.39381,-2.87959 1.34621,-1.06825 3.81419,-3.52055 4.42187,-4.38445 1.22465,-1.75562 2.08472,-5.1833 1.95383,-7.78422 -0.0748,-1.42123 -0.31781,-2.48949 -1.17791,-5.29478 -0.86943,-2.83316 -1.44905,-4.94178 -1.61728,-5.84282 -0.19636,-1.07754 -0.14957,-4.3287 0.10293,-6.40946 0.26175,-2.18293 0.35521,-5.38765 0.20563,-6.68813 -0.23368,-1.99714 -0.80396,-4.07789 -1.55183,-5.68491 -1.25269,-2.69382 -4.18818,-5.50842 -7.19839,-6.91105 -1.77624,-0.81744 -4.39386,-1.43981 -7.40409,-1.76492 -1.57055,-0.15793 -4.91736,-0.0651 -6.33829,0.18577 -2.28107,0.39944 -5.92703,1.43981 -6.68423,1.89497 -1.00966,0.61308 -3.52444,2.94464 -9.06815,8.36945 -2.2343,2.19222 -4.84254,4.71885 -5.79608,5.6106 -1.57056,1.47696 -2.64567,2.35014 -2.75786,2.23867 -0.12153,-0.12999 1.69208,-2.87962 6.17007,-9.37268 6.22613,-9.01968 7.13294,-10.55238 8.09588,-13.62705 1.4116,-4.54234 0.0654,-10.68243 -3.35615,-15.35482 -1.11251,-1.51413 -2.58022,-2.68454 -4.693,-3.75281 -1.80426,-0.91031 -3.59918,-1.46765 -5.70262,-1.77419 -0.95355,-0.13933 -5.16973,-0.2601 -6.07655,-0.17649 z"
|
||||||
|
id="path1-1"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00931876" /><path
|
||||||
|
d="m 324.26695,283.12908 c -0.83436,0.0787 -3.6899,0.56207 -5.58184,0.93679 -1.36902,0.27198 -1.72154,0.3566 -2.36787,0.58021 -0.40542,0.13298 -0.49356,0.14506 -0.72272,0.0846 -0.34079,-0.0907 -1.83319,-0.17527 -3.84264,-0.22362 -3.53711,-0.0907 -5.34681,0.32032 -7.25638,1.63185 -1.32789,0.91866 -2.35026,2.04887 -3.308,3.66862 -0.57581,0.97307 -0.72855,1.83734 -0.61104,3.5538 0.094,1.35986 0.29964,2.19996 0.94596,3.87412 1.27502,3.27577 2.96718,5.63893 7.58541,10.57676 3.36087,3.60215 4.46548,4.87741 4.46548,5.17356 0,0.13297 -0.0236,0.14505 -0.32315,0.14505 -0.41716,0 -0.61108,-0.0846 -1.33966,-0.59231 -0.84606,-0.58625 -1.8273,-1.37195 -3.684,-2.9494 -2.70866,-2.29666 -3.10232,-2.62303 -4.10706,-3.42687 -1.60405,-1.26922 -2.87318,-2.12139 -3.74863,-2.51425 -1.49828,-0.67086 -3.96605,-1.06372 -5.78162,-0.91867 -2.12109,0.17527 -3.73103,0.73132 -5.34094,1.84337 -1.56877,1.09396 -4.0718,3.55984 -4.41259,4.35764 -0.22915,0.53185 -0.36429,1.64394 -0.47003,3.83181 -0.0881,1.75272 -0.0295,2.87083 0.22915,4.59939 l 0.15864,1.05768 -0.35842,1.35985 c -0.55818,2.0912 -0.75797,3.56589 -0.82846,5.923 -0.0647,2.35711 0.15274,3.79555 0.74619,5.0285 0.76971,1.58348 3.02595,4.24885 4.67113,5.50597 0.97534,0.74943 2.35613,1.26316 4.02479,1.49887 0.87545,0.12693 2.73803,0.10877 3.3491,-0.0302 0.81083,-0.1813 2.06822,-0.62251 2.68516,-0.94285 1.16338,-0.59832 3.09058,-2.01259 5.51133,-4.04938 3.68402,-3.09445 5.15289,-4.273 5.75811,-4.60543 0.30552,-0.17527 0.40543,-0.19943 0.79319,-0.19943 0.38779,0 0.47593,0.0241 0.74622,0.18132 l 0.29965,0.18735 -1.41013,1.5049 c -6.71585,7.19222 -7.72645,8.43121 -9.03671,11.09052 -1.12811,2.29668 -1.90957,4.72026 -2.20336,6.82956 -0.18214,1.34779 -0.0705,3.91039 0.23501,5.1373 0.22329,0.90657 0.62281,1.90985 0.98711,2.44777 0.51707,0.7736 1.31027,1.78292 1.39253,1.78292 0.22915,0 1.40427,-0.95492 1.67456,-1.35986 0.11164,-0.16318 0.24678,-0.42306 0.29964,-0.57417 0.14102,-0.40495 0.16452,-1.29942 0.0588,-2.38128 -0.12337,-1.24503 -0.12337,-3.10655 -0.006,-3.81973 0.11752,-0.69503 0.48181,-2.08513 0.81673,-3.07632 0.61695,-1.86152 1.35728,-3.36039 2.6499,-5.37905 1.31026,-2.04283 3.6664,-5.13728 4.96489,-6.52133 0.52293,-0.55603 1.61581,-1.47469 1.68045,-1.41427 0.0234,0.0302 -0.4877,1.3357 -0.96359,2.43569 -0.32907,0.76756 -1.04589,2.23623 -1.68633,3.44501 -1.14575,2.16368 -1.56877,3.12468 -1.7098,3.88015 -0.22914,1.23899 -0.34078,2.84667 -0.34078,4.91367 0,1.81315 0.0116,2.11536 0.12924,2.90105 0.15278,0.98516 0.42892,2.36316 0.60521,2.97963 0.40539,1.42635 1.35139,2.97357 2.57351,4.21257 1.2339,1.25713 2.35614,1.84339 4.28921,2.24832 0.65804,0.13298 0.82846,0.13901 2.73804,0.0846 1.78619,-0.0544 2.35613,-0.19944 4.75924,-1.18459 1.38079,-0.56813 2.03297,-0.80384 2.87906,-1.0456 2.33851,-0.66482 4.13057,-0.84009 5.50546,-0.5379 0.62282,0.13902 0.62868,0.13902 0.85197,0.0241 0.12337,-0.0665 0.64631,-0.25989 1.15748,-0.42912 0.51708,-0.16923 1.14576,-0.42306 1.40427,-0.56811 1.69805,-0.93077 5.05893,-4.20654 5.74048,-5.60268 0.5288,-1.08789 0.92836,-3.29995 0.86372,-4.81092 -0.0823,-1.8615 -0.61694,-3.49335 -1.82143,-5.55431 -0.75796,-1.30547 -1.38667,-2.08515 -2.97307,-3.71698 -1.41014,-1.45053 -2.48538,-2.43568 -5.38205,-4.95597 -3.5959,-3.11863 -4.87679,-4.31532 -4.83566,-4.52081 0.012,-0.0606 0.0647,-0.0967 0.13515,-0.0846 0.21738,0.0424 1.4689,0.90657 4.74165,3.28183 3.38434,2.45378 4.7886,3.34224 6.17527,3.92248 3.11406,1.28731 6.35741,1.9582 9.04254,1.85544 1.54531,-0.0544 2.62055,-0.31428 3.83681,-0.92471 0.69918,-0.35054 1.8978,-1.16042 2.76153,-1.87359 0.84609,-0.69505 2.39723,-2.29063 2.77916,-2.85272 0.7697,-1.14228 1.31026,-3.37248 1.22799,-5.06474 -0.047,-0.92472 -0.19974,-1.61977 -0.74032,-3.44502 -0.54644,-1.84337 -0.91073,-3.21533 -1.01647,-3.80159 -0.12341,-0.70109 -0.094,-2.81644 0.0647,-4.17027 0.16452,-1.42031 0.22326,-3.50544 0.12924,-4.35159 -0.14687,-1.29942 -0.50529,-2.65325 -0.97533,-3.69885 -0.78732,-1.75271 -2.63229,-3.58402 -4.52422,-4.49663 -1.11637,-0.53186 -2.76156,-0.9368 -4.6535,-1.14832 -0.9871,-0.10275 -3.09059,-0.0424 -3.98365,0.12086 -1.43366,0.2599 -3.72516,0.93681 -4.20107,1.23295 -0.63457,0.3989 -2.21512,1.91592 -5.69937,5.44552 -1.40427,1.42636 -3.04356,3.0703 -3.64286,3.65051 -0.98711,0.96097 -1.66282,1.5291 -1.73333,1.45657 -0.0764,-0.0846 1.06348,-1.8736 3.87792,-6.09827 3.91315,-5.86859 4.48308,-6.86583 5.08829,-8.86635 0.8872,-2.95544 0.0411,-6.95045 -2.10935,-9.9905 -0.69922,-0.98516 -1.62168,-1.74668 -2.94957,-2.44175 -1.13399,-0.59228 -2.26211,-0.95492 -3.58413,-1.15436 -0.59931,-0.0907 -3.2492,-0.16924 -3.81914,-0.11483 z"
|
||||||
|
id="path1-1-7"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00595914" /><path
|
||||||
|
d="m 166.59227,332.97105 c -4.12429,0.42662 -8.02317,1.5205 -12.83475,3.62077 l -1.10432,0.4813 -1.82543,-0.86416 c -4.62007,-2.20966 -8.27101,-3.06288 -12.59815,-2.94255 -2.32129,0.0656 -3.39176,0.21877 -5.27361,0.79853 -6.5131,1.97994 -11.32468,7.43841 -12.77834,14.50492 -1.09306,5.25064 -0.38311,11.54049 1.78042,15.98166 1.83677,3.75203 4.57499,6.79303 12.23748,13.62981 3.52702,3.15038 8.64287,8.10569 10.52472,10.18408 1.88177,2.10025 3.4481,3.98173 3.4481,4.17864 0,0.16407 -0.45069,0.63444 -0.60853,0.63444 -0.0563,0 -0.67604,-0.60163 -1.39724,-1.34547 -15.06588,-15.45661 -24.88064,-22.01991 -35.1236,-23.5076 -0.68745,-0.0985 -2.14102,-0.1422 -4.56374,-0.1422 -3.84253,0.0109 -4.92426,0.10938 -7.944252,0.76572 -8.237179,1.78303 -14.479919,6.60706 -16.485689,12.74376 -0.61971,1.90335 -0.75496,2.78941 -0.74371,5.14126 0,1.88148 0.0453,2.29715 0.31552,3.55512 0.56344,2.60345 1.63392,5.31628 3.15516,7.97443 0.61978,1.08295 0.61978,1.09388 0.43952,1.47674 -1.81426,4.14583 -2.91856,7.76658 -3.42567,11.33266 -0.2141,1.45486 -0.18027,4.80214 0.0563,6.06012 0.66479,3.52231 2.3438,6.26796 5.03694,8.21511 4.10171,2.96443 10.49088,3.83951 17.826601,2.45029 8.69921,-1.65182 21.45505,-7.90882 31.46141,-15.45662 5.4877,-4.14582 10.08527,-8.7292 12.39531,-12.3609 0.41686,-0.65633 0.67604,-0.82042 0.80004,-0.50319 0.15775,0.38286 -2.77206,3.87235 -5.58913,6.66176 -2.36637,2.34091 -4.15805,3.93798 -8.56403,7.61344 -1.82543,1.52051 -3.95521,3.32541 -4.73275,4.00362 -8.38368,7.30718 -11.56135,12.63435 -13.01501,21.81209 -0.29294,1.82677 -0.34927,5.15214 -0.12393,6.67266 0.5747,3.76301 1.84802,6.45398 4.11297,8.65264 1.94944,1.89241 4.19188,3.01914 7.21179,3.6098 1.44233,0.28442 4.48483,0.3938 6.26525,0.21885 3.39176,-0.33911 7.66249,-1.37836 11.1895,-2.73471 0.76629,-0.29538 0.94655,-0.28442 1.52125,0.0656 0.83387,0.51414 2.91849,1.57522 3.85378,1.96901 3.32418,1.40019 5.88215,1.99085 8.95839,2.07841 1.65643,0.044 2.18612,0.0216 3.32418,-0.16408 8.23718,-1.3674 13.97282,-7.91972 15.42647,-17.63342 0.54087,-3.56607 0.49578,-7.97443 -0.11267,-11.09198 -0.10143,-0.56885 0.10142,-0.51415 1.02539,0.27346 6.24274,5.30535 11.43744,9.37459 16.85755,13.18124 5.97223,4.21151 10.27679,6.92431 14.90812,9.38556 1.90434,1.01734 5.08202,2.58159 5.22852,2.58159 0.11268,0 0.18034,-0.12034 0.94655,-1.85964 1.44233,-3.22694 2.23112,-6.18042 2.23112,-8.39004 0,-0.85325 -0.16901,-2.06744 -0.32677,-2.30813 -0.0453,-0.0763 -0.66479,-0.22973 -1.38599,-0.35006 -10.26554,-1.67365 -20.51974,-7.02273 -32.14877,-16.7474 -2.58047,-2.15492 -3.93271,-3.36912 -3.97779,-3.56602 -0.0454,-0.18596 0.10143,-0.12033 1.48749,0.66723 7.15538,4.12403 16.1701,5.75384 22.91995,4.16776 2.71565,-0.63448 5.09327,-1.89241 6.83986,-3.59892 1.84802,-1.8049 2.97491,-3.92703 3.57211,-6.73831 0.28168,-1.3783 0.39443,-4.37555 0.20284,-6.03825 -0.3606,-3.28166 -1.35224,-7.05555 -2.76073,-10.54505 -0.21417,-0.53601 -0.39444,-1.07201 -0.39444,-1.19233 0,-0.13128 0.2141,-0.56883 0.48453,-0.98451 1.96069,-3.10663 3.29042,-6.43204 3.74112,-9.35272 0.1465,-0.95167 0.18033,-1.67364 0.13525,-2.95348 -0.0902,-2.3628 -0.42819,-3.74109 -1.43107,-5.7429 -4.13555,-8.29165 -16.74489,-12.40465 -30.80787,-10.05281 -4.91301,0.82041 -9.9951,3.06289 -15.61798,6.89147 -3.92146,2.66909 -7.29072,5.49131 -12.23748,10.23877 -1.80301,1.73929 -3.31293,3.1504 -3.35801,3.1504 -0.13526,0 0.3606,-0.62352 1.78043,-2.24247 2.20861,-2.505 3.56077,-3.89423 9.25132,-9.46211 5.43136,-5.30534 6.94136,-6.84772 8.50769,-8.69639 4.01155,-4.69276 6.41167,-9.36365 7.53856,-14.65806 1.64517,-7.76658 0.60845,-14.51585 -2.90724,-18.77106 -2.45654,-2.98631 -5.93847,-4.51775 -10.5473,-4.62714 -0.99155,-0.0219 -2.00577,-0.0219 -2.25362,0 z"
|
||||||
|
id="path1-2"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.0111024" /><path
|
||||||
|
d="m 465.56025,185.2456 c -0.9371,0.0986 -1.47259,0.23385 -2.432,0.62118 -1.53059,0.61754 -3.04333,1.57124 -4.03846,2.55052 -0.5444,0.52983 -1.4815,1.67354 -1.80279,2.19242 -0.22312,0.36175 -0.33468,0.90619 -0.51317,2.52859 -0.0937,0.82946 -0.13387,1.2643 -0.33915,3.59921 -0.19634,2.21435 -0.33021,3.3142 -0.41946,3.44212 -0.0714,0.106 -0.22757,-0.82218 -0.67382,-3.97194 -0.63812,-4.51274 -0.80322,-5.28374 -1.38334,-6.39822 -0.8657,-1.65162 -2.88269,-3.02554 -5.42178,-3.69057 -1.27179,-0.33251 -2.30706,-0.33982 -3.6904,-0.0292 -1.20484,0.27404 -2.23118,0.72349 -3.37355,1.49083 -1.02635,0.68697 -1.602,1.19121 -2.93624,2.56148 -1.25394,1.28623 -1.96345,2.07549 -2.22673,2.47378 -0.0893,0.13886 -0.1785,0.21559 -0.30791,0.27041 -0.22311,0.095 -0.3079,0.1498 -1.41011,0.88792 -1.22716,0.82581 -1.75372,1.20583 -2.2535,1.63701 -1.03526,0.89158 -1.57968,1.62238 -1.93221,2.60532 -0.23651,0.65772 -0.29452,1.01947 -0.29452,1.827 0.005,0.98659 0.13834,1.71739 0.40607,2.15224 0.22759,0.37636 1.04867,1.17293 1.61093,1.56756 0.87463,0.6139 2.75329,1.42144 4.13216,1.77955 1.81173,0.46771 3.55652,0.69789 7.45663,0.98655 3.1549,0.23386 4.33744,0.35079 4.65873,0.46043 l 0.15172,0.0512 -0.15172,0.13155 c -0.18742,0.15714 -0.415,0.21559 -1.15576,0.28502 -0.7943,0.0767 -1.86527,0.12425 -3.88226,0.16807 -3.71271,0.0804 -5.30578,0.18272 -6.47045,0.42022 -1.55737,0.31792 -3.56545,1.43604 -4.73013,2.63091 -1.22269,1.26066 -1.6957,2.38609 -1.94114,4.62235 -0.0893,0.78928 -0.0893,1.53834 0,1.77588 0.12049,0.33616 0.78985,1.15466 1.75372,2.14489 0.7006,0.7162 1.2227,1.16564 2.03039,1.73932 l 0.76753,0.54811 0.39714,0.69793 c 0.21866,0.38368 0.49534,0.84041 0.61582,1.01582 0.72737,1.0414 1.95452,2.36051 2.905,3.1242 0.89694,0.71983 1.52168,1.01581 2.67297,1.2643 1.55737,0.3398 3.95367,0.48599 4.9934,0.30326 1.19145,-0.2046 2.68635,-0.91716 3.79749,-1.80509 0.49978,-0.39828 1.01742,-1.00851 1.44134,-1.70644 0.52211,-0.85867 0.9371,-2.26182 1.51721,-5.1741 0.42838,-2.12665 0.69613,-3.29958 0.87016,-3.75634 0.17404,-0.45676 0.43286,-0.66868 0.91033,-0.74178 l 0.16956,-0.0254 -0.0268,0.30694 c -0.0357,0.40192 -0.18741,3.10593 -0.25434,4.52734 -0.058,1.20218 -0.0312,3.1242 0.0491,3.69057 0.19635,1.40679 0.81215,3.084 1.67339,4.56024 0.62919,1.07427 1.16021,1.68085 2.22672,2.54685 0.83001,0.67599 1.31195,0.98292 1.99024,1.26063 0.52655,0.21559 0.94155,0.32523 1.83849,0.47502 0.78092,0.13521 0.80323,0.13156 0.88355,-0.10588 0.0223,-0.0731 0.0848,-0.32156 0.13833,-0.55178 0.12496,-0.55542 0.0982,-0.76369 -0.14726,-1.16928 -0.16956,-0.28502 -0.24989,-0.36542 -1.02634,-0.99755 -1.36103,-1.11448 -1.72694,-1.50547 -2.26689,-2.41899 -1.24054,-2.09376 -1.70909,-3.80747 -1.94114,-7.08881 -0.11601,-1.6041 -0.0893,-2.96707 0.067,-3.54439 0.0893,-0.3435 0.0937,-0.34715 0.18741,-0.12792 0.46409,1.10352 0.79877,2.09743 1.19146,3.56269 0.53995,1.98414 0.65151,2.22164 1.602,3.33248 1.29855,1.52007 2.29812,2.41896 3.71269,3.33615 1.24501,0.80751 2.15534,1.17656 3.42265,1.38487 1.66893,0.27403 2.90054,0.14615 4.25264,-0.44217 0.70952,-0.31057 1.13791,-0.56269 1.43689,-0.84404 0.15172,-0.14251 0.44624,-0.37637 0.65597,-0.52256 0.81661,-0.55174 1.16467,-0.97196 2.15533,-2.59069 0.70952,-1.15469 1.16468,-1.7576 1.99468,-2.63091 0.62027,-0.6504 1.14683,-1.05236 1.76264,-1.352 l 0.53102,-0.25578 0.20973,-0.32887 c 0.11603,-0.18269 0.3213,-0.48598 0.46409,-0.67599 0.415,-0.56637 0.60689,-1.04871 0.80769,-2.02432 0.18742,-0.92446 0.26329,-1.65893 0.26329,-2.5615 -0.005,-1.02677 -0.0402,-1.16928 -0.52656,-1.97315 -1.02635,-1.69184 -2.28921,-2.65285 -4.35529,-3.31788 -1.01742,-0.32521 -1.91881,-0.51521 -2.96748,-0.62482 -1.35656,-0.14252 -1.72694,-0.14983 -6.69357,-0.14983 -2.75774,0 -4.89076,-0.0145 -4.92646,-0.0329 -0.0491,-0.0254 -0.0491,-0.0365 0.005,-0.0621 0.1428,-0.0658 1.16021,-0.17174 3.94028,-0.41655 3.67253,-0.32521 4.65426,-0.4604 5.84571,-0.82215 1.91883,-0.57735 3.35571,-1.20949 4.864,-2.1376 1.70909,-1.05239 2.5614,-1.99877 3.07904,-3.42018 0.34806,-0.94275 0.60242,-2.36781 0.60242,-3.32152 -0.005,-0.76369 -0.12049,-1.15833 -0.58011,-1.91836 -0.6649,-1.09621 -1.36549,-1.73567 -2.61942,-2.40071 -0.35252,-0.18635 -1.1513,-0.61388 -1.77156,-0.95004 -1.60646,-0.86236 -2.02592,-1.20583 -3.22184,-2.6236 -0.67829,-0.8112 -1.13345,-1.28988 -1.63322,-1.74297 -1.17807,-1.05967 -2.6462,-1.78682 -4.09647,-2.02433 -0.49532,-0.0841 -1.75818,-0.12059 -2.27581,-0.0695 z"
|
||||||
|
id="path1-3-3"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00403802" /><path
|
||||||
|
d="m 129.33803,187.58044 c -0.9371,0.10563 -1.47259,0.25052 -2.432,0.66548 -1.53059,0.66158 -3.04333,1.6833 -4.03846,2.73242 -0.5444,0.56761 -1.4815,1.79289 -1.80279,2.34878 -0.22312,0.38755 -0.33468,0.97082 -0.51317,2.70892 -0.0937,0.88862 -0.13387,1.35447 -0.33915,3.8559 -0.19634,2.37228 -0.33021,3.55057 -0.41946,3.68761 -0.0714,0.11356 -0.22757,-0.88082 -0.67382,-4.25521 -0.63812,-4.83459 -0.80322,-5.66057 -1.38334,-6.85453 -0.8657,-1.76942 -2.88269,-3.24132 -5.42178,-3.95378 -1.27179,-0.35622 -2.30706,-0.36406 -3.6904,-0.0313 -1.20484,0.29358 -2.23118,0.77509 -3.37355,1.59715 -1.02635,0.73596 -1.602,1.27617 -2.93624,2.74416 -1.25394,1.37796 -1.96345,2.22351 -2.22673,2.65021 -0.0893,0.14876 -0.178502,0.23096 -0.307912,0.28969 -0.22311,0.10178 -0.3079,0.16049 -1.41011,0.95125 -1.22716,0.8847 -1.75372,1.29183 -2.2535,1.75376 -1.03526,0.95516 -1.57968,1.73808 -1.93221,2.79112 -0.23651,0.70463 -0.29452,1.09218 -0.29452,1.9573 0.005,1.05695 0.13834,1.83987 0.40607,2.30574 0.22759,0.4032 1.04867,1.25658 1.61093,1.67935 0.87463,0.65769 2.75329,1.52282 4.132162,1.90647 1.81173,0.50106 3.55652,0.74766 7.45663,1.05691 3.1549,0.25054 4.33744,0.3758 4.65873,0.49326 l 0.15172,0.0549 -0.15172,0.14093 c -0.18742,0.16834 -0.415,0.23096 -1.15576,0.30534 -0.7943,0.0822 -1.86527,0.13312 -3.88226,0.18006 -3.71271,0.0861 -5.30578,0.19575 -6.47045,0.45019 -1.557372,0.34059 -3.565452,1.53846 -4.730132,2.81854 -1.22269,1.35057 -1.6957,2.55627 -1.94114,4.95201 -0.0893,0.84557 -0.0893,1.64805 0,1.90253 0.12049,0.36014 0.78985,1.23701 1.75372,2.29786 0.7006,0.76728 1.2227,1.24878 2.03039,1.86337 l 0.76753,0.5872 0.39714,0.74771 c 0.21866,0.41104 0.49534,0.90034 0.61582,1.08826 0.727372,1.11567 1.954522,2.52886 2.905002,3.34702 0.89694,0.77116 1.52168,1.08825 2.67297,1.35446 1.55737,0.36404 3.95367,0.52065 4.9934,0.32489 1.19145,-0.21919 2.68635,-0.98257 3.79749,-1.93382 0.49978,-0.42669 1.01742,-1.08044 1.44134,-1.82815 0.52211,-0.9199 0.9371,-2.42312 1.51721,-5.5431 0.42838,-2.27832 0.69613,-3.5349 0.87016,-4.02424 0.17404,-0.48934 0.43286,-0.71637 0.91033,-0.79468 l 0.16956,-0.0272 -0.0268,0.32883 c -0.0357,0.43058 -0.18741,3.32744 -0.25434,4.85022 -0.058,1.28792 -0.0312,3.34701 0.0491,3.95377 0.19635,1.50712 0.81215,3.30395 1.67339,4.88547 0.62919,1.15089 1.16021,1.80073 2.22672,2.72849 0.83001,0.7242 1.31195,1.05302 1.99024,1.35054 0.52655,0.23096 0.94155,0.34842 1.83849,0.50889 0.78092,0.14486 0.80323,0.14095 0.88355,-0.11343 0.0223,-0.0783 0.0848,-0.34449 0.13833,-0.59113 0.12496,-0.59503 0.0982,-0.81815 -0.14726,-1.25267 -0.16956,-0.30535 -0.24989,-0.39148 -1.02634,-1.06869 -1.36103,-1.19397 -1.72694,-1.61284 -2.26689,-2.59151 -1.24054,-2.24309 -1.70909,-4.07901 -1.94114,-7.59437 -0.11601,-1.71851 -0.0893,-3.17868 0.067,-3.79717 0.0893,-0.368 0.0937,-0.37191 0.18741,-0.13705 0.46409,1.18222 0.79877,2.24702 1.19146,3.81678 0.53995,2.12564 0.65151,2.38008 1.602,3.57014 1.29855,1.62848 2.29812,2.59148 3.71269,3.57408 1.24501,0.8651 2.15534,1.26047 3.42265,1.48364 1.66893,0.29357 2.90054,0.15657 4.25264,-0.4737 0.70952,-0.33272 1.13791,-0.60282 1.43689,-0.90424 0.15172,-0.15267 0.44624,-0.40321 0.65597,-0.55983 0.81661,-0.59109 1.16467,-1.04128 2.15533,-2.77545 0.70952,-1.23704 1.16468,-1.88295 1.99468,-2.81854 0.62027,-0.69679 1.14683,-1.12742 1.76264,-1.44843 l 0.53102,-0.27402 0.20973,-0.35232 c 0.11603,-0.19572 0.3213,-0.52064 0.46409,-0.7242 0.415,-0.60677 0.60689,-1.12351 0.80769,-2.1687 0.18742,-0.99039 0.26329,-1.77724 0.26329,-2.74418 -0.005,-1.09999 -0.0402,-1.25267 -0.52656,-2.11387 -1.02635,-1.8125 -2.28921,-2.84205 -4.35529,-3.55451 -1.01742,-0.3484 -1.91881,-0.55195 -2.96748,-0.66938 -1.35656,-0.15268 -1.72694,-0.16051 -6.69357,-0.16051 -2.75774,0 -4.89076,-0.0155 -4.92646,-0.0353 -0.0491,-0.0272 -0.0491,-0.0391 0.005,-0.0665 0.1428,-0.0705 1.16021,-0.18399 3.94028,-0.44625 3.67253,-0.34841 4.65426,-0.49324 5.84571,-0.88079 1.91883,-0.61853 3.35571,-1.29575 4.864,-2.29005 1.70909,-1.12744 2.5614,-2.14132 3.07904,-3.6641 0.34806,-1.00999 0.60242,-2.53668 0.60242,-3.55841 -0.005,-0.81815 -0.12049,-1.24094 -0.58011,-2.05517 -0.6649,-1.17439 -1.36549,-1.85946 -2.61942,-2.57193 -0.35252,-0.19964 -1.1513,-0.65766 -1.77156,-1.01779 -1.60646,-0.92386 -2.02592,-1.29183 -3.22184,-2.81071 -0.67829,-0.86906 -1.13345,-1.38187 -1.63322,-1.86728 -1.17807,-1.13524 -2.6462,-1.91425 -4.09647,-2.1687 -0.49532,-0.0901 -1.75818,-0.12919 -2.27581,-0.0745 z"
|
||||||
|
id="path1-3-3-3"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00417953" /><path
|
||||||
|
d="m 181.97617,266.85651 c -0.67575,0.64029 -1.01388,1.06776 -1.53142,1.94677 -0.82591,1.402 -1.43323,3.05558 -1.61859,4.41795 -0.10501,0.74073 -0.14474,2.1965 -0.0812,2.79453 0.0449,0.41641 0.28862,0.90832 1.13586,2.28156 0.4312,0.70353 0.66429,1.06698 1.92402,3.01229 1.1934,1.84589 1.7576,2.78457 1.76538,2.93802 0.008,0.12563 -0.679,-0.50471 -2.94617,-2.69417 -3.24722,-3.13763 -3.84604,-3.63997 -4.97973,-4.16083 -1.68478,-0.76832 -4.10447,-0.62779 -6.50269,0.37974 -1.20085,0.50514 -2.01813,1.12178 -2.91522,2.19577 -0.77918,0.93815 -1.31147,1.90587 -1.74142,3.19138 -0.38776,1.15305 -0.53286,1.89258 -0.74653,3.76389 -0.20177,1.75747 -0.27852,2.79987 -0.24285,3.26893 0.0145,0.16203 -0.009,0.27552 -0.0772,0.3961 -0.11736,0.20827 -0.15058,0.30199 -0.56677,1.54057 -0.46093,1.38212 -0.64309,1.99519 -0.77308,2.63208 -0.27025,1.31807 -0.25296,2.21559 0.0684,3.19451 0.21449,0.65542 0.3892,0.97253 0.88059,1.60266 0.60431,0.7668 1.15373,1.25688 1.62856,1.43525 0.40772,0.15685 1.53713,0.2848 2.21873,0.25469 1.06028,-0.0468 3.02671,-0.54603 4.32722,-1.09559 1.70709,-0.72416 3.21702,-1.59353 6.45478,-3.71296 2.61931,-1.71416 3.6189,-2.33386 3.93789,-2.44144 l 0.15029,-0.0513 -0.0391,0.19387 c -0.0515,0.23528 -0.19464,0.41769 -0.73398,0.9172 -0.57692,0.53738 -1.38886,1.21831 -2.94579,2.46507 -2.86604,2.29471 -4.05453,3.33228 -4.82441,4.21777 -1.02926,1.18432 -1.92543,3.264 -2.11272,4.89652 -0.19279,1.71872 0.12071,2.88127 1.28889,4.77374 0.4102,0.66956 0.86603,1.25404 1.0807,1.3857 0.29919,0.18988 1.32282,0.42613 2.68218,0.61934 0.9859,0.13767 1.66933,0.17448 2.65257,0.13657 l 0.93618,-0.0338 0.73652,0.30584 c 0.40517,0.16793 0.90034,0.35798 1.10167,0.4224 1.20483,0.37532 2.97105,0.66689 4.18203,0.69137 1.14227,0.0225 1.8129,-0.12216 2.86802,-0.62038 1.42954,-0.67109 3.39989,-1.99764 4.10501,-2.76527 0.81094,-0.87594 1.551,-2.33064 1.88304,-3.69146 0.15001,-0.61124 0.18507,-1.39859 0.0932,-2.19803 -0.11263,-0.98388 -0.64069,-2.32822 -1.9575,-4.9494 -0.95783,-1.91694 -1.4614,-2.99312 -1.60274,-3.45416 -0.14127,-0.46104 -0.067,-0.782 0.26333,-1.12607 l 0.11765,-0.12184 0.16576,0.25561 c 0.21655,0.33508 1.74296,2.53621 2.55542,3.68556 0.68604,0.97289 1.87672,2.45652 2.28443,2.85018 1.01026,0.97967 2.51442,1.91816 4.08896,2.55231 1.14775,0.45998 1.9338,0.61405 3.29816,0.64862 1.06302,0.0285 1.6282,-0.0218 2.32975,-0.21281 0.5446,-0.14832 0.93714,-0.31233 1.73252,-0.73457 0.69541,-0.36398 0.71074,-0.3802 0.62928,-0.6138 -0.0268,-0.0705 -0.12909,-0.3019 -0.22718,-0.51371 -0.23993,-0.5085 -0.38765,-0.65493 -0.82719,-0.82384 -0.30658,-0.12047 -0.41856,-0.13492 -1.41286,-0.16137 -1.74681,-0.0514 -2.27202,-0.13652 -3.25188,-0.52473 -2.24814,-0.88795 -3.65889,-1.94345 -5.83794,-4.36435 -1.06726,-1.18192 -1.87572,-2.26149 -2.10432,-2.80592 -0.13894,-0.32171 -0.1378,-0.32718 0.0693,-0.21249 1.0359,0.58207 1.90353,1.15641 3.10353,2.06365 1.63136,1.22361 1.86349,1.34186 3.28575,1.63722 1.94456,0.40544 3.27637,0.50592 4.94514,0.37119 1.46891,-0.11838 2.40822,-0.37767 3.52998,-0.97701 1.47709,-0.78951 2.36624,-1.62971 3.0698,-2.90161 0.36807,-0.66889 0.55097,-1.12316 0.6145,-1.52243 0.0324,-0.20242 0.12132,-0.56194 0.19702,-0.8021 0.30538,-0.92146 0.32292,-1.45858 0.11565,-3.31723 -0.14562,-1.32753 -0.15518,-2.07161 -0.035,-3.25201 0.0912,-0.88041 0.25999,-1.5106 0.56112,-2.11463 l 0.26129,-0.51882 -0.0355,-0.38269 c -0.02,-0.21234 -0.0435,-0.57237 -0.047,-0.80647 -0.0188,-0.69142 -0.1617,-1.18315 -0.59777,-2.06513 -0.41543,-0.83401 -0.80282,-1.45273 -1.35208,-2.15699 -0.62876,-0.79817 -0.74312,-0.88822 -1.61417,-1.22307 -1.83539,-0.70311 -3.41173,-0.69377 -5.43857,0.0294 -0.9967,0.3579 -1.82002,0.75157 -2.71008,1.29644 -1.1518,0.70434 -1.44705,0.9213 -5.34648,3.90712 -2.16519,1.65789 -3.84869,2.92893 -3.88796,2.93596 -0.054,0.009 -0.0608,10e-4 -0.0338,-0.0515 0.0721,-0.13718 0.80639,-0.83149 2.84013,-2.69382 2.6855,-2.4616 3.37401,-3.15727 4.08931,-4.15582 1.15518,-1.60406 1.89863,-2.96113 2.51803,-4.59207 0.70142,-1.84864 0.79467,-3.09948 0.3361,-4.51978 -0.30049,-0.94486 -0.96796,-2.20974 -1.54836,-2.95392 -0.46865,-0.59288 -0.79949,-0.83139 -1.62286,-1.14813 -1.18913,-0.45564 -2.12833,-0.53342 -3.51754,-0.29852 -0.39015,0.0666 -1.27749,0.2131 -1.96905,0.3237 -1.78606,0.29293 -2.32442,0.27703 -4.12615,-0.11028 -1.02621,-0.2252 -1.67487,-0.32508 -2.34298,-0.37816 -1.5698,-0.11863 -3.16497,0.19659 -4.44811,0.88336 -0.44007,0.23218 -1.45377,0.96289 -1.82913,1.31389 z"
|
||||||
|
id="path1-3-3-3-6"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00399432"
|
||||||
|
inkscape:transform-center-x="323.33333"
|
||||||
|
inkscape:transform-center-y="-3.4874273" /><path
|
||||||
|
d="m 309.70135,218.68714 c -0.77928,0.0869 -1.22459,0.20605 -2.02242,0.54734 -1.27283,0.54414 -2.53081,1.38448 -3.35835,2.24735 -0.45271,0.46686 -1.232,1.47462 -1.49918,1.93182 -0.18554,0.31876 -0.27831,0.79848 -0.42674,2.22804 -0.0779,0.73086 -0.11133,1.11402 -0.28204,3.17139 -0.16327,1.95114 -0.2746,2.92026 -0.34882,3.03298 -0.0594,0.0934 -0.18924,-0.72446 -0.56034,-3.49982 -0.53065,-3.97634 -0.66795,-4.6557 -1.15037,-5.63771 -0.7199,-1.4553 -2.39721,-2.66591 -4.50869,-3.25189 -1.05761,-0.29299 -1.91853,-0.29943 -3.0689,-0.0257 -1.00193,0.24147 -1.85543,0.63749 -2.80541,1.31362 -0.8535,0.60532 -1.33221,1.04962 -2.44175,2.25702 -1.04276,1.13334 -1.63278,1.82879 -1.85172,2.17973 -0.0743,0.12236 -0.14844,0.18997 -0.25606,0.23827 -0.18553,0.0837 -0.25604,0.13199 -1.17263,0.78238 -1.02049,0.72765 -1.45837,1.0625 -1.87398,1.44243 -0.86092,0.7856 -1.31365,1.42953 -1.60681,2.29564 -0.19668,0.57954 -0.24492,0.89829 -0.24492,1.60983 0.004,0.86932 0.11504,1.51326 0.33768,1.89642 0.18926,0.33162 0.87207,1.03351 1.33964,1.38123 0.72733,0.54093 2.2896,1.25249 3.43626,1.56803 1.50661,0.41212 2.95756,0.61494 6.20085,0.86928 2.62358,0.20607 3.60697,0.3091 3.87415,0.40571 l 0.12617,0.0451 -0.12617,0.11591 c -0.15585,0.13846 -0.34511,0.18996 -0.96112,0.25114 -0.66053,0.0676 -1.55113,0.10948 -3.22844,0.14809 -3.08745,0.0708 -4.41223,0.161 -5.38076,0.37027 -1.29509,0.28013 -2.96499,1.26535 -3.93353,2.31819 -1.01677,1.11082 -1.41012,2.10247 -1.61423,4.07292 -0.0743,0.69547 -0.0743,1.35549 0,1.56479 0.1002,0.29621 0.65683,1.01742 1.45838,1.88994 0.58261,0.63107 1.01678,1.02709 1.68845,1.53258 l 0.63827,0.48296 0.33026,0.61497 c 0.18183,0.33808 0.41191,0.74052 0.5121,0.89508 0.60488,0.91761 1.62536,2.07993 2.41577,2.75284 0.74589,0.63427 1.26542,0.89507 2.22282,1.11402 1.29509,0.29941 3.28783,0.42823 4.15245,0.26722 0.9908,-0.18028 2.23394,-0.80815 3.15796,-1.59053 0.41561,-0.35094 0.84607,-0.88864 1.1986,-1.50361 0.43418,-0.7566 0.77928,-1.99297 1.2617,-4.55909 0.35623,-1.87386 0.57889,-2.90737 0.72361,-3.30984 0.14473,-0.40247 0.35996,-0.5892 0.75702,-0.65361 l 0.14101,-0.0224 -0.0223,0.27046 c -0.0297,0.35414 -0.15585,2.73674 -0.21151,3.9892 -0.0482,1.05928 -0.0259,2.75284 0.0408,3.25189 0.16328,1.23958 0.67537,2.71743 1.39157,4.01819 0.52323,0.94658 0.96482,1.48106 1.85172,2.24412 0.69022,0.59564 1.091,0.86609 1.65506,1.11079 0.43787,0.18996 0.78298,0.28657 1.52887,0.41856 0.6494,0.11914 0.66795,0.11592 0.73475,-0.0933 0.0185,-0.0644 0.0705,-0.28334 0.11503,-0.4862 0.10392,-0.4894 0.0817,-0.67291 -0.12246,-1.03029 -0.141,-0.25114 -0.2078,-0.32198 -0.85349,-0.87898 -1.13182,-0.98201 -1.43611,-1.32652 -1.88512,-2.13146 -1.03162,-1.84488 -1.42126,-3.35489 -1.61424,-6.2462 -0.0965,-1.41343 -0.0743,-2.61439 0.0557,-3.12309 0.0743,-0.30267 0.0779,-0.30589 0.15585,-0.11272 0.38593,0.97236 0.66425,1.84813 0.99081,3.13922 0.44901,1.7483 0.54178,1.95757 1.3322,2.93637 1.07986,1.33938 1.91109,2.13143 3.08744,2.9396 1.03533,0.71152 1.79235,1.03671 2.84623,1.22026 1.38787,0.24145 2.41206,0.12878 3.53646,-0.38961 0.59002,-0.27366 0.94627,-0.49581 1.1949,-0.74372 0.12617,-0.12557 0.37109,-0.33163 0.5455,-0.46045 0.67908,-0.48615 0.96852,-0.85642 1.79235,-2.28275 0.59002,-1.01743 0.96853,-1.54868 1.65875,-2.31818 0.51581,-0.5731 0.95369,-0.92728 1.46579,-1.1913 l 0.44159,-0.22538 0.17441,-0.28978 c 0.0965,-0.16097 0.26719,-0.42821 0.38594,-0.59564 0.34511,-0.49904 0.50468,-0.92405 0.67166,-1.7837 0.15586,-0.81457 0.21895,-1.46174 0.21895,-2.25703 -0.004,-0.90472 -0.0334,-1.03029 -0.43788,-1.73861 -0.8535,-1.49074 -1.90368,-2.33752 -3.62181,-2.9235 -0.84608,-0.28656 -1.59567,-0.45397 -2.46773,-0.55056 -1.1281,-0.12557 -1.4361,-0.13202 -5.5663,-0.13202 -2.29331,0 -4.06711,-0.0128 -4.09679,-0.029 -0.0408,-0.0224 -0.0408,-0.0322 0.004,-0.0547 0.11876,-0.058 0.96482,-0.15132 3.2767,-0.36703 3.05404,-0.28656 3.87043,-0.40568 4.86123,-0.72443 1.59568,-0.50872 2.79057,-1.06572 4.04485,-1.88352 1.42126,-0.92729 2.13004,-1.76118 2.5605,-3.01364 0.28944,-0.83069 0.50097,-2.08636 0.50097,-2.92671 -0.004,-0.67291 -0.1002,-1.02065 -0.48242,-1.69034 -0.55292,-0.96591 -1.13553,-1.52936 -2.17828,-2.11535 -0.29315,-0.1642 -0.95741,-0.54091 -1.47321,-0.83711 -1.33592,-0.75986 -1.68473,-1.0625 -2.67925,-2.31175 -0.56406,-0.71478 -0.94256,-1.13656 -1.35817,-1.53579 -0.97967,-0.93372 -2.20055,-1.57444 -3.40658,-1.78371 -0.4119,-0.0741 -1.46208,-0.10626 -1.89254,-0.0612 z"
|
||||||
|
id="path1-3-3-2"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00345656" /><path
|
||||||
|
d="m 434.17193,103.02813 c -0.71225,0.32793 -1.09736,0.58128 -1.74709,1.15649 -1.03665,0.91735 -1.96592,2.11115 -2.47956,3.19075 -0.28262,0.58569 -0.70482,1.78761 -0.8144,2.30569 -0.0757,0.36098 -0.0126,0.8455 0.29675,2.24905 0.15627,0.71819 0.24522,1.09238 0.73122,3.0988 0.45959,1.90326 0.65918,2.85811 0.62424,2.98847 -0.027,0.10736 -0.4078,-0.62798 -1.63417,-3.14519 -1.75608,-3.60681 -2.10037,-4.20834 -2.86754,-4.98842 -1.14163,-1.15448 -3.11488,-1.77516 -5.30345,-1.66626 -1.09607,0.055 -1.9152,0.3201 -2.9208,0.94223 -0.87487,0.54476 -1.56019,1.18945 -2.24886,2.13038 -0.6194,0.84334 -0.9338,1.41581 -1.60657,2.91123 -0.63271,1.40409 -0.97365,2.24998 -1.07091,2.65202 -0.032,0.13953 -0.0811,0.22706 -0.16798,0.30679 -0.14972,0.13788 -0.20143,0.20592 -0.86652,1.11191 -0.73935,1.01204 -1.04948,1.46776 -1.32427,1.95926 -0.56965,1.01678 -0.79652,1.77053 -0.80196,2.6849 -0.004,0.61199 0.0505,0.92971 0.2746,1.60503 0.27761,0.82381 0.58582,1.4 0.91781,1.69353 0.28408,0.25513 1.15321,0.70623 1.7065,0.88898 0.86069,0.28431 2.56757,0.46758 3.75525,0.40589 1.55973,-0.0834 3.00071,-0.34791 6.15903,-1.12806 2.55495,-0.63077 3.52074,-0.84273 3.80475,-0.83519 l 0.13395,0.003 -0.0832,0.14975 c -0.10431,0.1805 -0.26771,0.28899 -0.8331,0.54108 -0.60562,0.27221 -1.43769,0.59247 -3.01747,1.15742 -2.908,1.03966 -4.13694,1.54254 -4.99026,2.04621 -1.14094,0.67379 -2.41552,2.13484 -3.00315,3.43915 -0.61514,1.37454 -0.67613,2.43961 -0.24921,4.37405 0.14854,0.68348 0.35642,1.3099 0.49286,1.48515 0.1884,0.24957 0.94386,0.75875 1.97943,1.33439 0.75173,0.41544 1.28854,0.65456 2.08523,0.92276 l 0.7579,0.25734 0.50715,0.47965 c 0.27906,0.2636 0.62419,0.57308 0.76796,0.68822 0.86312,0.68038 2.19775,1.46212 3.15988,1.85182 0.9077,0.36705 1.48293,0.45094 2.46057,0.35719 1.32347,-0.12374 3.25536,-0.62914 4.02526,-1.05428 0.88358,-0.48318 1.86569,-1.47065 2.49625,-2.50425 0.28392,-0.46398 0.52311,-1.1099 0.66399,-1.8046 0.17378,-0.85485 0.11189,-2.13698 -0.2385,-4.72444 -0.25212,-1.89068 -0.36632,-2.94172 -0.35573,-3.36929 0.0106,-0.42757 0.15606,-0.67259 0.51262,-0.85878 l 0.12678,-0.0657 0.064,0.26371 c 0.0833,0.34547 0.71408,2.64653 1.05574,3.85278 0.2879,1.02054 0.84249,2.62088 1.06298,3.07352 0.5454,1.12506 1.49691,2.36639 2.58636,3.37536 0.79474,0.7336 1.3822,1.10178 2.4643,1.54666 0.8427,0.34792 1.30827,0.47837 1.92069,0.53295 0.47541,0.0424 0.83339,0.0254 1.58289,-0.0843 0.65387,-0.0915 0.67046,-0.10036 0.66796,-0.31997 -0.003,-0.067 -0.0223,-0.29113 -0.044,-0.49769 -0.0555,-0.49722 -0.13441,-0.66439 -0.44074,-0.93928 -0.21293,-0.19394 -0.29864,-0.24014 -1.08691,-0.56541 -1.38351,-0.57554 -1.78083,-0.80667 -2.46052,-1.42921 -1.56019,-1.42605 -2.40561,-2.73647 -3.49945,-5.41983 -0.53678,-1.3111 -0.89398,-2.45792 -0.93082,-2.98168 -0.0248,-0.31066 -0.0224,-0.31485 0.11241,-0.15607 0.67255,0.80131 1.21255,1.54485 1.92915,2.66736 0.97682,1.51789 1.13078,1.68729 2.18926,2.36731 1.44677,0.93108 2.48516,1.421 3.85619,1.81752 1.20674,0.3492 2.02765,0.4194 3.08571,0.26166 1.39327,-0.20798 2.32985,-0.6375 3.23374,-1.48366 0.47379,-0.44557 0.74194,-0.76863 0.89983,-1.08223 0.0802,-0.15892 0.24774,-0.43163 0.3727,-0.60883 0.49139,-0.6753 0.64948,-1.11789 0.98212,-2.7311 0.23953,-1.15148 0.43144,-1.77491 0.84416,-2.72265 0.30904,-0.70639 0.61308,-1.18046 1.01595,-1.59234 l 0.34813,-0.353 0.0743,-0.32997 c 0.0409,-0.18317 0.11872,-0.49057 0.17869,-0.68688 0.17036,-0.58234 0.18794,-1.03598 0.0756,-1.90446 -0.10864,-0.8222 -0.2526,-1.45631 -0.50309,-2.21112 -0.28876,-0.85741 -0.35622,-0.96733 -0.96321,-1.51219 -1.2796,-1.14604 -2.54304,-1.61894 -4.35828,-1.63393 -0.89328,-0.005 -1.65744,0.0717 -2.51554,0.25473 -1.11023,0.23614 -1.40459,0.32703 -5.32456,1.62793 -2.17659,0.72233 -3.86413,1.26888 -3.8974,1.26285 -0.0458,-0.008 -0.0489,-0.0177 -0.0134,-0.0532 0.0944,-0.0925 0.86805,-0.44751 2.99432,-1.38042 2.80833,-1.23391 3.54565,-1.60411 4.38562,-2.21871 1.35423,-0.98542 2.31286,-1.89043 3.24571,-3.06167 1.05685,-1.32775 1.4669,-2.34244 1.48096,-3.66673 0.0131,-0.87958 -0.18167,-2.13796 -0.44636,-2.93554 -0.21574,-0.6374 -0.41657,-0.93714 -0.99027,-1.45235 -0.82901,-0.74259 -1.55944,-1.09386 -2.73369,-1.32158 -0.32994,-0.0635 -1.07905,-0.21183 -1.66189,-0.33049 -1.50726,-0.3004 -1.93364,-0.47777 -3.27101,-1.35019 -0.76049,-0.50074 -1.25257,-0.78183 -1.77278,-1.02983 -1.2239,-0.57763 -2.58444,-0.80119 -3.795,-0.61995 -0.41428,0.0594 -1.42113,0.35967 -1.81549,0.53802 z"
|
||||||
|
id="path1-3-3-2-0"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00345656" /><path
|
||||||
|
d="m 99.090959,92.821662 c -0.71225,0.32793 -1.09736,0.58128 -1.74709,1.15649 -1.03665,0.91735 -1.96592,2.11115 -2.47956,3.19075 -0.28262,0.58569 -0.70482,1.78761 -0.8144,2.30569 -0.0757,0.36098 -0.0126,0.845498 0.29675,2.249048 0.15627,0.71819 0.24522,1.09238 0.73122,3.0988 0.45959,1.90326 0.65918,2.85811 0.62424,2.98847 -0.027,0.10736 -0.4078,-0.62798 -1.63417,-3.14519 -1.75608,-3.60681 -2.10037,-4.20834 -2.86754,-4.988418 -1.14163,-1.15448 -3.11488,-1.77516 -5.30345,-1.66626 -1.09607,0.055 -1.9152,0.3201 -2.9208,0.94223 -0.87487,0.54476 -1.56019,1.189448 -2.24886,2.130378 -0.6194,0.84334 -0.9338,1.41581 -1.60657,2.91123 -0.63271,1.40409 -0.97365,2.24998 -1.07091,2.65202 -0.032,0.13953 -0.0811,0.22706 -0.16798,0.30679 -0.14972,0.13788 -0.20143,0.20592 -0.86652,1.11191 -0.73935,1.01204 -1.04948,1.46776 -1.32427,1.95926 -0.56965,1.01678 -0.79652,1.77053 -0.80196,2.6849 -0.004,0.61199 0.0505,0.92971 0.2746,1.60503 0.27761,0.82381 0.58582,1.4 0.91781,1.69353 0.28408,0.25513 1.15321,0.70623 1.7065,0.88898 0.86069,0.28431 2.56757,0.46758 3.75525,0.40589 1.55973,-0.0834 3.00071,-0.34791 6.15903,-1.12806 2.55495,-0.63077 3.52074,-0.84273 3.80475,-0.83519 l 0.13395,0.003 -0.0832,0.14975 c -0.10431,0.1805 -0.26771,0.28899 -0.8331,0.54108 -0.60562,0.27221 -1.43769,0.59247 -3.01747,1.15742 -2.908,1.03966 -4.13694,1.54254 -4.99026,2.04621 -1.14094,0.67379 -2.41552,2.13484 -3.00315,3.43915 -0.61514,1.37454 -0.67613,2.43961 -0.24921,4.37405 0.14854,0.68348 0.35642,1.3099 0.49286,1.48515 0.1884,0.24957 0.94386,0.75875 1.97943,1.33439 0.75173,0.41544 1.28854,0.65456 2.08523,0.92276 l 0.7579,0.25734 0.50715,0.47965 c 0.27906,0.2636 0.62419,0.57308 0.76796,0.68822 0.86312,0.68038 2.19775,1.46212 3.15988,1.85182 0.9077,0.36705 1.48293,0.45094 2.46057,0.35719 1.32347,-0.12374 3.25536,-0.62914 4.02526,-1.05428 0.88358,-0.48318 1.86569,-1.47065 2.49625,-2.50425 0.28392,-0.46398 0.52311,-1.1099 0.66399,-1.8046 0.17378,-0.85485 0.11189,-2.13698 -0.2385,-4.72444 -0.25212,-1.89068 -0.36632,-2.94172 -0.35573,-3.36929 0.0106,-0.42757 0.15606,-0.67259 0.51262,-0.85878 l 0.12678,-0.0657 0.064,0.26371 c 0.0833,0.34547 0.71408,2.64653 1.055741,3.85278 0.2879,1.02054 0.84249,2.62088 1.06298,3.07352 0.5454,1.12506 1.49691,2.36639 2.58636,3.37536 0.79474,0.7336 1.3822,1.10178 2.4643,1.54666 0.8427,0.34792 1.30827,0.47837 1.92069,0.53295 0.47541,0.0424 0.83339,0.0254 1.58289,-0.0843 0.65387,-0.0915 0.67046,-0.10036 0.66796,-0.31997 -0.003,-0.067 -0.0223,-0.29113 -0.044,-0.49769 -0.0555,-0.49722 -0.13441,-0.66439 -0.44074,-0.93928 -0.21293,-0.19394 -0.29864,-0.24014 -1.08691,-0.56541 -1.38351,-0.57554 -1.78083,-0.80667 -2.46052,-1.42921 -1.56019,-1.42605 -2.40561,-2.73647 -3.49945,-5.41983 -0.53678,-1.3111 -0.89398,-2.45792 -0.93082,-2.98168 -0.0248,-0.31066 -0.0224,-0.31485 0.11241,-0.15607 0.67255,0.80131 1.21255,1.54485 1.92915,2.66736 0.97682,1.51789 1.13078,1.68729 2.18926,2.36731 1.44677,0.93108 2.48516,1.421 3.85619,1.81752 1.20674,0.3492 2.02765,0.4194 3.08571,0.26166 1.39327,-0.20798 2.32985,-0.6375 3.23374,-1.48366 0.47379,-0.44557 0.74194,-0.76863 0.89983,-1.08223 0.0802,-0.15892 0.24774,-0.43163 0.3727,-0.60883 0.49139,-0.6753 0.64948,-1.11789 0.98212,-2.7311 0.23953,-1.15148 0.43144,-1.77491 0.84416,-2.72265 0.30904,-0.70639 0.61308,-1.18046 1.01595,-1.59234 l 0.34813,-0.353 0.0743,-0.32997 c 0.0409,-0.18317 0.11872,-0.49057 0.17869,-0.68688 0.17036,-0.58234 0.18794,-1.03598 0.0756,-1.90446 -0.10864,-0.8222 -0.2526,-1.45631 -0.50309,-2.21112 -0.28876,-0.85741 -0.35622,-0.96733 -0.96321,-1.51219 -1.2796,-1.14604 -2.54304,-1.61894 -4.35828,-1.63393 -0.89328,-0.005 -1.65744,0.0717 -2.51554,0.25473 -1.11023,0.23614 -1.40459,0.32703 -5.32456,1.62793 -2.17659,0.72233 -3.86413,1.26888 -3.8974,1.26285 -0.0458,-0.008 -0.0489,-0.0177 -0.0134,-0.0532 0.0944,-0.0925 0.86805,-0.44751 2.99432,-1.38042 2.80833,-1.23391 3.54565,-1.60411 4.38562,-2.21871 1.35423,-0.98542 2.31286,-1.89043 3.24571,-3.06167 1.05685,-1.32775 1.4669,-2.34244 1.48096,-3.66673 0.0131,-0.87958 -0.18167,-2.137958 -0.44636,-2.935538 -0.21574,-0.6374 -0.41657,-0.93714 -0.99027,-1.45235 -0.82901,-0.74259 -1.55944,-1.09386 -2.73369,-1.32158 -0.32994,-0.0635 -1.07905,-0.21183 -1.66189,-0.33049 -1.50726,-0.3004 -1.93364,-0.47777 -3.27101,-1.35019 -0.76049,-0.50074 -1.25257,-0.78183 -1.77278,-1.02983 -1.2239,-0.57763 -2.58444,-0.80119 -3.795,-0.61995 -0.41428,0.0594 -1.421131,0.35967 -1.815491,0.53802 z"
|
||||||
|
id="path1-3-3-2-0-4"
|
||||||
|
style="fill:#e5ffd5;fill-opacity:1;stroke:none;stroke-width:0.00345656" /></svg>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 56 KiB |
BIN
dist/eden.bmp
vendored
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
BIN
dist/eden.icns
vendored
BIN
dist/eden.ico
vendored
|
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 352 KiB |
230
dist/eden.icon/Assets/dev.eden_emu.eden.svg
vendored
|
|
@ -1,230 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
width="512"
|
|
||||||
height="512"
|
|
||||||
fill="none"
|
|
||||||
viewBox="0 0 512 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg7"
|
|
||||||
sodipodi:docname="base.svg.2026_01_12_14_43_47.0.svg"
|
|
||||||
inkscape:version="1.4.2 (ebf0e94, 2025-05-08)"
|
|
||||||
inkscape:export-filename="base.svg.2026_01_12_14_43_47.0.svg"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs7">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient1"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff2e88;stop-opacity:0.5;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#bf42f6;stop-opacity:0.5;"
|
|
||||||
offset="0.44631511"
|
|
||||||
id="stop4" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5da5ed;stop-opacity:0.5;"
|
|
||||||
offset="0.90088946"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient138"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff2e88;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop152" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#bf42f6;stop-opacity:1;"
|
|
||||||
offset="0.44971901"
|
|
||||||
id="stop137" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5da5ed;stop-opacity:1;"
|
|
||||||
offset="0.89793283"
|
|
||||||
id="stop138" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch37"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop37" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch28"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#252525;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop28" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch27"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000000;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop27" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch15"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop16" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient14"
|
|
||||||
inkscape:swatch="gradient">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop14" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop15" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch9"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop10" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch8"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop9" />
|
|
||||||
</linearGradient>
|
|
||||||
<rect
|
|
||||||
x="22.627417"
|
|
||||||
y="402.76802"
|
|
||||||
width="521.34025"
|
|
||||||
height="248.94868"
|
|
||||||
id="rect24" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient11"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff2e88;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop11" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#bf42f6;stop-opacity:1;"
|
|
||||||
offset="0.44971901"
|
|
||||||
id="stop154" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#5da5ed;stop-opacity:1;"
|
|
||||||
offset="0.89793283"
|
|
||||||
id="stop12" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient138"
|
|
||||||
id="linearGradient6"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.118028,0,0,1.116699,-46.314723,-42.388667)"
|
|
||||||
x1="270.39996"
|
|
||||||
y1="40.000019"
|
|
||||||
x2="270.39996"
|
|
||||||
y2="494.39996"
|
|
||||||
spreadMethod="pad" />
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath18">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle18"
|
|
||||||
cx="-246.8315"
|
|
||||||
cy="246.8338"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath22">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle22"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient11"
|
|
||||||
id="linearGradient27"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(-6.9401139e-5,-2.8678628)"
|
|
||||||
x1="256.00012"
|
|
||||||
y1="102.94693"
|
|
||||||
x2="256.00012"
|
|
||||||
y2="409.05307" />
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath128">
|
|
||||||
<circle
|
|
||||||
style="fill:none;fill-opacity:1;stroke:#03ffff;stroke-width:0;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
id="circle128"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
r="192" />
|
|
||||||
</clipPath>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient1"
|
|
||||||
id="linearGradient2"
|
|
||||||
x1="256"
|
|
||||||
y1="64"
|
|
||||||
x2="256"
|
|
||||||
y2="448"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.3229974,0,0,1.3214002,-82.687336,-82.290326)" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview7"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.4142136"
|
|
||||||
inkscape:cx="261.62951"
|
|
||||||
inkscape:cy="230.87036"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1008"
|
|
||||||
inkscape:window-x="1080"
|
|
||||||
inkscape:window-y="351"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg7" />
|
|
||||||
<path
|
|
||||||
id="path8-7"
|
|
||||||
style="display:inline;mix-blend-mode:multiply;fill:url(#linearGradient6);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2);stroke-width:3.9666;stroke-dasharray:none;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
d="M 256,2.2792898 A 254.0155,253.71401 0 0 0 150.68475,25.115202 c 19.54414,1.070775 38.74692,5.250294 51.56848,11.647658 14.14361,7.056691 28.63804,19.185961 39.4212,29.347551 h 40.60981 c 1.03847,-0.68139 2.10297,-1.36938 3.1938,-2.05957 5.45602,-15.78533 14.79164,-43.183497 19.49612,-57.0097682 A 254.0155,253.71401 0 0 0 256,2.2792898 Z m 61.57106,7.567234 -18.26098,46.1544672 c 7.79702,-4.13918 16.35655,-7.87447 25.20671,-10.87081 23.1229,-7.828433 43.96931,-10.170904 54.94058,-10.868226 A 254.0155,253.71401 0 0 0 317.57106,9.8465238 Z m 65.39277,26.4001532 c -9.68256,4.806644 -33.05532,16.642034 -55.68217,29.863734 H 424.4677 A 254.0155,253.71401 0 0 0 382.96383,36.246677 Z M 113.90698,45.690231 A 254.0155,253.71401 0 0 0 87.532302,66.110411 H 194.2739 c -1.47402,-0.80231 -2.35141,-1.25949 -2.35141,-1.25949 l 10.4496,-11.83348 -38.40568,7.01234 c 0,1e-5 -12.21537,-4.60266 -40.17313,-12.27223 -3.45336,-0.94731 -6.75329,-1.61824 -9.8863,-2.06732 z m -36.803618,30.18635 a 254.0155,253.71401 0 0 0 -34.88372,43.090929 h 59.976738 c 18.11461,-12.04145 40.14252,-22.882149 62.31266,-24.534159 52.93006,-3.9444 70.16538,1.86342 70.16538,1.86342 0,0 -4.612,-4.8206 -14.51938,-13.36656 -2.72366,-2.34942 -6.0844,-4.77373 -9.52455,-7.05363 z m 174.472868,0 c 4.57322,4.7186 7.29716,7.83565 7.29716,7.83565 0,0 3.53501,-3.18484 9.62532,-7.83565 z m 60.27649,0 c -21.56573,15.45339 -25.4703,27.979669 -25.4703,27.979669 0,0 54.83326,-19.215729 100.70543,-0.31228 11.63986,4.79661 21.58481,10.13159 29.94832,15.42354 h 52.74419 A 254.0155,253.71401 0 0 0 434.89664,75.876581 Z M 36.250648,128.73367 A 254.0155,253.71401 0 0 0 16.372095,171.82459 H 147.45478 c 1.45695,-2.5815 3.06539,-5.08648 4.83979,-7.48982 14.23694,-19.28301 27.92088,-30.0088 36.86047,-35.6011 h -30.25323 c -5.87346,0.93472 -12.04945,1.99094 -18.28166,3.16937 -30.12936,5.69727 -81.157618,22.78945 -81.157618,22.78945 0,0 11.47125,-12.39249 29.11369,-25.95882 z m 265.630492,0 c 33.48676,11.2434 52.42799,26.78443 62.7752,43.09092 h 130.97157 a 254.0155,253.71401 0 0 0 -19.87856,-43.09092 h -44.81136 c 14.85233,11.5863 21.59948,20.9854 21.59948,20.9854 0,0 -33.5226,-12.37087 -66.0646,-20.9854 z m -45.96641,16.27007 c -1.00419,0.0106 -10.12705,0.72026 -44.98966,20.64729 -3.12132,1.78406 -6.25434,3.86182 -9.37468,6.17356 h 41.81911 c 7.17181,-17.34774 12.64083,-26.82085 12.64083,-26.82085 0,0 -0.0287,-7.1e-4 -0.0957,0 z m 14.18088,0.0465 c 0,0 -3.31228,9.32762 -7.30492,26.77438 h 51.78554 C 287.6577,146.14158 270.09561,145.0502 270.09561,145.0502 Z M 13.152456,181.59075 A 254.0155,253.71401 0 0 0 3.927651,224.68167 H 134.1447 c 0.56161,-12.72411 2.67825,-28.50188 8.61499,-43.09092 z m 176.661504,0 c -14.27121,13.10564 -27.60733,29.58761 -37.56073,43.09092 h 73.3721 c 4.47018,-16.79061 9.35068,-31.26371 13.86562,-43.09092 z m 70.85787,0 c -2.41384,11.76417 -4.9032,26.20707 -6.94831,43.09092 H 360.4832 c -8.32133,-10.88917 -20.66988,-26.17008 -36.35141,-43.09092 z m 109.17313,0 c 6.63611,15.24089 6.92441,30.5373 5.57882,43.09092 h 132.64857 a 254.0155,253.71401 0 0 0 -9.22481,-43.09092 z M 2.90181,234.44783 A 254.0155,253.71401 0 0 0 1.984498,255.9933 254.0155,253.71401 0 0 0 2.90181,277.53876 h 211.89923 c 2.25762,-15.52555 5.14325,-29.93448 8.3385,-43.09093 h -77.8863 c -6.46396,9.27617 -10.33076,15.56549 -10.33076,15.56549 0,0 -0.82623,-6.14945 -0.9354,-15.56549 z m 249.72093,0 c -1.3692,13.09684 -2.4456,27.49209 -3.02068,43.09093 h 259.49613 a 254.0155,253.71401 0 0 0 0.91731,-21.54546 254.0155,253.71401 0 0 0 -0.91731,-21.54547 H 374.02584 c -0.445,2.5469 -0.90878,4.89768 -1.32817,7.01751 0,0 -1.69726,-2.53821 -4.94056,-7.01751 z M 3.927651,287.30493 a 254.0155,253.71401 0 0 0 9.224805,43.09091 H 214.04393 c -1.29238,-15.40742 -1.57503,-30.04388 -0.41861,-43.09091 z m 245.385009,0 c -0.30355,13.54349 -0.22032,27.92598 0.36951,43.09091 h 249.16537 a 254.0155,253.71401 0 0 0 9.22481,-43.09091 z M 16.369511,340.16201 a 254.0155,253.71401 0 0 0 19.878554,43.09091 H 221.4677 c -2.69781,-14.4523 -4.96108,-29.01285 -6.4832,-43.09091 z m 233.842379,0 c 1.15864,15.47765 3.81286,29.83979 7.51679,43.09091 h 218.02325 a 254.0155,253.71401 0 0 0 19.87856,-43.09091 z M 42.217052,393.01909 a 254.0155,253.71401 0 0 0 34.88372,43.09093 H 233.09561 c -3.40902,-13.67281 -6.76794,-28.2531 -9.73902,-43.09093 z m 218.490958,0 c 5.34985,16.15926 12.22007,30.51982 19.68733,43.09093 h 154.50389 a 254.0155,253.71401 0 0 0 34.88371,-43.09093 z M 87.529722,445.87618 a 254.0155,253.71401 0 0 0 166.229968,63.8208 c -3.67805,-12.0825 -10.85464,-35.49828 -18.18088,-63.8208 z m 199.010328,0 c 17.5887,26.43772 36.99259,43.60598 47.33592,51.61309 a 254.0155,253.71401 0 0 0 90.59431,-51.61309 z" />
|
|
||||||
<path
|
|
||||||
id="path27"
|
|
||||||
style="display:inline;mix-blend-mode:multiply;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient27);stroke-width:3;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
|
||||||
d="m 318.98012,441.7375 c -9.87518,-6.73978 -64.39137,-49.0272 -67.68975,-127.81978 -3.69298,-88.21893 15.36468,-141.91029 15.36468,-141.91029 0,0 16.00378,0.99513 39.80316,26.53195 23.79939,25.53753 37.74965,46.43102 37.74965,46.43102 3.91262,-19.79992 12.84563,-66.32402 -60.72865,-87.55523 0,0 12.82326,-5.38883 39.3925,-3.81382 26.56907,1.57572 81.6822,21.93799 81.6822,21.93799 0,0 -14.79766,-20.63773 -49.47063,-34.94295 -34.67291,-14.30533 -76.1182,0.23644 -76.1182,0.23644 0,0 3.86959,-12.43127 27.22669,-26.38478 23.35718,-13.9537 49.27409,-26.501533 49.27409,-26.501533 0,0 -21.97854,-0.26548 -47.67725,8.44535 -6.68948,2.267506 -13.15863,5.094213 -19.05208,8.226563 l 16.05803,-40.634103 -4.4617,-1.89059 -5.1305,-0.95965 c 0,0 -11.24072,33.12428 -16.92051,49.576513 -12.13137,7.68489 -20.11005,14.87735 -20.11005,14.87735 0,0 -21.90573,-25.09227 -42.79668,-35.527803 -26.03412,-13.00525 -86.88249,-13.90359 -94.0044,10.401173 0,0 13.56804,-7.884703 34.70032,-2.080917 21.13214,5.803997 30.3644,9.287307 30.3644,9.287307 l 29.02989,-5.30681 -7.89811,8.95527 c 0,0 13.8496,7.21324 21.33822,13.68063 7.48859,6.46722 10.9757,10.11472 10.9757,10.11472 0,0 -13.02739,-4.39388 -53.03507,-1.40893 -40.00771,2.98473 -79.40016,45.60209 -79.40016,45.60209 0,0 38.57037,-12.93531 61.34393,-17.24677 22.77354,-4.31126 44.52166,-6.46757 44.52166,-6.46757 0,0 -17.23298,5.97003 -35.69792,31.00932 -18.46522,25.03987 -13.13146,64.83866 -13.13146,64.83866 0,0 29.33874,-47.7577 57.44675,-63.84249 28.10798,-16.08527 34.0799,-15.6238 34.0799,-15.6238 0,0 -22.56785,39.13486 -31.39017,101.98268 -8.03005,57.2039 26.77689,163.75449 31.1572,178.89699"
|
|
||||||
sodipodi:nodetypes="cscsccscscscsccccccscscccscscscscscsc"
|
|
||||||
inkscape:label="MainOutline"
|
|
||||||
clip-path="url(#clipPath128)"
|
|
||||||
transform="matrix(1.3229974,0,0,1.3214002,-82.687282,-82.278451)" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 13 KiB |
37
dist/eden.icon/icon.json
vendored
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
"fill" : {
|
|
||||||
"automatic-gradient" : "srgb:0.00000,0.00000,0.00000,1.00000"
|
|
||||||
},
|
|
||||||
"groups" : [
|
|
||||||
{
|
|
||||||
"layers" : [
|
|
||||||
{
|
|
||||||
"fill" : "none",
|
|
||||||
"image-name" : "dev.eden_emu.eden.svg",
|
|
||||||
"name" : "dev.eden_emu.eden",
|
|
||||||
"position" : {
|
|
||||||
"scale" : 1.8,
|
|
||||||
"translation-in-points" : [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"shadow" : {
|
|
||||||
"kind" : "neutral",
|
|
||||||
"opacity" : 0.5
|
|
||||||
},
|
|
||||||
"translucency" : {
|
|
||||||
"enabled" : true,
|
|
||||||
"value" : 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"supported-platforms" : {
|
|
||||||
"circles" : [
|
|
||||||
"watchOS"
|
|
||||||
],
|
|
||||||
"squares" : "shared"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
289
dist/icon_variations/1an.svg
vendored
|
|
@ -1,289 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
width="512"
|
|
||||||
height="512"
|
|
||||||
fill="none"
|
|
||||||
viewBox="0 0 512 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg7"
|
|
||||||
sodipodi:docname="1stanni.svg"
|
|
||||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
|
||||||
inkscape:export-filename="base.svg.2026_01_12_14_43_47.0.svg"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs7">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient34"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffd700;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop34" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffd700;stop-opacity:0.48031053;"
|
|
||||||
offset="1"
|
|
||||||
id="stop35" />
|
|
||||||
</linearGradient>
|
|
||||||
<rect
|
|
||||||
x="20.999999"
|
|
||||||
y="287.30493"
|
|
||||||
width="487.07235"
|
|
||||||
height="134.69506"
|
|
||||||
id="rect22" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient21"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#3a0057;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop21" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#830091;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop22" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch37"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop37" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch28"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#252525;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop28" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch27"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000000;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop27" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch15"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop16" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient14"
|
|
||||||
inkscape:swatch="gradient">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop14" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop15" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch9"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop10" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="swatch8"
|
|
||||||
inkscape:swatch="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop9" />
|
|
||||||
</linearGradient>
|
|
||||||
<rect
|
|
||||||
x="22.627417"
|
|
||||||
y="402.76802"
|
|
||||||
width="521.34025"
|
|
||||||
height="248.94868"
|
|
||||||
id="rect24" />
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath18">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle18"
|
|
||||||
cx="-246.8315"
|
|
||||||
cy="246.8338"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath22">
|
|
||||||
<circle
|
|
||||||
style="opacity:1;mix-blend-mode:normal;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10.8382;stroke-opacity:0.566238;paint-order:stroke fill markers"
|
|
||||||
id="circle22"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
r="191.89999" />
|
|
||||||
</clipPath>
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath128">
|
|
||||||
<circle
|
|
||||||
style="fill:none;fill-opacity:1;stroke:#03ffff;stroke-width:0;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
id="circle128"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
r="192" />
|
|
||||||
</clipPath>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient21"
|
|
||||||
id="linearGradient22"
|
|
||||||
x1="256"
|
|
||||||
y1="0"
|
|
||||||
x2="256"
|
|
||||||
y2="512"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient34"
|
|
||||||
id="linearGradient35"
|
|
||||||
x1="256"
|
|
||||||
y1="-0.048701428"
|
|
||||||
x2="256"
|
|
||||||
y2="512.04932"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<filter
|
|
||||||
inkscape:label="Glowing Bubble"
|
|
||||||
inkscape:menu="Ridges"
|
|
||||||
inkscape:menu-tooltip="Bubble effect with refraction and glow"
|
|
||||||
x="-0.19420711"
|
|
||||||
y="-0.11239541"
|
|
||||||
width="1.3884142"
|
|
||||||
height="1.2247908"
|
|
||||||
style="color-interpolation-filters:sRGB;"
|
|
||||||
id="filter61">
|
|
||||||
<feGaussianBlur
|
|
||||||
stdDeviation="1"
|
|
||||||
result="result1"
|
|
||||||
id="feGaussianBlur56" />
|
|
||||||
<feGaussianBlur
|
|
||||||
stdDeviation="10"
|
|
||||||
result="result6"
|
|
||||||
in="result1"
|
|
||||||
id="feGaussianBlur57" />
|
|
||||||
<feComposite
|
|
||||||
operator="atop"
|
|
||||||
in="result6"
|
|
||||||
in2="result1"
|
|
||||||
result="result8"
|
|
||||||
id="feComposite57" />
|
|
||||||
<feComposite
|
|
||||||
operator="xor"
|
|
||||||
result="fbSourceGraphic"
|
|
||||||
in="result6"
|
|
||||||
in2="result8"
|
|
||||||
id="feComposite58" />
|
|
||||||
<feColorMatrix
|
|
||||||
result="fbSourceGraphicAlpha"
|
|
||||||
in="fbSourceGraphic"
|
|
||||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 2 0 "
|
|
||||||
id="feColorMatrix58" />
|
|
||||||
<feGaussianBlur
|
|
||||||
result="result0"
|
|
||||||
in="fbSourceGraphicAlpha"
|
|
||||||
stdDeviation="1"
|
|
||||||
id="feGaussianBlur58" />
|
|
||||||
<feSpecularLighting
|
|
||||||
specularExponent="35"
|
|
||||||
specularConstant="1.5"
|
|
||||||
surfaceScale="-2"
|
|
||||||
lighting-color="rgb(255,255,255)"
|
|
||||||
result="result1"
|
|
||||||
in="result0"
|
|
||||||
id="feSpecularLighting58">
|
|
||||||
<feDistantLight
|
|
||||||
azimuth="230"
|
|
||||||
elevation="60"
|
|
||||||
id="feDistantLight58" />
|
|
||||||
</feSpecularLighting>
|
|
||||||
<feComposite
|
|
||||||
operator="in"
|
|
||||||
result="result2"
|
|
||||||
in="result1"
|
|
||||||
in2="fbSourceGraphicAlpha"
|
|
||||||
id="feComposite59" />
|
|
||||||
<feComposite
|
|
||||||
k3="1.2"
|
|
||||||
k2="1.1"
|
|
||||||
operator="arithmetic"
|
|
||||||
result="result4"
|
|
||||||
in="fbSourceGraphic"
|
|
||||||
in2="result2"
|
|
||||||
id="feComposite60" />
|
|
||||||
<feGaussianBlur
|
|
||||||
result="result80"
|
|
||||||
in="result4"
|
|
||||||
stdDeviation="0.5"
|
|
||||||
id="feGaussianBlur60" />
|
|
||||||
<feComposite
|
|
||||||
operator="atop"
|
|
||||||
in="result9"
|
|
||||||
in2="result80"
|
|
||||||
result="result91"
|
|
||||||
id="feComposite61" />
|
|
||||||
<feBlend
|
|
||||||
mode="multiply"
|
|
||||||
in2="result91"
|
|
||||||
id="feBlend61" />
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview7"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="213.49999"
|
|
||||||
inkscape:cy="248.99999"
|
|
||||||
inkscape:window-width="1600"
|
|
||||||
inkscape:window-height="849"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="27"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg7" />
|
|
||||||
<circle
|
|
||||||
style="fill:url(#linearGradient22);fill-opacity:1;stroke:none;stroke-width:8"
|
|
||||||
id="path21"
|
|
||||||
cx="256"
|
|
||||||
cy="256"
|
|
||||||
r="256" />
|
|
||||||
<path
|
|
||||||
id="path8-7"
|
|
||||||
style="display:inline;mix-blend-mode:normal;fill:url(#linearGradient35);fill-opacity:1;fill-rule:nonzero;stroke:#320081;stroke-width:4.067;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
|
||||||
inkscape:label="Circle"
|
|
||||||
d="M 256,2.2792898 A 254.0155,253.71401 0 0 0 150.68475,25.115202 c 19.54414,1.070775 38.74692,5.250294 51.56848,11.647658 14.14361,7.056691 28.63804,19.185961 39.4212,29.347551 h 40.60981 c 1.03847,-0.68139 2.10297,-1.36938 3.1938,-2.05957 5.45602,-15.78533 14.79164,-43.183497 19.49612,-57.0097682 A 254.0155,253.71401 0 0 0 256,2.2792898 Z m 61.57106,7.567234 -18.26098,46.1544672 c 7.79702,-4.13918 16.35655,-7.87447 25.20671,-10.87081 23.1229,-7.828433 43.96931,-10.170904 54.94058,-10.868226 A 254.0155,253.71401 0 0 0 317.57106,9.8465238 Z m 65.39277,26.4001532 c -9.68256,4.806644 -33.05532,16.642034 -55.68217,29.863734 H 424.4677 A 254.0155,253.71401 0 0 0 382.96383,36.246677 Z M 113.90698,45.690231 A 254.0155,253.71401 0 0 0 87.532302,66.110411 H 194.2739 c -1.47402,-0.80231 -2.35141,-1.25949 -2.35141,-1.25949 l 10.4496,-11.83348 -38.40568,7.01234 c 0,1e-5 -12.21537,-4.60266 -40.17313,-12.27223 -3.45336,-0.94731 -6.75329,-1.61824 -9.8863,-2.06732 z m -36.803618,30.18635 a 254.0155,253.71401 0 0 0 -34.88372,43.090929 h 59.976738 c 18.11461,-12.04145 40.14252,-22.882149 62.31266,-24.534159 52.93006,-3.9444 70.16538,1.86342 70.16538,1.86342 0,0 -4.612,-4.8206 -14.51938,-13.36656 -2.72366,-2.34942 -6.0844,-4.77373 -9.52455,-7.05363 z m 174.472868,0 c 4.57322,4.7186 7.29716,7.83565 7.29716,7.83565 0,0 3.53501,-3.18484 9.62532,-7.83565 z m 60.27649,0 c -21.56573,15.45339 -25.4703,27.979669 -25.4703,27.979669 0,0 54.83326,-19.215729 100.70543,-0.31228 11.63986,4.79661 21.58481,10.13159 29.94832,15.42354 h 52.74419 A 254.0155,253.71401 0 0 0 434.89664,75.876581 Z M 36.250648,128.73367 A 254.0155,253.71401 0 0 0 16.372095,171.82459 H 147.45478 c 1.45695,-2.5815 3.06539,-5.08648 4.83979,-7.48982 14.23694,-19.28301 27.92088,-30.0088 36.86047,-35.6011 h -30.25323 c -5.87346,0.93472 -12.04945,1.99094 -18.28166,3.16937 -30.12936,5.69727 -81.157618,22.78945 -81.157618,22.78945 0,0 11.47125,-12.39249 29.11369,-25.95882 z m 265.630492,0 c 33.48676,11.2434 52.42799,26.78443 62.7752,43.09092 h 130.97157 a 254.0155,253.71401 0 0 0 -19.87856,-43.09092 h -44.81136 c 14.85233,11.5863 21.59948,20.9854 21.59948,20.9854 0,0 -33.5226,-12.37087 -66.0646,-20.9854 z m -45.96641,16.27007 c -1.00419,0.0106 -10.12705,0.72026 -44.98966,20.64729 -3.12132,1.78406 -6.25434,3.86182 -9.37468,6.17356 h 41.81911 c 7.17181,-17.34774 12.64083,-26.82085 12.64083,-26.82085 0,0 -0.0287,-7.1e-4 -0.0957,0 z m 14.18088,0.0465 c 0,0 -3.31228,9.32762 -7.30492,26.77438 h 51.78554 C 287.6577,146.14158 270.09561,145.0502 270.09561,145.0502 Z M 13.152456,181.59075 A 254.0155,253.71401 0 0 0 3.927651,224.68167 H 134.1447 c 0.56161,-12.72411 2.67825,-28.50188 8.61499,-43.09092 z m 176.661504,0 c -14.27121,13.10564 -27.60733,29.58761 -37.56073,43.09092 h 73.3721 c 4.47018,-16.79061 9.35068,-31.26371 13.86562,-43.09092 z m 70.85787,0 c -2.41384,11.76417 -4.9032,26.20707 -6.94831,43.09092 H 360.4832 c -8.32133,-10.88917 -20.66988,-26.17008 -36.35141,-43.09092 z m 109.17313,0 c 6.63611,15.24089 6.92441,30.5373 5.57882,43.09092 h 132.64857 a 254.0155,253.71401 0 0 0 -9.22481,-43.09092 z M 2.90181,234.44783 A 254.0155,253.71401 0 0 0 1.984498,255.9933 254.0155,253.71401 0 0 0 2.90181,277.53876 h 211.89923 c 2.25762,-15.52555 5.14325,-29.93448 8.3385,-43.09093 h -77.8863 c -6.46396,9.27617 -10.33076,15.56549 -10.33076,15.56549 0,0 -0.82623,-6.14945 -0.9354,-15.56549 z m 249.72093,0 c -1.3692,13.09684 -2.4456,27.49209 -3.02068,43.09093 h 259.49613 a 254.0155,253.71401 0 0 0 0.91731,-21.54546 254.0155,253.71401 0 0 0 -0.91731,-21.54547 H 374.02584 c -0.445,2.5469 -0.90878,4.89768 -1.32817,7.01751 0,0 -1.69726,-2.53821 -4.94056,-7.01751 z M 3.927651,287.30493 a 254.0155,253.71401 0 0 0 9.224805,43.09091 H 214.04393 c -1.29238,-15.40742 -1.57503,-30.04388 -0.41861,-43.09091 z m 245.385009,0 c -0.30355,13.54349 -0.22032,27.92598 0.36951,43.09091 h 249.16537 a 254.0155,253.71401 0 0 0 9.22481,-43.09091 z M 16.369511,340.16201 a 254.0155,253.71401 0 0 0 19.878554,43.09091 H 221.4677 c -2.69781,-14.4523 -4.96108,-29.01285 -6.4832,-43.09091 z m 233.842379,0 c 1.15864,15.47765 3.81286,29.83979 7.51679,43.09091 h 218.02325 a 254.0155,253.71401 0 0 0 19.87856,-43.09091 z M 42.217052,393.01909 a 254.0155,253.71401 0 0 0 34.88372,43.09093 H 233.09561 c -3.40902,-13.67281 -6.76794,-28.2531 -9.73902,-43.09093 z m 218.490958,0 c 5.34985,16.15926 12.22007,30.51982 19.68733,43.09093 h 154.50389 a 254.0155,253.71401 0 0 0 34.88371,-43.09093 z M 87.529722,445.87618 a 254.0155,253.71401 0 0 0 166.229968,63.8208 c -3.67805,-12.0825 -10.85464,-35.49828 -18.18088,-63.8208 z m 199.010328,0 c 17.5887,26.43772 36.99259,43.60598 47.33592,51.61309 a 254.0155,253.71401 0 0 0 90.59431,-51.61309 z" />
|
|
||||||
<path
|
|
||||||
id="path27"
|
|
||||||
style="display:inline;mix-blend-mode:multiply;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
|
||||||
d="m 318.98012,441.7375 c -9.87518,-6.73978 -64.39137,-49.0272 -67.68975,-127.81978 -3.69298,-88.21893 15.36468,-141.91029 15.36468,-141.91029 0,0 16.00378,0.99513 39.80316,26.53195 23.79939,25.53753 37.74965,46.43102 37.74965,46.43102 3.91262,-19.79992 12.84563,-66.32402 -60.72865,-87.55523 0,0 12.82326,-5.38883 39.3925,-3.81382 26.56907,1.57572 81.6822,21.93799 81.6822,21.93799 0,0 -14.79766,-20.63773 -49.47063,-34.94295 -34.67291,-14.30533 -76.1182,0.23644 -76.1182,0.23644 0,0 3.86959,-12.43127 27.22669,-26.38478 23.35718,-13.9537 49.27409,-26.501533 49.27409,-26.501533 0,0 -21.97854,-0.26548 -47.67725,8.44535 -6.68948,2.267506 -13.15863,5.094213 -19.05208,8.226563 l 16.05803,-40.634103 -4.4617,-1.89059 -5.1305,-0.95965 c 0,0 -11.24072,33.12428 -16.92051,49.576513 -12.13137,7.68489 -20.11005,14.87735 -20.11005,14.87735 0,0 -21.90573,-25.09227 -42.79668,-35.527803 -26.03412,-13.00525 -86.88249,-13.90359 -94.0044,10.401173 0,0 13.56804,-7.884703 34.70032,-2.080917 21.13214,5.803997 30.3644,9.287307 30.3644,9.287307 l 29.02989,-5.30681 -7.89811,8.95527 c 0,0 13.8496,7.21324 21.33822,13.68063 7.48859,6.46722 10.9757,10.11472 10.9757,10.11472 0,0 -13.02739,-4.39388 -53.03507,-1.40893 -40.00771,2.98473 -79.40016,45.60209 -79.40016,45.60209 0,0 38.57037,-12.93531 61.34393,-17.24677 22.77354,-4.31126 44.52166,-6.46757 44.52166,-6.46757 0,0 -17.23298,5.97003 -35.69792,31.00932 -18.46522,25.03987 -13.13146,64.83866 -13.13146,64.83866 0,0 29.33874,-47.7577 57.44675,-63.84249 28.10798,-16.08527 34.0799,-15.6238 34.0799,-15.6238 0,0 -22.56785,39.13486 -31.39017,101.98268 -8.03005,57.2039 26.77689,163.75449 31.1572,178.89699"
|
|
||||||
sodipodi:nodetypes="cscsccscscscsccccccscscccscscscscscsc"
|
|
||||||
inkscape:label="MainOutline"
|
|
||||||
clip-path="url(#clipPath128)"
|
|
||||||
transform="matrix(1.3229974,0,0,1.3214002,-82.687282,-82.278451)" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 14 KiB |
1
dist/icon_variations/1an_bgcolor
vendored
|
|
@ -1 +0,0 @@
|
||||||
#ffd700
|
|
||||||
89
dist/icon_variations/aprilfools2026.svg
vendored
|
Before Width: | Height: | Size: 19 KiB |
1
dist/icon_variations/aprilfools2026_bgcolor
vendored
|
|
@ -1 +0,0 @@
|
||||||
#43fcfcff
|
|
||||||
184
dist/installer.nsi
vendored
|
|
@ -1,184 +0,0 @@
|
||||||
; SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
; SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
; Usage:
|
|
||||||
; get the latest nsis: https://nsis.sourceforge.io/Download
|
|
||||||
|
|
||||||
; Require these for makensis.
|
|
||||||
!ifndef PRODUCT_VERSION
|
|
||||||
!error "PRODUCT_VERSION must be defined"
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!ifndef ARCH
|
|
||||||
!error "ARCH must be defined"
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!ifndef VARIANT
|
|
||||||
!error "VARIANT must be defined"
|
|
||||||
!endif
|
|
||||||
|
|
||||||
Unicode true
|
|
||||||
ManifestDPIAware true
|
|
||||||
|
|
||||||
!define PRODUCT_NAME "Eden"
|
|
||||||
!define PRODUCT_PUBLISHER "Utopia LLC"
|
|
||||||
!define PRODUCT_WEB_SITE "https://git.eden-emu.dev"
|
|
||||||
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_NAME}.exe"
|
|
||||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
|
||||||
|
|
||||||
!define BINARY_SOURCE_DIR "..\bin"
|
|
||||||
|
|
||||||
Name "${PRODUCT_NAME}"
|
|
||||||
OutFile "${PRODUCT_NAME}-Windows-${PRODUCT_VERSION}-${ARCH}-${VARIANT}-installer.exe"
|
|
||||||
SetCompressor /SOLID lzma
|
|
||||||
InstallDir "$LOCALAPPDATA\$(^Name)"
|
|
||||||
ShowInstDetails show
|
|
||||||
ShowUnInstDetails show
|
|
||||||
|
|
||||||
!include "MUI2.nsh"
|
|
||||||
; Custom page plugin
|
|
||||||
!include "nsDialogs.nsh"
|
|
||||||
|
|
||||||
; MUI Settings
|
|
||||||
!define MUI_ICON "eden.ico"
|
|
||||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
|
|
||||||
|
|
||||||
; License page
|
|
||||||
!insertmacro MUI_PAGE_LICENSE "..\LICENSE.txt"
|
|
||||||
; Desktop Shortcut page
|
|
||||||
Page custom desktopShortcutPageCreate desktopShortcutPageLeave
|
|
||||||
; Directory page
|
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
|
||||||
; Instfiles page
|
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
|
||||||
; Finish page
|
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\eden.exe"
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
|
||||||
|
|
||||||
; Uninstaller pages
|
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
|
||||||
|
|
||||||
; Variables
|
|
||||||
Var DesktopShortcutPageDialog
|
|
||||||
Var DesktopShortcutCheckbox
|
|
||||||
Var DesktopShortcut
|
|
||||||
|
|
||||||
; Language files
|
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
|
||||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
|
||||||
!insertmacro MUI_LANGUAGE "TradChinese"
|
|
||||||
!insertmacro MUI_LANGUAGE "Danish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Dutch"
|
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
|
||||||
!insertmacro MUI_LANGUAGE "Hungarian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Italian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Japanese"
|
|
||||||
!insertmacro MUI_LANGUAGE "Korean"
|
|
||||||
!insertmacro MUI_LANGUAGE "Lithuanian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Norwegian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Polish"
|
|
||||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
|
||||||
!insertmacro MUI_LANGUAGE "Romanian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Russian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Spanish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Swedish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Turkish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Vietnamese"
|
|
||||||
|
|
||||||
; MUI end ------
|
|
||||||
|
|
||||||
Function .onInit
|
|
||||||
StrCpy $DesktopShortcut 1
|
|
||||||
|
|
||||||
!insertmacro MUI_LANGDLL_DISPLAY
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function desktopShortcutPageCreate
|
|
||||||
!insertmacro MUI_HEADER_TEXT "Create Desktop Shortcut" "Would you like to create a desktop shortcut?"
|
|
||||||
nsDialogs::Create 1018
|
|
||||||
Pop $DesktopShortcutPageDialog
|
|
||||||
${If} $DesktopShortcutPageDialog == error
|
|
||||||
Abort
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
${NSD_CreateCheckbox} 0u 0u 100% 12u "Create a desktop shortcut"
|
|
||||||
Pop $DesktopShortcutCheckbox
|
|
||||||
${NSD_SetState} $DesktopShortcutCheckbox $DesktopShortcut
|
|
||||||
|
|
||||||
nsDialogs::Show
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function desktopShortcutPageLeave
|
|
||||||
${NSD_GetState} $DesktopShortcutCheckbox $DesktopShortcut
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Section "Base"
|
|
||||||
ExecWait '"$INSTDIR\uninst.exe" /S _?=$INSTDIR'
|
|
||||||
|
|
||||||
SectionIn RO
|
|
||||||
|
|
||||||
SetOutPath "$INSTDIR"
|
|
||||||
|
|
||||||
; The binplaced build output will be included verbatim.
|
|
||||||
File /r "${BINARY_SOURCE_DIR}\*"
|
|
||||||
|
|
||||||
; Create start menu and desktop shortcuts
|
|
||||||
CreateShortCut "$SMPROGRAMS\$(^Name).lnk" "$INSTDIR\eden.exe"
|
|
||||||
${If} $DesktopShortcut == 1
|
|
||||||
CreateShortCut "$DESKTOP\$(^Name).lnk" "$INSTDIR\eden.exe"
|
|
||||||
${EndIf}
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
!include "FileFunc.nsh"
|
|
||||||
|
|
||||||
Section -Post
|
|
||||||
WriteUninstaller "$INSTDIR\uninst.exe"
|
|
||||||
|
|
||||||
WriteRegStr HKCU "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\eden.exe"
|
|
||||||
|
|
||||||
; Write metadata for add/remove programs applet
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\eden.exe"
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
|
|
||||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
|
||||||
IntFmt $0 "0x%08X" $0
|
|
||||||
WriteRegDWORD HKCU "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0"
|
|
||||||
|
|
||||||
WriteRegStr HKCU "Software\Classes\.nsp" "" "$(^Name)"
|
|
||||||
WriteRegStr HKCU "Software\Classes\.xci" "" "$(^Name)"
|
|
||||||
WriteRegStr HKCU "Software\Classes\.nro" "" "$(^Name)"
|
|
||||||
WriteRegStr HKCU "Software\Classes\.kip" "" "$(^Name)"
|
|
||||||
WriteRegStr HKCU "Software\Classes\$(^Name)\DefaultIcon" "" "$INSTDIR\eden.exe,0"
|
|
||||||
WriteRegStr HKCU "Software\Classes\$(^Name)\Shell\open\command" "" '"$INSTDIR\eden.exe" %1'
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
Section Uninstall
|
|
||||||
Delete "$DESKTOP\$(^Name).lnk"
|
|
||||||
Delete "$SMPROGRAMS\$(^Name).lnk"
|
|
||||||
|
|
||||||
; Be a bit careful to not delete files a user may have put into the install directory.
|
|
||||||
Delete "$INSTDIR\eden.exe"
|
|
||||||
Delete "$INSTDIR\eden-cli.exe"
|
|
||||||
Delete "$INSTDIR\uninst.exe"
|
|
||||||
Delete "$INSTDIR\LICENSE.txt"
|
|
||||||
Delete "$INSTDIR\README.md"
|
|
||||||
RMDir /r "$INSTDIR\LICENSES"
|
|
||||||
RMDir "$INSTDIR"
|
|
||||||
|
|
||||||
DeleteRegKey HKCU "Software\Classes\.nsp"
|
|
||||||
DeleteRegKey HKCU "Software\Classes\.xci"
|
|
||||||
DeleteRegKey HKCU "Software\Classes\.nro"
|
|
||||||
DeleteRegKey HKCU "Software\Classes\.kip"
|
|
||||||
DeleteRegKey HKCU "Software\Classes\$(^Name)"
|
|
||||||
|
|
||||||
DeleteRegKey HKCU "Software\Classes\discord-1397286652128264252"
|
|
||||||
|
|
||||||
DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}"
|
|
||||||
DeleteRegKey HKCU "${PRODUCT_DIR_REGKEY}"
|
|
||||||
|
|
||||||
SetAutoClose true
|
|
||||||
SectionEnd
|
|
||||||
2184
dist/languages/ar.ts
vendored
2106
dist/languages/ca.ts
vendored
2034
dist/languages/cs.ts
vendored
2098
dist/languages/da.ts
vendored
4466
dist/languages/de.ts
vendored
2098
dist/languages/el.ts
vendored
2352
dist/languages/es.ts
vendored
2240
dist/languages/fi.ts
vendored
2045
dist/languages/fr.ts
vendored
2034
dist/languages/hu.ts
vendored
2298
dist/languages/id.ts
vendored
2360
dist/languages/it.ts
vendored
2034
dist/languages/ja_JP.ts
vendored
4864
dist/languages/ko_KR.ts
vendored
2116
dist/languages/nb.ts
vendored
2098
dist/languages/nl.ts
vendored
2047
dist/languages/pl.ts
vendored
2727
dist/languages/pt_BR.ts
vendored
2034
dist/languages/pt_PT.ts
vendored
3469
dist/languages/ru_RU.ts
vendored
2050
dist/languages/sv.ts
vendored
2118
dist/languages/tr_TR.ts
vendored
2110
dist/languages/uk.ts
vendored
2098
dist/languages/vi.ts
vendored
2099
dist/languages/vi_VN.ts
vendored
2053
dist/languages/zh_CN.ts
vendored
2040
dist/languages/zh_TW.ts
vendored
BIN
dist/qt_themes/default/icons/256x256/eden.png
vendored
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 54 KiB |
|
|
@ -136,16 +136,6 @@ cmake -S . -B build -G "<GENERATOR>" -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COM
|
||||||
<img src="https://user-images.githubusercontent.com/42481638/216899275-d514ec6a-e563-470e-81e2-3e04f0429b68.png" width="500">
|
<img src="https://user-images.githubusercontent.com/42481638/216899275-d514ec6a-e563-470e-81e2-3e04f0429b68.png" width="500">
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
#### Option D: Visual Studio with clang-cl
|
|
||||||
|
|
||||||
<details>
|
|
||||||
1. Install `"x64 Native Tools Command Prompt"` for VS from the installer and also install `cmake-gui`.
|
|
||||||
2. Open `"x64 Native Tools Command Prompt"` and type `cmake-gui`.
|
|
||||||
3. Click configure choose ninja generator > specify native compilers.
|
|
||||||
4. Put `"C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin/clang-cl.exe"` as your C/C++ compiler path.
|
|
||||||
5. Open `Visual studio > Open project` or Solution > Change to search for the CMake project file (`CMakeList.txt`) file on the cloned directory, and then build.
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
If your initial configure failed:
|
If your initial configure failed:
|
||||||
|
|
|
||||||
320
docs/CPMUtil.md
|
|
@ -1,320 +0,0 @@
|
||||||
# CPMUtil
|
|
||||||
|
|
||||||
CPMUtil is a wrapper around CPM that aims to reduce boilerplate and add useful utility functions to make dependency management a piece of cake.
|
|
||||||
|
|
||||||
- [CPMUtil](#cpmutil)
|
|
||||||
- [Global Options](#global-options)
|
|
||||||
- [About](#about)
|
|
||||||
- [Common Properties](#common-properties)
|
|
||||||
- [Standard Packages](#standard-packages)
|
|
||||||
- [Versioning](#versioning)
|
|
||||||
- [Patches](#patches)
|
|
||||||
- [Pre-built CI Packages](#pre-built-ci-packages)
|
|
||||||
- [Usage](#usage)
|
|
||||||
- [Addendum: Cache Storage](#addendum-cache-storage)
|
|
||||||
- [Addendum: Making Patches](#addendum-making-patches)
|
|
||||||
- [Addendum: Package Identification Lists](#addendum-package-identification-lists)
|
|
||||||
- [Addendum: Notes for Packagers](#addendum-notes-for-packagers)
|
|
||||||
- [Network Sandbox](#network-sandbox)
|
|
||||||
- [Unsandboxed](#unsandboxed)
|
|
||||||
- [Addendum: Dependent Packages](#addendum-dependent-packages)
|
|
||||||
- [Example: Vulkan](#example-vulkan)
|
|
||||||
- [Addendum: Module Path Packages](#addendum-module-path-packages)
|
|
||||||
- [Example: OpenSSL](#example-openssl)
|
|
||||||
- [Addendum: Adding Qt](#addendum-adding-qt)
|
|
||||||
|
|
||||||
## Global Options
|
|
||||||
|
|
||||||
- `CPMUTIL_FORCE_SYSTEM` (default `OFF`): Require all CPM dependencies to use system packages. NOT RECOMMENDED!
|
|
||||||
- You may optionally override this (section)
|
|
||||||
- `CPMUTIL_FORCE_BUNDLED` (default `ON` on MSVC and Android, `OFF` elsewhere): Require all CPM dependencies to use bundled packages.
|
|
||||||
- `CPMUTIL_PATCH_DIR` (default `${PROJECT_SOURCE_DIR}/.patch`): Path to patches used in packages. Stored as `<PATCH DIR>/json-package-name/0001-patch-name.patch`, etc.
|
|
||||||
- `CPM_SOURCE_CACHE` (default `${PROJECT_SOURCE_DIR}/.cache/cpm`): Where downloaded dependencies get stored.
|
|
||||||
|
|
||||||
## About
|
|
||||||
|
|
||||||
CPMUtil works by defining dependencies in a JSON file, `cpmfile.json`, and calling `AddJsonPackage`. These dependencies generally must define, at minimum:
|
|
||||||
|
|
||||||
- The repository and Git host
|
|
||||||
- A release artifact, commit, or tag archive to download
|
|
||||||
- A SHA512 sum for the downloaded artifact
|
|
||||||
|
|
||||||
And may optionally define other properties like:
|
|
||||||
|
|
||||||
- The minimum version for system packages
|
|
||||||
- The package name used for system packages (this defaults to the json key if undefined)
|
|
||||||
- In-tree source patches
|
|
||||||
- Options passed to CMake
|
|
||||||
- Options passed to find_package
|
|
||||||
|
|
||||||
For instance:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"fmt": {
|
|
||||||
"repo": "fmtlib/fmt",
|
|
||||||
"tag": "12.1.0",
|
|
||||||
"hash": "f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2",
|
|
||||||
"min_version": "8",
|
|
||||||
"options": [
|
|
||||||
"FMT_TEST ON"
|
|
||||||
],
|
|
||||||
"patches": [
|
|
||||||
"0001-disable-reference-copy.patch"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Calling `AddJsonPackage(fmt)`:
|
|
||||||
|
|
||||||
- Searches for a system package named `fmt` of version 8 or higher
|
|
||||||
- If found, uses the system package and caches it for future use
|
|
||||||
- If not found:
|
|
||||||
- Downloads fmt 12.1.0 from the GitHub Archive into `.cache/cpm/fmt/12.1.0`
|
|
||||||
- Verifies the hash
|
|
||||||
- Applies the `0001-disable-reference-copy.patch` patch to the source tree
|
|
||||||
- Sets `FMT_TEST` to `ON`
|
|
||||||
- Adds the downloaded directory to CMake
|
|
||||||
- Now, future `find_package(fmt)` calls will use the downloaded package
|
|
||||||
|
|
||||||
There are two types of packages CPMUtil can define: standard and prebuilt CI packages. Some properties are common to both types, however.
|
|
||||||
|
|
||||||
## Common Properties
|
|
||||||
|
|
||||||
These JSON properties are used by standard and CI packages alike.
|
|
||||||
|
|
||||||
- `package`: The package name used by `find_package` to check for the existence of a system package.
|
|
||||||
- If unset, defaults to the JSON key
|
|
||||||
- `repo`: The Git repository the package is stored in, if applicable.
|
|
||||||
- `version`: The version of the package to download. This is required.
|
|
||||||
- `min_version`: The minimum required version of the package, if a system package is desired.
|
|
||||||
- `git_host`: The Git host the package is stored in, if applicable. Defaults to `github.com`.
|
|
||||||
|
|
||||||
## Standard Packages
|
|
||||||
|
|
||||||
Normal packages, like the prior `fmt` example, *must* also define:
|
|
||||||
|
|
||||||
- `hash`: The SHA512 hash of the downloaded artifact. CPMUtil generally computes this for you.
|
|
||||||
- A valid version/URL identifier:
|
|
||||||
- `url`: Download from a raw URL.
|
|
||||||
- `sha`: A short or fully-qualified Git commit sha. CPMUtil recommends using 10-character wide shas.
|
|
||||||
- `tag`: A Git tag. See [Versioning](#versioning) for its relation to `version`.
|
|
||||||
- `artifact`: A GitHub/Forgejo/Gitea release artifact (requires `tag`). See [Versioning](#versioning) for its relation to `tag` and `version`.
|
|
||||||
|
|
||||||
The following are optional to define:
|
|
||||||
|
|
||||||
- `source_subdir`: A subdirectory containing the `CMakeLists.txt` to configure a project. Useful for projects like `zstd`.
|
|
||||||
- `bundled`: Force the usage of a bundled package. Useful for packages where the system package is broken or nonexistent; e.g. including external fragment shaders.
|
|
||||||
- `find_args`: Additional arguments passed to `find_package`, e.g. `MODULE`
|
|
||||||
- `patches`: Array of in-tree patches to apply to the downloaded source code. See [#Patches](TODO).
|
|
||||||
- `options`: Array of CMake options to apply before configuring the package, e.g. `"FMT_TEST ON"`.
|
|
||||||
|
|
||||||
### Versioning
|
|
||||||
|
|
||||||
When using tags or artifacts, it may be cumbersome to repeat the version multiple times; especially if it's constantly changing. For this purpose, `tag` and `artifact` both support basic version text replacement.
|
|
||||||
|
|
||||||
`tag` can use `%VERSION%` to have its version replaced with the `version` defined for the package, e.g. for OpenSSL; when downloading, `tag` will evaluate to `openssl-3.6.2`:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"openssl": {
|
|
||||||
"repo": "openssl/openssl",
|
|
||||||
"version": "3.6.2",
|
|
||||||
"tag": "openssl-%VERSION%"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
`artifact` also supports `%VERSION%` replacement, and can also use `%TAG%` to be replaced by the computed tag. Take this Boost definition:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"boost": {
|
|
||||||
"repo": "boostorg/boost",
|
|
||||||
"tag": "boost-%VERSION%",
|
|
||||||
"version": "1.90.0"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Boost's artifact for this version is stored in `boost-1.90.0-cmake.tar.xz`. Notice that the computed tag,`boost-1.90.0`, is in the name of the artifact! Thus, `artifact` can be either:
|
|
||||||
|
|
||||||
- `boost-%VERSION%-cmake.tar.xz`
|
|
||||||
- Or, even simpler: `%TAG%-cmake.tar.xz`
|
|
||||||
|
|
||||||
Future updates need only change the `version` identifier, and the artifact and tag will automatically be updated!
|
|
||||||
|
|
||||||
### Patches
|
|
||||||
|
|
||||||
CPMUtil is able to apply in-place source tree patches to downloaded packages. These are defined in JSON as an array of names, preferably using `git-format-patch`'s scheme of `<4 digit number>-patch-name.patch`. These are stored in `<CPMUTIL_PATCH_DIR>/<json-key>` (remember that `CPMUTIL_PATCH_DIR` defaults to `$ROOT/.patch`); e.g. `boost` patches would be in `.patch/boost`. Let's say we've made three patches and want to add them; in the Boost JSON definition, we would add:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"patches": [
|
|
||||||
"0001-fix-clang-cl-compilation.patch",
|
|
||||||
"0002-fix-msvc-arm64-compilation.patch",
|
|
||||||
"0003-fix-bsd-linking.patch"
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, when Boost is downloaded, it will apply these patches in order to the source tree.
|
|
||||||
|
|
||||||
To learn how to make patches, see [Addendum: Making Patches](#addendum-making-patches).
|
|
||||||
|
|
||||||
## Pre-built CI Packages
|
|
||||||
|
|
||||||
The definition and usage of CI packages is subject to change in the very near future.
|
|
||||||
|
|
||||||
CI packages are, in essence, prebuilt binary distributions for libraries. They exist for a few reasons:
|
|
||||||
|
|
||||||
- Creating static libraries for system packages that normally lack them, e.g. Qt/SDL
|
|
||||||
- Reducing duplicated compilation effort on rarely-changing externals, e.g. SDL
|
|
||||||
- Creating debloated prebuilt packages specifically for your project to reduce binary size, e.g. FFmpeg
|
|
||||||
|
|
||||||
CPMUtil is specifically designed to work with a small subset of prebuilt CI packages; namely, those that follow the format of the [crueter-ci spec](https://github.com/crueter-ci/spec/blob/master/README.md).
|
|
||||||
|
|
||||||
To use them, you must add `ci: true` to your package definition. Alongside the common properties, CI packages define the following:
|
|
||||||
|
|
||||||
- `name`: The artifacts' name prefix (required), e.g. `openssl`
|
|
||||||
- `extension`: The artifacts' extension (default `tar.zst`)
|
|
||||||
- `disabled_platforms`: CPMUtil-supported platforms that are not built into this repository.
|
|
||||||
- This is subject to change.
|
|
||||||
|
|
||||||
**Note that `package` is subject to removal here.**
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"sdl2": {
|
|
||||||
"repo": "crueter-ci/SDL2",
|
|
||||||
"package": "SDL2",
|
|
||||||
"min_version": "2.26.4",
|
|
||||||
"ci": true,
|
|
||||||
"version": "2.32.10-a65111bd2d",
|
|
||||||
"artifact": "SDL2"
|
|
||||||
},
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Once you've defined your package in `cpmfile.json`, simply call `AddJsonPackage(<JSON key>)` and go from there! Specific instructions differ between individual packages, so you're on your own from here.
|
|
||||||
|
|
||||||
If you're only concerned with basic usage, you can stop reading. For more advanced use cases and package management, read these addenda.
|
|
||||||
|
|
||||||
## Addendum: Cache Storage
|
|
||||||
|
|
||||||
CPMUtil stores downloaded packages within `.cache/cpm` by default (see `CPM_SOURCE_CACHE`). Subdirectories stored within are lowercase representations of the `find_package` name for the package; for instance, a `vulkan-headers` definition with `package: "VulkanHeaders"` would be stored in `.cache/cpm/vulkanheaders`.
|
|
||||||
|
|
||||||
Within these subdirectories, additional directories are created for each individual version:
|
|
||||||
|
|
||||||
- A four-character shorthand of `sha`, if defined
|
|
||||||
- If `sha` is not defined, the fully qualified `version` is used
|
|
||||||
|
|
||||||
CI packages use `<platform>-<architecture>-<version>` unconditionally.
|
|
||||||
|
|
||||||
## Addendum: Making Patches
|
|
||||||
|
|
||||||
CPMUtil has a dedicated command for making patches. You're recommended to have Git and a command line editor installed, but CPMUtil is able to work without either. To do so, follow these steps, noting your package's JSON key:
|
|
||||||
|
|
||||||
- Clean-fetch your package: `tools/cpmutil.sh package reset <package>`
|
|
||||||
- Make any necessary modifications to the package source.
|
|
||||||
- You can access the package source directory via `tools/cpmutil.sh package dir <package>`.
|
|
||||||
- Create the patch: `tools/cpmutil.sh package patch <package>`
|
|
||||||
- Follow the on-screen prompts. If you have Git installed, an editor will be opened so you can type your commit message. If not, just type a one-line description.
|
|
||||||
|
|
||||||
And you're done! CPMUtil will automatically create and name the patch, and add it to the list of patches in the JSON definition.
|
|
||||||
|
|
||||||
## Addendum: Package Identification Lists
|
|
||||||
|
|
||||||
CPMUtil will create three lists of dependencies where `AddPackage` or similar was used. Each is in order of addition.
|
|
||||||
|
|
||||||
- `CPM_PACKAGE_NAMES`: The names of packages included by CPMUtil
|
|
||||||
- `CPM_PACKAGE_URLS`: The URLs to project/repo pages of packages
|
|
||||||
- `CPM_PACKAGE_SHAS`: Short version identifiers for each package
|
|
||||||
- If the package was included as a system package, `(system)` is appended thereafter
|
|
||||||
- Packages whose versions can't be deduced will be left as `unknown`.
|
|
||||||
|
|
||||||
For an example of how this might be implemented in an application, see Eden's implementation:
|
|
||||||
|
|
||||||
- [`dep_hashes.h.in`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/src/dep_hashes.h.in)
|
|
||||||
- [`GenerateDepHashes.cmake`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CMakeModules/GenerateDepHashes.cmake)
|
|
||||||
- [`deps_dialog.cpp`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/src/yuzu/deps_dialog.cpp)
|
|
||||||
|
|
||||||
## Addendum: Notes for Packagers
|
|
||||||
|
|
||||||
If you are packaging a project that uses CPMUtil, read this!
|
|
||||||
|
|
||||||
### Network Sandbox
|
|
||||||
|
|
||||||
For sandboxed environments (e.g. Gentoo, nixOS) you must install all dependencies to the system beforehand and set `-DCPMUTIL_FORCE_SYSTEM=ON`. If a dependency is missing, get creating!
|
|
||||||
|
|
||||||
Alternatively, if CPMUtil pulls in a package that has no suitable way to install or use a system version, download it separately and pass `-DPackageName_DIR=/path/to/downloaded/dir` (e.g. shaders)
|
|
||||||
|
|
||||||
### Unsandboxed
|
|
||||||
|
|
||||||
For others (AUR, MPR, etc). CPMUtil will handle everything for you, including if some of the project's dependencies are missing from your distribution's repositories. See [`eden-git`](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eden-git) for an example.
|
|
||||||
|
|
||||||
## Addendum: Dependent Packages
|
|
||||||
|
|
||||||
Consider the following scenario: the Vulkan Headers and Vulkan Utility libraries are both pulled in by my project. In order for both to compile cleanly, their versions *must* match. However, a user may have the Vulkan Headers installed, but *not* the Vulkan Utility Libraries! This can cause a version mismatch where the Utility Libraries expect a much newer version of the Vulkan Headers than the user has installed.
|
|
||||||
|
|
||||||
To solve this, CPMUtil has an `AddDependentPackages` command. This takes a list of JSON package keys that *must* either ALL be installed to the system, or ALL be bundled.
|
|
||||||
|
|
||||||
### Example: Vulkan
|
|
||||||
|
|
||||||
Using the prior Vulkan example:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"vulkan-headers": {
|
|
||||||
"repo": "KhronosGroup/Vulkan-Headers",
|
|
||||||
"package": "VulkanHeaders",
|
|
||||||
"min_version": "1.4.317",
|
|
||||||
"version": "1.4.342",
|
|
||||||
"tag": "v%VERSION%"
|
|
||||||
},
|
|
||||||
"vulkan-utility-libraries": {
|
|
||||||
"repo": "KhronosGroup/Vulkan-Utility-Libraries",
|
|
||||||
"package": "VulkanUtilityLibraries",
|
|
||||||
"version": "1.4.342",
|
|
||||||
"tag": "v%VERSION%"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
In CMake:
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
AddDependentPackages(vulkan-headers vulkan-utility-libraries)
|
|
||||||
```
|
|
||||||
|
|
||||||
Possible scenarios:
|
|
||||||
|
|
||||||
- The user has both Vulkan Headers and Vulkan Utility Libraries installed to the system, and both are new enough.
|
|
||||||
- Configuration proceeds without issue.
|
|
||||||
- The user has neither installed, or has a too-old version of Vulkan Headers installed
|
|
||||||
- Configuration proceeds without issue.
|
|
||||||
- The user has a valid Vulkan Headers installed, but not Vulkan Utility Libraries.
|
|
||||||
- CPMUtil instructs the user to either force bundled Vulkan Headers, or install Vulkan Utility Libraries.
|
|
||||||
- The user has both installed, but Vulkan Headers are too old.
|
|
||||||
- CPMUtil instructs the user to install a valid version of Vulkan Headers, or force bundled Vulkan Utility Libraries.
|
|
||||||
|
|
||||||
## Addendum: Module Path Packages
|
|
||||||
|
|
||||||
Sometimes, a prebuilt CI package may be packed in such a way that it's meant to be used in the context of a system install (e.g. pkgconfig or CMakeConfig files). In this case, CPMUtil normally will be unable to configure the downloaded subdirectory. To solve this, you can use `AddJsonPackage`'s `MODULE_PATH` mode, which adds the downloaded source directory to the `CMAKE_MODULE_PATH`.
|
|
||||||
|
|
||||||
### Example: OpenSSL
|
|
||||||
|
|
||||||
Say an OpenSSL CI package is packed to contain its CMake config files rather than a root `CMakeLists.txt`; in this case, you would call:
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
AddJsonPackage(NAME openssl MODULE_PATH)
|
|
||||||
```
|
|
||||||
|
|
||||||
The `NAME` argument is also required, as the parsing is different from the standard single-argument function signature.
|
|
||||||
|
|
||||||
From here, calling `find_package(OpenSSL)` will use the bundled OpenSSL.
|
|
||||||
|
|
||||||
## Addendum: Adding Qt
|
|
||||||
|
|
||||||
If you'd like to use customized Qt builds, CPMUtil provides a convenience function that allows you to add Qt builds. This usage and setup is subject to change.
|
|
||||||
|
|
||||||
See [crueter-ci/Qt](https://github.com/crueter-ci/Qt) for an example of how one might build customized Qt. To add a Qt build to your project, use `AddQt(<repository> <version>)`, e.g.:
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
AddQt(QDash-CI/Qt 6.11.1)
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, call `find_package(Qt6 ...)` and it will pull Qt from your downloaded source.
|
|
||||||
20
docs/CPMUtil/AddCIPackage.md
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# AddPackage
|
||||||
|
|
||||||
|
- `VERSION` (required): The version to get (the tag will be `v${VERSION}`)
|
||||||
|
- `NAME` (required): Name used within the artifacts
|
||||||
|
- `REPO` (required): CI repository, e.g. `crueter-ci/OpenSSL`
|
||||||
|
- `PACKAGE` (required): `find_package` package name
|
||||||
|
- `EXTENSION`: Artifact extension (default `tar.zst`)
|
||||||
|
- `MIN_VERSION`: Minimum version for `find_package`. Only used if platform does not support this package as a bundled artifact
|
||||||
|
- `DISABLED_PLATFORMS`: List of platforms that lack artifacts for this package. Options:
|
||||||
|
- `windows-amd64`
|
||||||
|
- `windows-arm64`
|
||||||
|
- `mingw-amd64`
|
||||||
|
- `mingw-arm64`
|
||||||
|
- `android-x86_64`
|
||||||
|
- `android-aarch64`
|
||||||
|
- `solaris-amd64`
|
||||||
|
- `freebsd-amd64`
|
||||||
|
- `linux-amd64`
|
||||||
|
- `linux-aarch64`
|
||||||
|
- `macos-universal`
|
||||||
41
docs/CPMUtil/AddDependentPackage.md
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
# AddDependentPackage
|
||||||
|
|
||||||
|
Use `AddDependentPackage` when you have multiple packages that are required to all be from the system, OR bundled. This is useful in cases where e.g. versions must absolutely match.
|
||||||
|
|
||||||
|
## Versioning
|
||||||
|
|
||||||
|
Versioning must be handled by the package itself.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Vulkan
|
||||||
|
|
||||||
|
`cpmfile.json`
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"vulkan-headers": {
|
||||||
|
"repo": "KhronosGroup/Vulkan-Headers",
|
||||||
|
"package": "VulkanHeaders",
|
||||||
|
"version": "1.4.317",
|
||||||
|
"hash": "26e0ad8fa34ab65a91ca62ddc54cc4410d209a94f64f2817dcdb8061dc621539a4262eab6387e9b9aa421db3dbf2cf8e2a4b041b696d0d03746bae1f25191272",
|
||||||
|
"git_version": "1.4.342",
|
||||||
|
"tag": "v%VERSION%"
|
||||||
|
},
|
||||||
|
"vulkan-utility-libraries": {
|
||||||
|
"repo": "KhronosGroup/Vulkan-Utility-Libraries",
|
||||||
|
"package": "VulkanUtilityLibraries",
|
||||||
|
"hash": "8147370f964fd82c315d6bb89adeda30186098427bf3efaa641d36282d42a263f31e96e4586bfd7ae0410ff015379c19aa4512ba160630444d3d8553afd1ec14",
|
||||||
|
"git_version": "1.4.342",
|
||||||
|
"tag": "v%VERSION%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`CMakeLists.txt`:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
AddDependentPackages(vulkan-headers vulkan-utility-libraries)
|
||||||
|
```
|
||||||
|
|
||||||
|
If Vulkan Headers are installed, but NOT Vulkan Utility Libraries, then CPMUtil will throw an error.
|
||||||
104
docs/CPMUtil/AddJsonPackage.md
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
# AddJsonPackage
|
||||||
|
|
||||||
|
In each directory that utilizes `CPMUtil`, there must be a `cpmfile.json` that defines dependencies in a similar manner to the individual calls.
|
||||||
|
|
||||||
|
The cpmfile is an object of objects, with each sub-object being named according to the package's identifier, e.g. `openssl`, which can then be fetched with `AddJsonPackage(<identifier>)`. Options are designed to map closely to the argument names, and are always strings unless otherwise specified.
|
||||||
|
<!-- TOC -->
|
||||||
|
- [Options](#options)
|
||||||
|
- [Examples](#examples)
|
||||||
|
<!-- /TOC -->
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
- `package` -> `NAME` (`PACKAGE` for CI), defaults to the object key
|
||||||
|
- `repo` -> `REPO`
|
||||||
|
- `version` -> `VERSION`
|
||||||
|
- `ci` (bool)
|
||||||
|
|
||||||
|
If `ci` is `false`:
|
||||||
|
|
||||||
|
- `hash` -> `HASH`
|
||||||
|
- `hash_suffix` -> `HASH_SUFFIX`
|
||||||
|
- `sha` -> `SHA`
|
||||||
|
- `key` -> `KEY`
|
||||||
|
- `tag` -> `TAG`
|
||||||
|
- If the tag contains `%VERSION%`, that part will be replaced by the `git_version`, OR `version` if `git_version` is not specified
|
||||||
|
- `url` -> `URL`
|
||||||
|
- `artifact` -> `ARTIFACT`
|
||||||
|
- If the artifact contains `%VERSION%`, that part will be replaced by the `git_version`, OR `version` if `git_version` is not specified
|
||||||
|
- If the artifact contains `%TAG%`, that part will be replaced by the `tag` (with its replacement already done)
|
||||||
|
- `git_version` -> `GIT_VERSION`
|
||||||
|
- `git_host` -> `GIT_HOST`
|
||||||
|
- `source_subdir` -> `SOURCE_SUBDIR`
|
||||||
|
- `bundled` -> `BUNDLED_PACKAGE`
|
||||||
|
- `find_args` -> `FIND_PACKAGE_ARGUMENTS`
|
||||||
|
- `download_only` -> `DOWNLOAD_ONLY`
|
||||||
|
- `patches` -> `PATCHES` (array)
|
||||||
|
- `options` -> `OPTIONS` (array)
|
||||||
|
- `skip_updates`: Tells `check-updates.sh` to not check for new updates on this package.
|
||||||
|
|
||||||
|
Other arguments aren't currently supported. If you wish to add them, see the `AddJsonPackage` function in `CMakeModules/CPMUtil.cmake`.
|
||||||
|
|
||||||
|
If `ci` is `true`:
|
||||||
|
|
||||||
|
- `name` -> `NAME`, defaults to the object key
|
||||||
|
- `extension` -> `EXTENSION`, defaults to `tar.zst`
|
||||||
|
- `min_version` -> `MIN_VERSION`
|
||||||
|
- `extension` -> `EXTENSION`
|
||||||
|
- `disabled_platforms` -> `DISABLED_PLATFORMS` (array)
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discord-rpc (sha + options + patches).
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"openssl": {
|
||||||
|
"ci": true,
|
||||||
|
"package": "OpenSSL",
|
||||||
|
"name": "openssl",
|
||||||
|
"repo": "crueter-ci/OpenSSL",
|
||||||
|
"version": "3.6.0",
|
||||||
|
"min_version": "1.1.1",
|
||||||
|
"disabled_platforms": [
|
||||||
|
"macos-universal"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"boost": {
|
||||||
|
"package": "Boost",
|
||||||
|
"repo": "boostorg/boost",
|
||||||
|
"tag": "boost-%VERSION%",
|
||||||
|
"artifact": "%TAG%-cmake.7z",
|
||||||
|
"hash": "e5b049e5b61964480ca816395f63f95621e66cb9bcf616a8b10e441e0e69f129e22443acb11e77bc1e8170f8e4171b9b7719891efc43699782bfcd4b3a365f01",
|
||||||
|
"git_version": "1.88.0",
|
||||||
|
"version": "1.57"
|
||||||
|
},
|
||||||
|
"opus": {
|
||||||
|
"package": "Opus",
|
||||||
|
"repo": "xiph/opus",
|
||||||
|
"sha": "5ded705cf4",
|
||||||
|
"hash": "0dc89e58ddda1f3bc6a7037963994770c5806c10e66f5cc55c59286fc76d0544fe4eca7626772b888fd719f434bc8a92f792bdb350c807968b2ac14cfc04b203",
|
||||||
|
"version": "1.3",
|
||||||
|
"find_args": "MODULE",
|
||||||
|
"options": [
|
||||||
|
"OPUS_BUILD_TESTING OFF",
|
||||||
|
"OPUS_BUILD_PROGRAMS OFF",
|
||||||
|
"OPUS_INSTALL_PKG_CONFIG_MODULE OFF",
|
||||||
|
"OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"discord-rpc": {
|
||||||
|
"repo": "discord/discord-rpc",
|
||||||
|
"sha": "963aa9f3e5",
|
||||||
|
"hash": "386e1344e9a666d730f2d335ee3aef1fd05b1039febefd51aa751b705009cc764411397f3ca08dffd46205c72f75b235c870c737b2091a4ed0c3b061f5919bde",
|
||||||
|
"options": [
|
||||||
|
"BUILD_EXAMPLES OFF"
|
||||||
|
],
|
||||||
|
"patches": [
|
||||||
|
"0001-cmake-version.patch",
|
||||||
|
"0002-no-clang-format.patch",
|
||||||
|
"0003-fix-cpp17.patch"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
118
docs/CPMUtil/AddPackage.md
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
# `AddPackage`
|
||||||
|
|
||||||
|
<!-- TOC -->
|
||||||
|
- [Identification/Fetching](#identificationfetching)
|
||||||
|
- [Hashing](#hashing)
|
||||||
|
- [Other Options](#other-options)
|
||||||
|
- [Extra Variables](#extra-variables)
|
||||||
|
- [System/Bundled Packages](#systembundled-packages)
|
||||||
|
- [Identification](#identification)
|
||||||
|
<!-- /TOC -->
|
||||||
|
|
||||||
|
## Identification/Fetching
|
||||||
|
|
||||||
|
- `NAME` (required): The package name (must be the same as the `find_package` name if applicable)
|
||||||
|
- `VERSION`: The minimum version of this package that can be used on the system
|
||||||
|
- `GIT_VERSION`: The "version" found within git
|
||||||
|
- `URL`: The URL to fetch.
|
||||||
|
- `REPO`: The repo to use (`owner/repo`).
|
||||||
|
- `GIT_HOST`: The Git host to use
|
||||||
|
- Defaults to `github.com`. Do not include the protocol, as HTTPS is enforced.
|
||||||
|
- `TAG`: The tag to fetch, if applicable.
|
||||||
|
- `ARTIFACT`: The name of the artifact, if applicable.
|
||||||
|
- `SHA`: Commit sha to fetch, if applicable.
|
||||||
|
- `BRANCH`: Branch to fetch, if applicable.
|
||||||
|
|
||||||
|
The following configurations are supported, in descending order of precedence:
|
||||||
|
|
||||||
|
- `URL`: Bare URL download, useful for custom artifacts
|
||||||
|
- If this is set, `GIT_URL` or `REPO` should be set to allow the dependency viewer to link to the project's Git repository.
|
||||||
|
- If this is NOT set, `REPO` must be defined.
|
||||||
|
- `REPO + TAG + ARTIFACT`: GitHub release artifact
|
||||||
|
- The final download URL will be `https://github.com/${REPO}/releases/download/${TAG}/${ARTIFACT}`
|
||||||
|
- Useful for prebuilt libraries and prefetched archives
|
||||||
|
- `REPO + TAG`: GitHub tag archive
|
||||||
|
- The final download URL will be `https://github.com/${REPO}/archive/refs/tags/${TAG}.tar.gz`
|
||||||
|
- Useful for pinning to a specific tag, better for build identification
|
||||||
|
- `REPO + SHA`: GitHub commit archive
|
||||||
|
- The final download URL will be `https://github.com/${REPO}/archive/${SHA}.zip`
|
||||||
|
- Useful for pinning to a specific commit
|
||||||
|
- `REPO + BRANCH`: GitHub branch archive
|
||||||
|
- The final download URL will be `https://github.com/${REPO}/archive/refs/heads/${BRANCH}.zip`
|
||||||
|
- Generally not recommended unless the branch is frozen
|
||||||
|
- `REPO`: GitHub master archive
|
||||||
|
- The final download URL will be `https://github.com/${REPO}/archive/refs/heads/master.zip`
|
||||||
|
- Generally not recommended unless the project is dead
|
||||||
|
|
||||||
|
## Hashing
|
||||||
|
|
||||||
|
Hashing is used for verifying downloads. It's highly recommended to use these.
|
||||||
|
|
||||||
|
- `HASH_ALGO` (default `SHA512`): Hash algorithm to use
|
||||||
|
|
||||||
|
Hashing strategies, descending order of precedence:
|
||||||
|
|
||||||
|
- `HASH`: Bare hash verification, useful for static downloads e.g. commit archives
|
||||||
|
- `HASH_SUFFIX`: Download the hash as `${DOWNLOAD_URL}.${HASH_SUFFIX}`
|
||||||
|
- The downloaded hash *must* match the hash algorithm and contain nothing but the hash; no filenames or extra content.
|
||||||
|
- `HASH_URL`: Download the hash from a separate URL
|
||||||
|
|
||||||
|
## Other Options
|
||||||
|
|
||||||
|
- `KEY`: Custom cache key to use (stored as `.cache/cpm/${packagename_lower}/${key}`)
|
||||||
|
- Default is based on, in descending order of precedence:
|
||||||
|
- First 4 characters of the sha
|
||||||
|
- `GIT_VERSION`
|
||||||
|
- Tag
|
||||||
|
- `VERSION`
|
||||||
|
- Otherwise, CPM defaults will be used. This is not recommended as it doesn't produce reproducible caches
|
||||||
|
- `DOWNLOAD_ONLY`: Whether or not to configure the downloaded package via CMake
|
||||||
|
- Useful to turn `OFF` if the project doesn't use CMake
|
||||||
|
- `SOURCE_SUBDIR`: Subdirectory of the project containing a CMakeLists.txt file
|
||||||
|
- `FIND_PACKAGE_ARGUMENTS`: Arguments to pass to the `find_package` call
|
||||||
|
- `BUNDLED_PACKAGE`: Set to `ON` to default to the bundled package
|
||||||
|
- `FORCE_BUNDLED_PACKAGE`: Set to `ON` to force the usage of the bundled package, regardless of CPMUTIL_FORCE_SYSTEM or `<package>_FORCE_SYSTEM`
|
||||||
|
- `OPTIONS`: Options to pass to the configuration of the package
|
||||||
|
- `PATCHES`: Patches to apply to the package, stored in `.patch/${packagename_lower}/0001-patch-name.patch` and so on
|
||||||
|
- Other arguments can be passed to CPM as well
|
||||||
|
|
||||||
|
## Extra Variables
|
||||||
|
|
||||||
|
For each added package, users may additionally force usage of the system/bundled package.
|
||||||
|
|
||||||
|
- `${package}_DIR`: Path to a separately-downloaded copy of the package. Note that versioning is not checked!
|
||||||
|
- `${package}_FORCE_SYSTEM`: Require the package to be installed on the system
|
||||||
|
- `${package}_FORCE_BUNDLED`: Force the package to be fetched and use the bundled version
|
||||||
|
|
||||||
|
## System/Bundled Packages
|
||||||
|
|
||||||
|
Descending order of precedence:
|
||||||
|
|
||||||
|
- If `${package}_FORCE_SYSTEM` is true, requires the package to be on the system
|
||||||
|
- If `${package}_FORCE_BUNDLED` is true, forcefully uses the bundled package
|
||||||
|
- If `CPMUTIL_FORCE_SYSTEM` is true, requires the package to be on the system
|
||||||
|
- If `CPMUTIL_FORCE_BUNDLED` is true, forcefully uses the bundled package
|
||||||
|
- If the `BUNDLED_PACKAGE` argument is true, forcefully uses the bundled package
|
||||||
|
- Otherwise, CPM will search for the package first, and if not found, will use the bundled package
|
||||||
|
|
||||||
|
## Identification
|
||||||
|
|
||||||
|
All dependencies must be identifiable in some way for usage in the dependency viewer. Lists are provided in descending order of precedence.
|
||||||
|
|
||||||
|
URLs:
|
||||||
|
|
||||||
|
- `GIT_URL`
|
||||||
|
- `REPO` as a Git repository
|
||||||
|
- You may optionally specify `GIT_HOST` to use a custom host, e.g. `GIT_HOST git.crueter.xyz`. Note that the git host MUST be GitHub-like in its artifact/archive downloads, e.g. Forgejo
|
||||||
|
- If `GIT_HOST` is unspecified, defaults to `github.com`
|
||||||
|
- `URL`
|
||||||
|
|
||||||
|
Versions (bundled):
|
||||||
|
|
||||||
|
- `SHA`
|
||||||
|
- `GIT_VERSION`
|
||||||
|
- `VERSION`
|
||||||
|
- `TAG`
|
||||||
|
- "unknown"
|
||||||
|
|
||||||
|
If the package is a system package, AddPackage will attempt to determine the package version and append `(system)` to the identifier. Otherwise, it will be marked as `unknown (system)`
|
||||||
28
docs/CPMUtil/AddQt.md
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
# AddQt
|
||||||
|
|
||||||
|
Simply call `AddQt(<Qt Version>)` before any Qt `find_package` calls and everything will be set up for you. On Linux, the bundled Qt library is built as a shared library, and provided you have OpenSSL and X11, everything should just work.
|
||||||
|
|
||||||
|
On Windows, MinGW, and MacOS, Qt is bundled as a static library. No further action is needed, as the provided libraries automatically integrate the Windows/Cocoa plugins, alongside the corresponding Multimedia and Network plugins.
|
||||||
|
|
||||||
|
## Modules
|
||||||
|
|
||||||
|
The following modules are bundled into these Qt builds:
|
||||||
|
|
||||||
|
- Base (Gui, Core, Widgets, Network)
|
||||||
|
- Multimedia
|
||||||
|
- Declarative (Quick, QML)
|
||||||
|
- Linux: Wayland client
|
||||||
|
|
||||||
|
Each platform has the corresponding QPA built in and set as the default as well. This means you don't need to add `Q_IMPORT_PLUGIN`!
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
See an example in the [`tests/qt`](https://git.crueter.xyz/CMake/CPMUtil/src/branch/master/tests/qt/CMakeLists.txt) directory.
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
|
||||||
|
The following versions have available builds:
|
||||||
|
|
||||||
|
- 6.9.3
|
||||||
|
|
||||||
|
See [`crueter-ci/Qt`](https://github.com/crueter-ci/Qt) for an updated list at any time.
|
||||||
70
docs/CPMUtil/README.md
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
# CPMUtil
|
||||||
|
|
||||||
|
CPMUtil is a wrapper around CPM that aims to reduce boilerplate and add useful utility functions to make dependency management a piece of cake.
|
||||||
|
|
||||||
|
Global Options:
|
||||||
|
|
||||||
|
- `CPMUTIL_FORCE_SYSTEM` (default `OFF`): Require all CPM dependencies to use system packages. NOT RECOMMENDED!
|
||||||
|
- You may optionally override this (section)
|
||||||
|
- `CPMUTIL_FORCE_BUNDLED` (default `ON` on MSVC and Android, `OFF` elsewhere): Require all CPM dependencies to use bundled packages.
|
||||||
|
|
||||||
|
You are highly encouraged to read AddPackage first, even if you plan to only interact with CPMUtil via `AddJsonPackage`.
|
||||||
|
|
||||||
|
- [AddPackage](#addpackage)
|
||||||
|
- [AddCIPackage](#addcipackage)
|
||||||
|
- [AddJsonPackage](#addjsonpackage)
|
||||||
|
- [AddQt](#addqt)
|
||||||
|
- [Lists](#lists)
|
||||||
|
- [For Packagers](#for-packagers)
|
||||||
|
- [Network Sandbox](#network-sandbox)
|
||||||
|
- [Unsandboxed](#unsandboxed)
|
||||||
|
|
||||||
|
## AddPackage
|
||||||
|
|
||||||
|
The core of CPMUtil is the [`AddPackage`](./AddPackage.md) function. [`AddPackage`](./AddPackage.md) itself is fully CMake-based, and largely serves as an interface between CPM and the rest of CPMUtil.
|
||||||
|
|
||||||
|
## AddCIPackage
|
||||||
|
|
||||||
|
[`AddCIPackage`](./AddCIPackage.md) adds a package that follows [crueter's CI repository spec](https://github.com/crueter-ci).
|
||||||
|
|
||||||
|
## AddJsonPackage
|
||||||
|
|
||||||
|
[`AddJsonPackage`](./AddJsonPackage.md) is the recommended method of usage for CPMUtil.
|
||||||
|
|
||||||
|
## AddDependentPackage
|
||||||
|
|
||||||
|
[`AddDependentPackage`](./AddDependentPackage.md) allows you to add multiple packages such that all of them must be from the system OR bundled.
|
||||||
|
|
||||||
|
## AddQt
|
||||||
|
|
||||||
|
[`AddQt`](./AddQt.md) adds a specific version of Qt to your project.
|
||||||
|
|
||||||
|
## Lists
|
||||||
|
|
||||||
|
CPMUtil will create three lists of dependencies where `AddPackage` or similar was used. Each is in order of addition.
|
||||||
|
|
||||||
|
- `CPM_PACKAGE_NAMES`: The names of packages included by CPMUtil
|
||||||
|
- `CPM_PACKAGE_URLS`: The URLs to project/repo pages of packages
|
||||||
|
- `CPM_PACKAGE_SHAS`: Short version identifiers for each package
|
||||||
|
- If the package was included as a system package, `(system)` is appended thereafter
|
||||||
|
- Packages whose versions can't be deduced will be left as `unknown`.
|
||||||
|
|
||||||
|
For an example of how this might be implemented in an application, see Eden's implementation:
|
||||||
|
|
||||||
|
- [`dep_hashes.h.in`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/src/dep_hashes.h.in)
|
||||||
|
- [`GenerateDepHashes.cmake`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CMakeModules/GenerateDepHashes.cmake)
|
||||||
|
- [`deps_dialog.cpp`](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/src/yuzu/deps_dialog.cpp)
|
||||||
|
|
||||||
|
## For Packagers
|
||||||
|
|
||||||
|
If you are packaging a project that uses CPMUtil, read this!
|
||||||
|
|
||||||
|
### Network Sandbox
|
||||||
|
|
||||||
|
For sandboxed environments (e.g. Gentoo, nixOS) you must install all dependencies to the system beforehand and set `-DCPMUTIL_FORCE_SYSTEM=ON`. If a dependency is missing, get creating!
|
||||||
|
|
||||||
|
Alternatively, if CPMUtil pulls in a package that has no suitable way to install or use a system version, download it separately and pass `-DPackageName_DIR=/path/to/downloaded/dir` (e.g. shaders)
|
||||||
|
|
||||||
|
### Unsandboxed
|
||||||
|
|
||||||
|
For others (AUR, MPR, etc). CPMUtil will handle everything for you, including if some of the project's dependencies are missing from your distribution's repositories. That is pretty much half the reason I created this behemoth, after all.
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
- [Arch Linux](#arch-linux)
|
- [Arch Linux](#arch-linux)
|
||||||
- [Gentoo Linux](#gentoo-linux)
|
- [Gentoo Linux](#gentoo-linux)
|
||||||
- [macOS](#macos)
|
- [macOS](#macos)
|
||||||
- [OpenIndiana](#openindiana)
|
- [Solaris](#solaris)
|
||||||
- [OmniOS](#omnios)
|
|
||||||
- [HaikuOS](#haikuos)
|
- [HaikuOS](#haikuos)
|
||||||
- [OpenBSD](#openbsd)
|
- [OpenBSD](#openbsd)
|
||||||
- [FreeBSD](#freebsd)
|
- [FreeBSD](#freebsd)
|
||||||
|
|
@ -32,21 +31,21 @@ If you're having issues with building, always consult that ebuild.
|
||||||
|
|
||||||
macOS is largely untested. Expect crashes, significant Vulkan issues, and other fun stuff.
|
macOS is largely untested. Expect crashes, significant Vulkan issues, and other fun stuff.
|
||||||
|
|
||||||
## OpenIndiana
|
## Solaris
|
||||||
|
|
||||||
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
||||||
|
|
||||||
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
||||||
|
|
||||||
- **gcc**: Install either `developer/gcc-14`.
|
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||||
- **clang**: Version 20 is broken, install `developer/clang-19`.
|
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||||
|
|
||||||
Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configure command. In the meantime, a Qt Quick frontend is in the works--check back later!
|
Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configure command. In the meantime, a Qt Quick frontend is in the works--check back later!
|
||||||
|
|
||||||
This is needed for some dependencies that call cc directly (tz):
|
This is needed for some dependencies that call cc directly (tz):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
echo '#!/bin/sh -e' >cc
|
echo '#!/bin/sh' >cc
|
||||||
echo 'gcc $@' >>cc
|
echo 'gcc $@' >>cc
|
||||||
chmod +x cc
|
chmod +x cc
|
||||||
export PATH="$PATH:$PWD"
|
export PATH="$PATH:$PWD"
|
||||||
|
|
@ -65,33 +64,9 @@ export LIBGL_ALWAYS_SOFTWARE=1
|
||||||
```
|
```
|
||||||
|
|
||||||
- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
|
- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
|
||||||
|
- If using OpenIndiana, due to a bug in SDL2's CMake configuration, audio driver defaults to SunOS `<sys/audioio.h>`, which does not exist on OpenIndiana. Using external or bundled SDL2 may solve this.
|
||||||
- System OpenSSL generally does not work. Instead, use `-DYUZU_USE_BUNDLED_OPENSSL=ON` to use a bundled static OpenSSL, or build a system dependency from source.
|
- System OpenSSL generally does not work. Instead, use `-DYUZU_USE_BUNDLED_OPENSSL=ON` to use a bundled static OpenSSL, or build a system dependency from source.
|
||||||
|
|
||||||
## OmniOS
|
|
||||||
|
|
||||||
Install `developer/gcc14` on OmniOS using pkgsrc.
|
|
||||||
|
|
||||||
Since so many dependencies are missing on `OmniOS`, you may wish to use `-DCPMUTIL_FORCE_BUNDLED=ON`
|
|
||||||
|
|
||||||
For OmniOS you are required to build glslang yourself:
|
|
||||||
```sh
|
|
||||||
sudo pkg install python-313
|
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/glslang.git
|
|
||||||
cd glslang
|
|
||||||
python3.13 ./update_glslang_sources.py
|
|
||||||
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
|
||||||
cmake --build build -- -j `nproc`
|
|
||||||
cmake --install build
|
|
||||||
```
|
|
||||||
|
|
||||||
It may be tempting to specify `-t glslang`, but this will cause installation to fail. So don't.
|
|
||||||
|
|
||||||
Using `--parallel` on CMake incorrectly passes `dmake ... -jn` instead of `dmake ... -j n`, this is a bug with OmniOS's CMake, and as such it's recommended to not use this option until it's fixed.
|
|
||||||
|
|
||||||
You may also need to install `gmake` in order to properly build FFmpeg, this is provided by the `build-essential` package.
|
|
||||||
|
|
||||||
If it wasn't obvious already, you require a X11 server to properly run the emulator within OmniOS, [this guide](https://web.archive.org/web/20260424200928/https://geekblood.wordpress.com/2017/10/26/installing-x11-and-a-desktop-environment-on-omnios/) is a great starting point for that, the links to pkgsrc are outdated so follow [this exemplar](https://pkgsrc.smartos.org/install-on-illumos/) as well:
|
|
||||||
|
|
||||||
## HaikuOS
|
## HaikuOS
|
||||||
|
|
||||||
It's recommended to do a `pkgman full-sync` before installing. See [HaikuOS: Installing applications](https://www.haiku-os.org/guides/daily-tasks/install-applications/). Sometimes the process may be interrupted by an error like "Interrupted syscall". Simply firing the command again fixes the issue. By default `g++` is included on the default installation.
|
It's recommended to do a `pkgman full-sync` before installing. See [HaikuOS: Installing applications](https://www.haiku-os.org/guides/daily-tasks/install-applications/). Sometimes the process may be interrupted by an error like "Interrupted syscall". Simply firing the command again fixes the issue. By default `g++` is included on the default installation.
|
||||||
|
|
|
||||||