aboutsummaryrefslogtreecommitdiff
path: root/CMakeModules
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2025-10-05 03:04:53 +0200
committercrueter <crueter@eden-emu.dev>2025-10-05 03:04:53 +0200
commit9f385bf627e40e2b7d5b06cd83cab0a4e9f98f99 (patch)
treea9146b701ca51c941197fe60f90b691ecf60506c /CMakeModules
parent1a13e79c3d8619ff302d9c77eacf1a35c2210b66 (diff)
[tools, cmake] refactor: update/hash check scripts, use tags for some more deps, proper CPMUtil separation (#2666)
Uses tags for a bunch of deps that can use them Also adds a bunmch of scripts to tools/cpm, notably for checking hashes and checking for updates. TODO for the future: - CI target to check hashes - Weekly CI to check for updates Need to get that other CI runner up additional stuff - Ports gentoo fixes - makes solaris work (TODO: sdl2) - way better docs - properly separates CPMUtil as a standalone project Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2666 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'CMakeModules')
-rw-r--r--CMakeModules/CPM.cmake8
-rw-r--r--CMakeModules/CPMUtil.cmake20
-rw-r--r--CMakeModules/Findzstd.cmake3
3 files changed, 23 insertions, 8 deletions
diff --git a/CMakeModules/CPM.cmake b/CMakeModules/CPM.cmake
index 3636ee5da0..5544d8eefe 100644
--- a/CMakeModules/CPM.cmake
+++ b/CMakeModules/CPM.cmake
@@ -743,9 +743,11 @@ function(CPMAddPackage)
if(NOT DEFINED CPM_ARGS_NAME)
set(CPM_ARGS_NAME ${nameFromUrl})
endif()
- if(NOT DEFINED CPM_ARGS_VERSION)
- set(CPM_ARGS_VERSION ${verFromUrl})
- endif()
+
+ # this is dumb and should not be done
+ # if(NOT DEFINED CPM_ARGS_VERSION)
+ # set(CPM_ARGS_VERSION ${verFromUrl})
+ # endif()
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}")
endif()
diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake
index 3347c7e884..3d7b84c029 100644
--- a/CMakeModules/CPMUtil.cmake
+++ b/CMakeModules/CPMUtil.cmake
@@ -277,6 +277,7 @@ function(AddPackage)
KEY
BUNDLED_PACKAGE
+ FORCE_BUNDLED_PACKAGE
FIND_PACKAGE_ARGUMENTS
)
@@ -426,7 +427,9 @@ function(AddPackage)
- BUNDLED_PACKAGE
- default to allow local
]]#
- if (${PKG_ARGS_NAME}_FORCE_SYSTEM)
+ if (PKG_ARGS_FORCE_BUNDLED_PACKAGE)
+ set_precedence(OFF OFF)
+ elseif (${PKG_ARGS_NAME}_FORCE_SYSTEM)
set_precedence(ON ON)
elseif (${PKG_ARGS_NAME}_FORCE_BUNDLED)
set_precedence(OFF OFF)
@@ -446,9 +449,14 @@ function(AddPackage)
set_precedence(ON OFF)
endif()
+ if (DEFINED PKG_ARGS_VERSION)
+ list(APPEND EXTRA_ARGS
+ VERSION ${PKG_ARGS_VERSION}
+ )
+ endif()
+
CPMAddPackage(
NAME ${PKG_ARGS_NAME}
- VERSION ${PKG_ARGS_VERSION}
URL ${pkg_url}
URL_HASH ${pkg_hash}
CUSTOM_CACHE_KEY ${pkg_key}
@@ -459,6 +467,8 @@ function(AddPackage)
PATCHES ${PKG_ARGS_PATCHES}
EXCLUDE_FROM_ALL ON
+ ${EXTRA_ARGS}
+
${PKG_ARGS_UNPARSED_ARGUMENTS}
)
@@ -511,12 +521,12 @@ function(add_ci_package key)
NAME ${ARTIFACT_PACKAGE}
REPO ${ARTIFACT_REPO}
TAG v${ARTIFACT_VERSION}
- VERSION ${ARTIFACT_VERSION}
+ GIT_VERSION ${ARTIFACT_VERSION}
ARTIFACT ${ARTIFACT}
- KEY ${key}
+ KEY ${key}-${ARTIFACT_VERSION}
HASH_SUFFIX sha512sum
- BUNDLED_PACKAGE ON
+ FORCE_BUNDLED_PACKAGE ON
)
set(ARTIFACT_DIR ${${ARTIFACT_PACKAGE}_SOURCE_DIR} PARENT_SCOPE)
diff --git a/CMakeModules/Findzstd.cmake b/CMakeModules/Findzstd.cmake
index bf38d20fbf..17efec2192 100644
--- a/CMakeModules/Findzstd.cmake
+++ b/CMakeModules/Findzstd.cmake
@@ -13,9 +13,12 @@ find_package_handle_standard_args(zstd
if (zstd_FOUND AND NOT TARGET zstd::zstd)
if (TARGET zstd::libzstd_shared)
add_library(zstd::zstd ALIAS zstd::libzstd_shared)
+ add_library(zstd::libzstd ALIAS zstd::libzstd_shared)
elseif (TARGET zstd::libzstd_static)
add_library(zstd::zstd ALIAS zstd::libzstd_static)
+ add_library(zstd::libzstd ALIAS zstd::libzstd_static)
else()
add_library(zstd::zstd ALIAS PkgConfig::ZSTD)
+ add_library(zstd::libzstd ALIAS PkgConfig::ZSTD)
endif()
endif()