|
|
@ -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" |
|
|
@ -241,15 +242,14 @@ 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 |
|
|
BUNDLED_PACKAGE |
|
|
FORCE_BUNDLED_PACKAGE) |
|
|
FORCE_BUNDLED_PACKAGE) |
|
|
|
|
|
|
|
|
set(multiValueArgs OPTIONS) |
|
|
set(multiValueArgs OPTIONS) |
|
|
|
|
|
|
|
|
set(options MODULE) |
|
|
|
|
|
|
|
|
set(optionArgs MODULE_PATH DOWNLOAD_ONLY) |
|
|
|
|
|
|
|
|
cmake_parse_arguments(JSON "${options}" "${oneValueArgs}" "${multiValueArgs}" |
|
|
|
|
|
|
|
|
cmake_parse_arguments(JSON "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" |
|
|
"${ARGN}") |
|
|
"${ARGN}") |
|
|
|
|
|
|
|
|
list(LENGTH ARGN argnLength) |
|
|
list(LENGTH ARGN argnLength) |
|
|
@ -278,11 +278,15 @@ function(AddJsonPackage) |
|
|
|
|
|
|
|
|
parse_object(${object}) |
|
|
parse_object(${object}) |
|
|
|
|
|
|
|
|
if(ci) |
|
|
|
|
|
if (JSON_MODULE) |
|
|
|
|
|
set(EXTRA_ARGS MODULE) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
if (JSON_MODULE_PATH) |
|
|
|
|
|
list(APPEND EXTRA_ARGS MODULE_PATH) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if (JSON_DOWNLOAD_ONLY) |
|
|
|
|
|
list(APPEND EXTRA_ARGS DOWNLOAD_ONLY) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if(ci) |
|
|
AddCIPackage( |
|
|
AddCIPackage( |
|
|
VERSION ${version} |
|
|
VERSION ${version} |
|
|
NAME ${name} |
|
|
NAME ${name} |
|
|
@ -313,40 +317,25 @@ 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_HOST ${git_host} |
|
|
|
|
|
|
|
|
GIT_VERSION "${git_version}" |
|
|
|
|
|
GIT_HOST "${git_host}" |
|
|
|
|
|
|
|
|
ARTIFACT ${artifact} |
|
|
|
|
|
TAG ${tag}) |
|
|
|
|
|
|
|
|
ARTIFACT "${artifact}" |
|
|
|
|
|
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 |
|
|
@ -366,6 +355,7 @@ function(AddPackage) |
|
|
|
|
|
|
|
|
URL |
|
|
URL |
|
|
GIT_URL |
|
|
GIT_URL |
|
|
|
|
|
SOURCE_SUBDIR |
|
|
|
|
|
|
|
|
KEY |
|
|
KEY |
|
|
BUNDLED_PACKAGE |
|
|
BUNDLED_PACKAGE |
|
|
@ -374,7 +364,9 @@ function(AddPackage) |
|
|
|
|
|
|
|
|
set(multiValueArgs OPTIONS PATCHES) |
|
|
set(multiValueArgs OPTIONS PATCHES) |
|
|
|
|
|
|
|
|
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}" |
|
|
|
|
|
|
|
|
set(optionArgs MODULE_PATH DOWNLOAD_ONLY) |
|
|
|
|
|
|
|
|
|
|
|
cmake_parse_arguments(PKG_ARGS "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" |
|
|
"${ARGN}") |
|
|
"${ARGN}") |
|
|
|
|
|
|
|
|
if(NOT DEFINED PKG_ARGS_NAME) |
|
|
if(NOT DEFINED PKG_ARGS_NAME) |
|
|
@ -558,16 +550,36 @@ function(AddPackage) |
|
|
VERSION ${PKG_ARGS_VERSION}) |
|
|
VERSION ${PKG_ARGS_VERSION}) |
|
|
endif() |
|
|
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() |
|
|
|
|
|
|
|
|
CPMAddPackage( |
|
|
CPMAddPackage( |
|
|
NAME ${PKG_ARGS_NAME} |
|
|
|
|
|
URL ${pkg_url} |
|
|
|
|
|
URL_HASH ${pkg_hash} |
|
|
|
|
|
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} |
|
|
|
|
|
|
|
|
NAME "${PKG_ARGS_NAME}" |
|
|
|
|
|
URL "${pkg_url}" |
|
|
|
|
|
URL_HASH "${pkg_hash}" |
|
|
|
|
|
CUSTOM_CACHE_KEY "${pkg_key}" |
|
|
|
|
|
|
|
|
EXCLUDE_FROM_ALL ON |
|
|
EXCLUDE_FROM_ALL ON |
|
|
|
|
|
|
|
|
${EXTRA_ARGS} |
|
|
${EXTRA_ARGS} |
|
|
@ -607,13 +619,14 @@ function(AddPackage) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
# pass stuff to parent scope |
|
|
# pass stuff to parent scope |
|
|
set(${PKG_ARGS_NAME}_ADDED "${${PKG_ARGS_NAME}_ADDED}" |
|
|
|
|
|
PARENT_SCOPE) |
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
Propagate(${PKG_ARGS_NAME}_ADDED) |
|
|
|
|
|
Propagate(${PKG_ARGS_NAME}_SOURCE_DIR) |
|
|
|
|
|
Propagate(${PKG_ARGS_NAME}_BINARY_DIR) |
|
|
|
|
|
|
|
|
|
|
|
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? |
|
|
@ -629,7 +642,7 @@ function(AddCIPackage) |
|
|
|
|
|
|
|
|
set(multiValueArgs DISABLED_PLATFORMS) |
|
|
set(multiValueArgs DISABLED_PLATFORMS) |
|
|
|
|
|
|
|
|
set(optionArgs MODULE) |
|
|
|
|
|
|
|
|
set(optionArgs MODULE_PATH) |
|
|
|
|
|
|
|
|
cmake_parse_arguments(PKG_ARGS |
|
|
cmake_parse_arguments(PKG_ARGS |
|
|
"${optionArgs}" |
|
|
"${optionArgs}" |
|
|
@ -706,6 +719,10 @@ function(AddCIPackage) |
|
|
set(ARTIFACT |
|
|
set(ARTIFACT |
|
|
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}") |
|
|
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}") |
|
|
|
|
|
|
|
|
|
|
|
if (PKG_ARGS_MODULE_PATH) |
|
|
|
|
|
list(APPEND EXTRA_ARGS MODULE_PATH) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
AddPackage( |
|
|
AddPackage( |
|
|
NAME ${ARTIFACT_PACKAGE} |
|
|
NAME ${ARTIFACT_PACKAGE} |
|
|
REPO ${ARTIFACT_REPO} |
|
|
REPO ${ARTIFACT_REPO} |
|
|
@ -716,16 +733,11 @@ 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 |
|
|
|
|
|
"${${ARTIFACT_PACKAGE}_SOURCE_DIR}" PARENT_SCOPE) |
|
|
|
|
|
|
|
|
|
|
|
if (PKG_ARGS_MODULE) |
|
|
|
|
|
list(PREPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}") |
|
|
|
|
|
Propagate(CMAKE_PREFIX_PATH) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR) |
|
|
|
|
|
Propagate(CMAKE_PREFIX_PATH) |
|
|
else() |
|
|
else() |
|
|
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED) |
|
|
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED) |
|
|
endif() |
|
|
endif() |
|
|
@ -750,7 +762,7 @@ function(AddQt repo version) |
|
|
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 |
|
|
MODULE) |
|
|
|
|
|
|
|
|
MODULE_PATH) |
|
|
|
|
|
|
|
|
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH) |
|
|
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH) |
|
|
|
|
|
|
|
|
|