Skip to content

Commit 29d679c

Browse files
committed
[builtins] download instead of bundle xxhash
add CMakeLists patch rm bundled copy
1 parent 66c0195 commit 29d679c

File tree

4 files changed

+67
-4843
lines changed

4 files changed

+67
-4843
lines changed

builtins/xxhash/CMakeLists.txt

Lines changed: 56 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,57 @@
1-
# Copyright (C) 1995-2021, Rene Brun and Fons Rademakers.
2-
# All rights reserved.
1+
# Copyright (C) 1995-2026, Rene Brun and Fons Rademakers. All rights reserved.
32
#
4-
# For the licensing terms see $ROOTSYS/LICENSE.
5-
# For the list of contributors see $ROOTSYS/README/CREDITS.
6-
7-
project(xxhash C)
8-
9-
unset(xxHash_FOUND CACHE)
10-
unset(xxHash_FOUND PARENT_SCOPE)
11-
set(xxHash_FOUND TRUE CACHE BOOL "" FORCE)
12-
13-
file(STRINGS xxhash.h XXHASH_H REGEX "^#define XXH_VERSION_[A-Z]+[ ]+[0-9]+$")
14-
string(REGEX REPLACE ".+XXH_VERSION_MAJOR[ ]+([0-9]+).*$" "\\1" xxHash_VERSION_MAJOR "${XXHASH_H}")
15-
string(REGEX REPLACE ".+XXH_VERSION_MINOR[ ]+([0-9]+).*$" "\\1" xxHash_VERSION_MINOR "${XXHASH_H}")
16-
string(REGEX REPLACE ".+XXH_VERSION_RELEASE[ ]+([0-9]+).*$" "\\1" xxHash_VERSION_PATCH "${XXHASH_H}")
17-
set(xxHash_VERSION_STRING "${xxHash_VERSION_MAJOR}.${xxHash_VERSION_MINOR}.${xxHash_VERSION_PATCH}")
18-
19-
set(xxHash_VERSION ${xxHash_VERSION_STRING} CACHE INTERNAL "")
20-
set(xxHash_VERSION_STRING ${xxHash_VERSION_STRING} CACHE INTERNAL "")
21-
22-
set(xxHash_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "")
23-
set(xxHash_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "")
24-
mark_as_advanced(xxHash_INCLUDE_DIR)
25-
26-
add_library(xxhash STATIC xxhash.h xxhash.c)
27-
set_target_properties(xxhash PROPERTIES C_VISIBILITY_PRESET hidden POSITION_INDEPENDENT_CODE ON)
28-
target_include_directories(xxhash INTERFACE $<BUILD_INTERFACE:${xxHash_INCLUDE_DIR}>)
29-
30-
add_library(xxHash::xxHash ALIAS xxhash)
31-
32-
set(xxHash_LIBRARY $<TARGET_FILE:xxhash> CACHE INTERNAL "")
33-
set(xxHash_LIBRARIES xxHash::xxHash CACHE INTERNAL "")
34-
35-
set_property(GLOBAL APPEND PROPERTY ROOT_BUILTIN_TARGETS xxHash::xxHash)
3+
# For the licensing terms see $ROOTSYS/LICENSE. For the list of contributors see
4+
# $ROOTSYS/README/CREDITS.
5+
6+
# **PLEASE UPDATE ALSO THE FOLLOWING LINE WHEN UPDATING THE VERSION**
7+
# 30 Dec 2024, https://github.com/Cyan4973/xxHash/releases/tag/v0.8.3
8+
set(ROOT_XXHASH_VERSION 0.8.3)
9+
set(ROOT_XXHASH_HASH "aae608dfe8213dfd05d909a57718ef82f30722c392344583d3f39050c7f29a80")
10+
# The sources come w/o CMakeList.txt as of version 0.8.3. We add ours, it's very simple.
11+
set(ROOT_XXHASH_PATCH_FILE ${CMAKE_CURRENT_SOURCE_DIR}/xxhash_add_cmakelists.patch)
12+
13+
set(ROOT_XXHASH_PREFIX ${CMAKE_BINARY_DIR}/builtins/XXHASH-prefix)
14+
15+
set(ROOT_XXHASH_LIBRARY ${ROOT_XXHASH_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xxhash-static${CMAKE_STATIC_LIBRARY_SUFFIX}
16+
)
17+
18+
if(WIN32 AND NOT CMAKE_GENERATOR MATCHES Ninja)
19+
if(winrtdebug)
20+
set(ROOT_LIBGIF_BUILD_COMMAND_FLAGS "--config Debug")
21+
else()
22+
set(ROOT_LIBGIF_BUILD_COMMAND_FLAGS "--config $<IF:$<CONFIG:Debug,RelWithDebInfo>,RelWithDebInfo,Release>")
23+
endif()
24+
endif()
25+
26+
ExternalProject_Add(
27+
BUILTIN_XXHASH
28+
PREFIX ${ROOT_XXHASH_PREFIX}
29+
URL https://github.com/Cyan4973/xxHash/archive/refs/tags/v${ROOT_XXHASH_VERSION}.tar.gz
30+
URL_HASH SHA256=${ROOT_XXHASH_HASH}
31+
PATCH_COMMAND git apply ${ROOT_XXHASH_PATCH_FILE}
32+
CMAKE_ARGS -G ${CMAKE_GENERATOR}
33+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
34+
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
35+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
36+
-DCMAKE_C_VISIBILITY_PRESET=hidden
37+
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_XXHASH_BUILD_COMMAND_FLAGS}
38+
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_XXHASH_BUILD_COMMAND_FLAGS} --target install
39+
LOG_CONFIGURE 1
40+
LOG_BUILD 1
41+
LOG_INSTALL 1
42+
LOG_OUTPUT_ON_FAILURE 1
43+
BUILD_BYPRODUCTS ${ROOT_XXHASH_LIBRARY}
44+
TIMEOUT 600)
45+
46+
file(MAKE_DIRECTORY ${ROOT_XXHASH_PREFIX})
47+
add_library(xxHash::xxHash IMPORTED STATIC GLOBAL)
48+
set_target_properties(xxHash::xxHash PROPERTIES
49+
IMPORTED_LOCATION ${ROOT_XXHASH_LIBRARY}
50+
INTERFACE_INCLUDE_DIRECTORIES ${ROOT_XXHASH_PREFIX})
51+
52+
# Set the canonical output of find_package according to
53+
# https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#standard-variable-names
54+
set(xxHash_INCLUDE_DIRS ${ROOT_XXHASH_PREFIX} PARENT_SCOPE)
55+
set(xxHash_LIBRARIES ${ROOT_XXHASH_LIBRARY} PARENT_SCOPE)
56+
set(xxHash_FOUND TRUE PARENT_SCOPE)
57+
set(xxHash_VERSION ${ROOT_XXHASH_VERSION} PARENT_SCOPE)

builtins/xxhash/xxhash.c

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)