forked from eden-emu/eden
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>
3.6 KiB
3.6 KiB
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.
Options
package->NAME(PACKAGEfor CI), defaults to the object keyrepo->REPOversion->VERSIONci(bool)
If ci is false:
hash->HASHhash_suffix->HASH_SUFFIXsha->SHAkey->KEYtag->TAG- If the tag contains
%VERSION%, that part will be replaced by thegit_version, ORversionifgit_versionis not specified
- If the tag contains
url->URLartifact->ARTIFACT- If the artifact contains
%VERSION%, that part will be replaced by thegit_version, ORversionifgit_versionis not specified - If the artifact contains
%TAG%, that part will be replaced by thetag(with its replacement already done)
- If the artifact contains
git_version->GIT_VERSIONgit_host->GIT_HOSTsource_subdir->SOURCE_SUBDIRbundled->BUNDLED_PACKAGEfind_args->FIND_PACKAGE_ARGUMENTSdownload_only->DOWNLOAD_ONLYpatches->PATCHES(array)options->OPTIONS(array)skip_updates: Tellscheck-updates.shto 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 keyextension->EXTENSION, defaults totar.zstmin_version->MIN_VERSIONextension->EXTENSIONdisabled_platforms->DISABLED_PLATFORMS(array)
Examples
In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discord-rpc (sha + options + patches).
{
"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"
]
}
}