mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-06-06 01:13:45 -04:00
update cpmutil
Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
parent
060ebb8ad4
commit
aff9a6cee1
6 changed files with 63 additions and 34 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
set(CPM_SOURCE_CACHE "${PROJECT_SOURCE_DIR}/.cache/cpm" CACHE STRING "" FORCE)
|
set(CPM_SOURCE_CACHE "${PROJECT_SOURCE_DIR}/.cache/cpm" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
if(MSVC OR ANDROID)
|
if(MSVC OR ANDROID OR IOS)
|
||||||
set(BUNDLED_DEFAULT ON)
|
set(BUNDLED_DEFAULT ON)
|
||||||
else()
|
else()
|
||||||
set(BUNDLED_DEFAULT OFF)
|
set(BUNDLED_DEFAULT OFF)
|
||||||
|
|
@ -128,7 +128,8 @@ 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 the following packages to your system if available:"
|
"1. Install or upgrade the following packages "
|
||||||
|
"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"
|
||||||
|
|
@ -247,7 +248,9 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS)
|
set(multiValueArgs OPTIONS)
|
||||||
|
|
||||||
cmake_parse_arguments(JSON "" "${oneValueArgs}" "${multiValueArgs}"
|
set(optionArgs MODULE)
|
||||||
|
|
||||||
|
cmake_parse_arguments(JSON "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
list(LENGTH ARGN argnLength)
|
list(LENGTH ARGN argnLength)
|
||||||
|
|
@ -276,6 +279,10 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
parse_object(${object})
|
parse_object(${object})
|
||||||
|
|
||||||
|
if (JSON_MODULE)
|
||||||
|
set(EXTRA_ARGS MODULE)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(ci)
|
if(ci)
|
||||||
AddCIPackage(
|
AddCIPackage(
|
||||||
VERSION ${version}
|
VERSION ${version}
|
||||||
|
|
@ -284,8 +291,8 @@ function(AddJsonPackage)
|
||||||
PACKAGE ${package}
|
PACKAGE ${package}
|
||||||
EXTENSION ${extension}
|
EXTENSION ${extension}
|
||||||
MIN_VERSION ${min_version}
|
MIN_VERSION ${min_version}
|
||||||
DISABLED_PLATFORMS ${disabled_platforms})
|
DISABLED_PLATFORMS ${disabled_platforms}
|
||||||
|
${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)
|
||||||
|
|
@ -307,23 +314,24 @@ 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_VERSION ${git_version}
|
GIT_VERSION "${git_version}"
|
||||||
GIT_HOST ${git_host}
|
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 configurations, descending order of precedence:
|
||||||
|
|
@ -368,7 +376,9 @@ function(AddPackage)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS PATCHES)
|
set(multiValueArgs OPTIONS PATCHES)
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}"
|
set(optionArgs MODULE)
|
||||||
|
|
||||||
|
cmake_parse_arguments(PKG_ARGS "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
if(NOT DEFINED PKG_ARGS_NAME)
|
if(NOT DEFINED PKG_ARGS_NAME)
|
||||||
|
|
@ -552,6 +562,12 @@ function(AddPackage)
|
||||||
VERSION ${PKG_ARGS_VERSION})
|
VERSION ${PKG_ARGS_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (PKG_ARGS_MODULE)
|
||||||
|
set(PKG_ARGS_DOWNLOAD_ONLY ON)
|
||||||
|
elseif (NOT DEFINED PKG_ARGS_DOWNLOAD_ONLY)
|
||||||
|
set(PKG_ARGS_DOWNLOAD_ONLY OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
CPMAddPackage(
|
CPMAddPackage(
|
||||||
NAME ${PKG_ARGS_NAME}
|
NAME ${PKG_ARGS_NAME}
|
||||||
URL ${pkg_url}
|
URL ${pkg_url}
|
||||||
|
|
@ -601,13 +617,14 @@ function(AddPackage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
set(${PKG_ARGS_NAME}_ADDED "${${PKG_ARGS_NAME}_ADDED}"
|
Propagate(${PKG_ARGS_NAME}_ADDED)
|
||||||
PARENT_SCOPE)
|
Propagate(${PKG_ARGS_NAME}_SOURCE_DIR)
|
||||||
set(${PKG_ARGS_NAME}_SOURCE_DIR "${${PKG_ARGS_NAME}_SOURCE_DIR}"
|
Propagate(${PKG_ARGS_NAME}_BINARY_DIR)
|
||||||
PARENT_SCOPE)
|
|
||||||
set(${PKG_ARGS_NAME}_BINARY_DIR "${${PKG_ARGS_NAME}_BINARY_DIR}"
|
|
||||||
PARENT_SCOPE)
|
|
||||||
|
|
||||||
|
if (PKG_ARGS_MODULE)
|
||||||
|
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?
|
||||||
|
|
@ -690,14 +707,20 @@ function(AddCIPackage)
|
||||||
set(pkgname linux-amd64)
|
set(pkgname linux-amd64)
|
||||||
elseif(PLATFORM_LINUX AND ARCHITECTURE_arm64)
|
elseif(PLATFORM_LINUX AND ARCHITECTURE_arm64)
|
||||||
set(pkgname linux-aarch64)
|
set(pkgname linux-aarch64)
|
||||||
elseif(APPLE)
|
elseif(APPLE AND NOT IOS)
|
||||||
set(pkgname macos-universal)
|
set(pkgname macos-universal)
|
||||||
|
elseif(IOS AND ARCHITECTURE_arm64)
|
||||||
|
set(pkgname ios-aarch64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED pkgname AND NOT "${pkgname}" IN_LIST DISABLED_PLATFORMS)
|
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)
|
||||||
|
set(EXTRA_ARGS MODULE)
|
||||||
|
endif()
|
||||||
|
|
||||||
AddPackage(
|
AddPackage(
|
||||||
NAME ${ARTIFACT_PACKAGE}
|
NAME ${ARTIFACT_PACKAGE}
|
||||||
REPO ${ARTIFACT_REPO}
|
REPO ${ARTIFACT_REPO}
|
||||||
|
|
@ -708,23 +731,22 @@ function(AddCIPackage)
|
||||||
KEY "${pkgname}-${ARTIFACT_VERSION}"
|
KEY "${pkgname}-${ARTIFACT_VERSION}"
|
||||||
HASH_SUFFIX sha512sum
|
HASH_SUFFIX sha512sum
|
||||||
FORCE_BUNDLED_PACKAGE ON
|
FORCE_BUNDLED_PACKAGE ON
|
||||||
DOWNLOAD_ONLY ${PKG_ARGS_MODULE})
|
${EXTRA_ARGS})
|
||||||
|
|
||||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||||
set(${ARTIFACT_PACKAGE}_SOURCE_DIR
|
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR)
|
||||||
"${${ARTIFACT_PACKAGE}_SOURCE_DIR}" PARENT_SCOPE)
|
Propagate(CMAKE_PREFIX_PATH)
|
||||||
|
|
||||||
if (PKG_ARGS_MODULE)
|
|
||||||
list(PREPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}")
|
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
|
||||||
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 version)
|
function(AddQt repo 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()
|
||||||
|
|
@ -734,7 +756,7 @@ function(AddQt version)
|
||||||
PACKAGE Qt6
|
PACKAGE Qt6
|
||||||
VERSION ${version}
|
VERSION ${version}
|
||||||
MIN_VERSION 6
|
MIN_VERSION 6
|
||||||
REPO crueter-ci/Qt
|
REPO ${repo}
|
||||||
DISABLED_PLATFORMS
|
DISABLED_PLATFORMS
|
||||||
android-x86_64 android-aarch64
|
android-x86_64 android-aarch64
|
||||||
freebsd-amd64 solaris-amd64 openbsd-amd64
|
freebsd-amd64 solaris-amd64 openbsd-amd64
|
||||||
|
|
|
||||||
|
|
@ -18,3 +18,4 @@
|
||||||
- `linux-amd64`
|
- `linux-amd64`
|
||||||
- `linux-aarch64`
|
- `linux-aarch64`
|
||||||
- `macos-universal`
|
- `macos-universal`
|
||||||
|
- `ios-aarch64`
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,8 @@ In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discor
|
||||||
"version": "3.6.0",
|
"version": "3.6.0",
|
||||||
"min_version": "1.1.1",
|
"min_version": "1.1.1",
|
||||||
"disabled_platforms": [
|
"disabled_platforms": [
|
||||||
"macos-universal"
|
"macos-universal",
|
||||||
|
"ios-aarch64"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"boost": {
|
"boost": {
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ ci_package() {
|
||||||
android-aarch64 android-x86_64 \
|
android-aarch64 android-x86_64 \
|
||||||
solaris-amd64 freebsd-amd64 openbsd-amd64 \
|
solaris-amd64 freebsd-amd64 openbsd-amd64 \
|
||||||
linux-amd64 linux-aarch64 \
|
linux-amd64 linux-aarch64 \
|
||||||
macos-universal; do
|
macos-universal ios-aarch64; do
|
||||||
echo "-- * platform $platform"
|
echo "-- * platform $platform"
|
||||||
|
|
||||||
case $DISABLED in
|
case $DISABLED in
|
||||||
|
|
|
||||||
|
|
@ -83,8 +83,13 @@ for pkg in $packages; do
|
||||||
echo "-- Package $PACKAGE"
|
echo "-- Package $PACKAGE"
|
||||||
|
|
||||||
# TODO(crueter): Support for Forgejo updates w/ forgejo_token
|
# TODO(crueter): Support for Forgejo updates w/ forgejo_token
|
||||||
# Use gh-cli to avoid ratelimits lmao
|
# Use gh-cli to avoid ratelimits, if available
|
||||||
TAGS=$(gh api --method GET "/repos/$REPO/tags")
|
endpoint="/repos/$REPO/tags"
|
||||||
|
if command -v gh >/dev/null 2>&1; then
|
||||||
|
TAGS=$(gh api --method GET "$endpoint")
|
||||||
|
else
|
||||||
|
TAGS=$(curl -sfL "https://api.github.com$endpoint")
|
||||||
|
fi
|
||||||
|
|
||||||
# filter out some commonly known annoyances
|
# filter out some commonly known annoyances
|
||||||
# TODO add more
|
# TODO add more
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ mingw-amd64 mingw-arm64
|
||||||
android-aarch64 android-x86_64
|
android-aarch64 android-x86_64
|
||||||
solaris-amd64 freebsd-amd64 openbsd-amd64
|
solaris-amd64 freebsd-amd64 openbsd-amd64
|
||||||
linux-amd64 linux-aarch64
|
linux-amd64 linux-aarch64
|
||||||
macos-universal"
|
macos-universal ios-aarch64"
|
||||||
|
|
||||||
DISABLED_PLATFORMS="$reply"
|
DISABLED_PLATFORMS="$reply"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue