[cmake] refactor: cpmfile, deps prefetch, force system and more (#322)

CPM Dependencies are now managed in a singular json file, where each can be properly prefetched at-will via `tools/cpm-fetch.sh <packages...>`, or all at once via `tools/cpm-fetch-all.sh`.

Adds docs for CPMUtil as well.

Also adds `<package>_FORCE_{BUNDLED,SYSTEM}` overrides

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/322
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
This commit is contained in:
crueter 2025-08-29 00:18:02 +02:00
parent d709771d67
commit 702a2beb7c
Signed by: crueter
GPG key ID: 425ACD2D4830EBC6
23 changed files with 1253 additions and 562 deletions

View file

@ -1,7 +1,8 @@
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
# cpm
# Explicitly include CPMUtil here since we have a separate cpmfile for Qt externals
set(CPMUTIL_JSON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cpmfile.json)
include(CPMUtil)
# Disable tests/tools in all externals supporting the standard option name
@ -14,12 +15,4 @@ set(BUILD_SHARED_LIBS OFF)
set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL ON)
# QuaZip
AddPackage(
NAME QuaZip-Qt6
VERSION 1.3
REPO "crueter/quazip-qt6"
SHA f838774d63
HASH 9f629a438699801244a106c8df6d5f8f8d19e80df54f530a89403a10c8c4e37a6e95606bbdd307f23636961e8ce34eb37a2186d589a1f227ac9c8e2c678e326e
OPTIONS
"QUAZIP_INSTALL OFF"
)
AddJsonPackage(quazip)