updates CPMUtil to
[`8f9b39fc98`](8f9b39fc98
)
Makes the tooling/docs better and enforces usage of tar.gz everywhere as
opposed to zips
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: eden-emu/eden#2790
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2.1 KiB
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
(defaultOFF
): Require all CPM dependencies to use system packages. NOT RECOMMENDED!- You may optionally override this (section)
CPMUTIL_FORCE_BUNDLED
(defaultON
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
The core of CPMUtil is the AddPackage
function. AddPackage
itself is fully CMake-based, and largely serves as an interface between CPM and the rest of CPMUtil.
AddCIPackage
AddCIPackage
adds a package that follows crueter's CI repository spec.
AddJsonPackage
AddJsonPackage
is the recommended method of usage for CPMUtil.
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 CPMUtilCPM_PACKAGE_URLS
: The URLs to project/repo pages of packagesCPM_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
.
- If the package was included as a system package,
For an example of how this might be implemented in an application, see Eden's implementation: