Skip to content

Commit 462b6dd

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

4 files changed

Lines changed: 71 additions & 4836 deletions

File tree

builtins/xxhash/CMakeLists.txt

Lines changed: 63 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,71 @@
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.
3+
# For the licensing terms see $ROOTSYS/LICENSE. For the list of contributors see
4+
# $ROOTSYS/README/CREDITS.
65

7-
project(xxhash C)
6+
# **PLEASE UPDATE ALSO THE FOLLOWING LINE WHEN UPDATING THE VERSION** 30 Dec
7+
# 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
11+
# simple.
12+
set(ROOT_XXHASH_PATCH_FILE
13+
${CMAKE_CURRENT_SOURCE_DIR}/xxhash_add_cmakelists.patch)
814

9-
unset(xxHash_FOUND CACHE)
10-
unset(xxHash_FOUND PARENT_SCOPE)
11-
set(xxHash_FOUND TRUE CACHE BOOL "" FORCE)
15+
set(ROOT_XXHASH_PREFIX ${CMAKE_BINARY_DIR}/builtins/XXHASH-prefix)
1216

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}")
17+
set(ROOT_XXHASH_LIBRARY
18+
${ROOT_XXHASH_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xxhash-static${CMAKE_STATIC_LIBRARY_SUFFIX}
19+
)
1820

19-
set(xxHash_VERSION ${xxHash_VERSION_STRING} CACHE INTERNAL "")
20-
set(xxHash_VERSION_STRING ${xxHash_VERSION_STRING} CACHE INTERNAL "")
21+
if(WIN32 AND NOT CMAKE_GENERATOR MATCHES Ninja)
22+
if(winrtdebug)
23+
set(ROOT_LIBGIF_BUILD_COMMAND_FLAGS "--config Debug")
24+
else()
25+
set(ROOT_LIBGIF_BUILD_COMMAND_FLAGS
26+
"--config $<IF:$<CONFIG:Debug,RelWithDebInfo>,RelWithDebInfo,Release>")
27+
endif()
28+
endif()
2129

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)
30+
ExternalProject_Add(
31+
BUILTIN_XXHASH
32+
PREFIX ${ROOT_XXHASH_PREFIX}
33+
URL https://github.com/Cyan4973/xxHash/archive/refs/tags/v${ROOT_XXHASH_VERSION}.tar.gz
34+
URL_HASH SHA256=${ROOT_XXHASH_HASH}
35+
PATCH_COMMAND git apply ${ROOT_XXHASH_PATCH_FILE}
36+
CMAKE_ARGS -G
37+
${CMAKE_GENERATOR}
38+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
39+
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
40+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
41+
-DCMAKE_C_VISIBILITY_PRESET=hidden
42+
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_XXHASH_BUILD_COMMAND_FLAGS}
43+
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_XXHASH_BUILD_COMMAND_FLAGS}
44+
--target install
45+
LOG_CONFIGURE 1
46+
LOG_BUILD 1
47+
LOG_INSTALL 1
48+
LOG_OUTPUT_ON_FAILURE 1
49+
BUILD_BYPRODUCTS ${ROOT_XXHASH_LIBRARY}
50+
TIMEOUT 600)
2551

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}>)
52+
file(MAKE_DIRECTORY ${ROOT_XXHASH_PREFIX})
53+
add_library(xxHash::xxHash IMPORTED STATIC GLOBAL)
54+
set_target_properties(
55+
xxHash::xxHash PROPERTIES IMPORTED_LOCATION ${ROOT_XXHASH_LIBRARY}
56+
INTERFACE_INCLUDE_DIRECTORIES ${ROOT_XXHASH_PREFIX})
2957

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)
58+
# Set the canonical output of find_package according to
59+
# https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#standard-variable-names
60+
set(xxHash_INCLUDE_DIRS
61+
${ROOT_XXHASH_PREFIX}
62+
PARENT_SCOPE)
63+
set(xxHash_LIBRARIES
64+
${ROOT_XXHASH_LIBRARY}
65+
PARENT_SCOPE)
66+
set(xxHash_FOUND
67+
TRUE
68+
PARENT_SCOPE)
69+
set(xxHash_VERSION
70+
${ROOT_XXHASH_VERSION}
71+
PARENT_SCOPE)

builtins/xxhash/xxhash.c

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

0 commit comments

Comments
 (0)