-
-
Notifications
You must be signed in to change notification settings - Fork 352
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
2,533 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
// Copyright (c) 2023-present The Bitcoin Core developers | ||
// Distributed under the MIT software license, see the accompanying | ||
// file COPYING or https://opensource.org/license/mit/. | ||
|
||
#ifndef BITCOIN_CONFIG_H | ||
#define BITCOIN_CONFIG_H | ||
|
||
/* Version Build */ | ||
#define CLIENT_VERSION_BUILD @CLIENT_VERSION_BUILD@ | ||
|
||
/* Version is release */ | ||
#define CLIENT_VERSION_IS_RELEASE @CLIENT_VERSION_IS_RELEASE@ | ||
|
||
/* Major version */ | ||
#define CLIENT_VERSION_MAJOR @CLIENT_VERSION_MAJOR@ | ||
|
||
/* Minor version */ | ||
#define CLIENT_VERSION_MINOR @CLIENT_VERSION_MINOR@ | ||
|
||
/* Copyright holder(s) before %s replacement */ | ||
#define COPYRIGHT_HOLDERS "@COPYRIGHT_HOLDERS@" | ||
|
||
/* Copyright holder(s) */ | ||
#define COPYRIGHT_HOLDERS_FINAL "@COPYRIGHT_HOLDERS_FINAL@" | ||
|
||
/* Replacement for %s in copyright holders string */ | ||
#define COPYRIGHT_HOLDERS_SUBSTITUTION "@CLIENT_NAME@" | ||
|
||
/* Copyright year */ | ||
#define COPYRIGHT_YEAR @COPYRIGHT_YEAR@ | ||
|
||
/* Define this symbol to build code that uses ARMv8 SHA-NI intrinsics */ | ||
#cmakedefine ENABLE_ARM_SHANI 1 | ||
|
||
/* Define this symbol to build code that uses AVX2 intrinsics */ | ||
#cmakedefine ENABLE_AVX2 1 | ||
|
||
/* Define if external signer support is enabled */ | ||
#cmakedefine ENABLE_EXTERNAL_SIGNER 1 | ||
|
||
/* Define this symbol to build code that uses SSE4.1 intrinsics */ | ||
#cmakedefine ENABLE_SSE41 1 | ||
|
||
/* Define to 1 to enable tracepoints for Userspace, Statically Defined Tracing | ||
*/ | ||
#cmakedefine ENABLE_TRACING 1 | ||
|
||
/* Define to 1 to enable wallet functions. */ | ||
#cmakedefine ENABLE_WALLET 1 | ||
|
||
/* Define this symbol to build code that uses x86 SHA-NI intrinsics */ | ||
#cmakedefine ENABLE_X86_SHANI 1 | ||
|
||
/* Define to 1 if you have the declaration of `fork', and to 0 if you don't. | ||
*/ | ||
#cmakedefine01 HAVE_DECL_FORK | ||
|
||
/* Define to 1 if you have the declaration of `freeifaddrs', and to 0 if you | ||
don't. */ | ||
#cmakedefine01 HAVE_DECL_FREEIFADDRS | ||
|
||
/* Define to 1 if you have the declaration of `getifaddrs', and to 0 if you | ||
don't. */ | ||
#cmakedefine01 HAVE_DECL_GETIFADDRS | ||
|
||
/* Define to 1 if you have the declaration of `pipe2', and to 0 if you don't. | ||
*/ | ||
#cmakedefine01 HAVE_DECL_PIPE2 | ||
|
||
/* Define to 1 if you have the declaration of `setsid', and to 0 if you don't. | ||
*/ | ||
#cmakedefine01 HAVE_DECL_SETSID | ||
|
||
/* Define to 1 if fdatasync is available. */ | ||
#cmakedefine HAVE_FDATASYNC 1 | ||
|
||
/* Define this symbol if the BSD getentropy system call is available with | ||
sys/random.h */ | ||
#cmakedefine HAVE_GETENTROPY_RAND 1 | ||
|
||
/* Define this symbol if the Linux getrandom function call is available */ | ||
#cmakedefine HAVE_GETRANDOM 1 | ||
|
||
/* Define this symbol if you have malloc_info */ | ||
#cmakedefine HAVE_MALLOC_INFO 1 | ||
|
||
/* Define this symbol if you have mallopt with M_ARENA_MAX */ | ||
#cmakedefine HAVE_MALLOPT_ARENA_MAX 1 | ||
|
||
/* Define to 1 if O_CLOEXEC flag is available. */ | ||
#cmakedefine01 HAVE_O_CLOEXEC | ||
|
||
/* Define this symbol if you have posix_fallocate */ | ||
#cmakedefine HAVE_POSIX_FALLOCATE 1 | ||
|
||
/* Define this symbol if platform supports unix domain sockets */ | ||
#cmakedefine HAVE_SOCKADDR_UN 1 | ||
|
||
/* Define this symbol to build code that uses getauxval */ | ||
#cmakedefine HAVE_STRONG_GETAUXVAL 1 | ||
|
||
/* Define this symbol if the BSD sysctl() is available */ | ||
#cmakedefine HAVE_SYSCTL 1 | ||
|
||
/* Define this symbol if the BSD sysctl(KERN_ARND) is available */ | ||
#cmakedefine HAVE_SYSCTL_ARND 1 | ||
|
||
/* Define to 1 if std::system or ::wsystem is available. */ | ||
#cmakedefine HAVE_SYSTEM 1 | ||
|
||
/* Define to 1 if you have the <sys/prctl.h> header file. */ | ||
#cmakedefine HAVE_SYS_PRCTL_H 1 | ||
|
||
/* Define to 1 if you have the <sys/resources.h> header file. */ | ||
#cmakedefine HAVE_SYS_RESOURCES_H 1 | ||
|
||
/* Define to 1 if you have the <sys/vmmeter.h> header file. */ | ||
#cmakedefine HAVE_SYS_VMMETER_H 1 | ||
|
||
/* Define to 1 if you have the <vm/vm_param.h> header file. */ | ||
#cmakedefine HAVE_VM_VM_PARAM_H 1 | ||
|
||
/* Define to the address where bug reports for this package should be sent. */ | ||
#define CLIENT_BUGREPORT "@CLIENT_BUGREPORT@" | ||
|
||
/* Define to the full name of this package. */ | ||
#define CLIENT_NAME "@CLIENT_NAME@" | ||
|
||
/* Define to the home page for this package. */ | ||
#define CLIENT_URL "@PROJECT_HOMEPAGE_URL@" | ||
|
||
/* Define to the version of this package. */ | ||
#define CLIENT_VERSION_STRING "@CLIENT_VERSION_STRING@" | ||
|
||
/* Define to 1 if strerror_r returns char *. */ | ||
#cmakedefine STRERROR_R_CHAR_P 1 | ||
|
||
/* Define if BDB support should be compiled in */ | ||
#cmakedefine USE_BDB 1 | ||
|
||
/* Define if dbus support should be compiled in */ | ||
#cmakedefine USE_DBUS 1 | ||
|
||
/* Define if QR support should be compiled in */ | ||
#cmakedefine USE_QRCODE 1 | ||
|
||
/* Define if sqlite support should be compiled in */ | ||
#cmakedefine USE_SQLITE 1 | ||
|
||
#endif //BITCOIN_CONFIG_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Copyright (c) 2023-present The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or https://opensource.org/license/mit/. | ||
|
||
if(NOT MSVC) | ||
find_program(CCACHE_EXECUTABLE ccache) | ||
if(CCACHE_EXECUTABLE) | ||
execute_process( | ||
COMMAND readlink -f ${CMAKE_CXX_COMPILER} | ||
OUTPUT_VARIABLE compiler_resolved_link | ||
ERROR_QUIET | ||
OUTPUT_STRIP_TRAILING_WHITESPACE | ||
) | ||
if(CCACHE_EXECUTABLE STREQUAL compiler_resolved_link AND NOT WITH_CCACHE) | ||
list(APPEND configure_warnings | ||
"Disabling ccache was attempted using -DWITH_CCACHE=${WITH_CCACHE}, but ccache masquerades as the compiler." | ||
) | ||
set(WITH_CCACHE ON) | ||
elseif(WITH_CCACHE) | ||
list(APPEND CMAKE_C_COMPILER_LAUNCHER ${CCACHE_EXECUTABLE}) | ||
list(APPEND CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_EXECUTABLE}) | ||
endif() | ||
else() | ||
set(WITH_CCACHE OFF) | ||
endif() | ||
endif() | ||
|
||
mark_as_advanced(CCACHE_EXECUTABLE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Copyright (c) 2024-present The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or https://opensource.org/license/mit/. | ||
|
||
exec @COV_TOOL@ "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
# Copyright (c) 2023-present The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or https://opensource.org/license/mit/. | ||
|
||
# This file is part of the transition from Autotools to CMake. Once CMake | ||
# support has been merged we should switch to using the upstream CMake | ||
# buildsystem. | ||
|
||
include(CheckCXXSourceCompiles) | ||
|
||
# Check for __builtin_prefetch support in the compiler. | ||
check_cxx_source_compiles(" | ||
int main() { | ||
char data = 0; | ||
const char* address = &data; | ||
__builtin_prefetch(address, 0, 0); | ||
return 0; | ||
} | ||
" HAVE_BUILTIN_PREFETCH | ||
) | ||
|
||
# Check for _mm_prefetch support in the compiler. | ||
check_cxx_source_compiles(" | ||
#if defined(_MSC_VER) | ||
#include <intrin.h> | ||
#else | ||
#include <xmmintrin.h> | ||
#endif | ||
int main() { | ||
char data = 0; | ||
const char* address = &data; | ||
_mm_prefetch(address, _MM_HINT_NTA); | ||
return 0; | ||
} | ||
" HAVE_MM_PREFETCH | ||
) | ||
|
||
# Check for SSE4.2 support in the compiler. | ||
if(MSVC) | ||
set(SSE42_CXXFLAGS /arch:AVX) | ||
else() | ||
set(SSE42_CXXFLAGS -msse4.2) | ||
endif() | ||
check_cxx_source_compiles_with_flags("${SSE42_CXXFLAGS}" " | ||
#include <cstdint> | ||
#if defined(_MSC_VER) | ||
#include <intrin.h> | ||
#elif defined(__GNUC__) && defined(__SSE4_2__) | ||
#include <nmmintrin.h> | ||
#endif | ||
int main() { | ||
uint64_t l = 0; | ||
l = _mm_crc32_u8(l, 0); | ||
l = _mm_crc32_u32(l, 0); | ||
l = _mm_crc32_u64(l, 0); | ||
return l; | ||
} | ||
" HAVE_SSE42 | ||
) | ||
|
||
# Check for ARMv8 w/ CRC and CRYPTO extensions support in the compiler. | ||
set(ARM64_CRC_CXXFLAGS -march=armv8-a+crc+crypto) | ||
check_cxx_source_compiles_with_flags("${ARM64_CRC_CXXFLAGS}" " | ||
#include <arm_acle.h> | ||
#include <arm_neon.h> | ||
int main() { | ||
#ifdef __aarch64__ | ||
__crc32cb(0, 0); __crc32ch(0, 0); __crc32cw(0, 0); __crc32cd(0, 0); | ||
vmull_p64(0, 0); | ||
#else | ||
#error crc32c library does not support hardware acceleration on 32-bit ARM | ||
#endif | ||
return 0; | ||
} | ||
" HAVE_ARM64_CRC32C | ||
) | ||
|
||
add_library(crc32c_common INTERFACE) | ||
target_compile_definitions(crc32c_common INTERFACE | ||
HAVE_BUILTIN_PREFETCH=$<BOOL:${HAVE_BUILTIN_PREFETCH}> | ||
HAVE_MM_PREFETCH=$<BOOL:${HAVE_MM_PREFETCH}> | ||
HAVE_STRONG_GETAUXVAL=$<BOOL:${HAVE_STRONG_GETAUXVAL}> | ||
BYTE_ORDER_BIG_ENDIAN=$<STREQUAL:${CMAKE_CXX_BYTE_ORDER},BIG_ENDIAN> | ||
HAVE_SSE42=$<BOOL:${HAVE_SSE42}> | ||
HAVE_ARM64_CRC32C=$<BOOL:${HAVE_ARM64_CRC32C}> | ||
) | ||
target_link_libraries(crc32c_common INTERFACE | ||
core_interface | ||
) | ||
|
||
add_library(crc32c STATIC EXCLUDE_FROM_ALL | ||
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c.cc | ||
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c_portable.cc | ||
) | ||
target_include_directories(crc32c | ||
PUBLIC | ||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src/crc32c/include> | ||
) | ||
target_link_libraries(crc32c PRIVATE crc32c_common) | ||
set_target_properties(crc32c PROPERTIES EXPORT_COMPILE_COMMANDS OFF) | ||
|
||
if(HAVE_SSE42) | ||
add_library(crc32c_sse42 STATIC EXCLUDE_FROM_ALL | ||
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c_sse42.cc | ||
) | ||
target_compile_options(crc32c_sse42 PRIVATE ${SSE42_CXXFLAGS}) | ||
target_link_libraries(crc32c_sse42 PRIVATE crc32c_common) | ||
set_target_properties(crc32c_sse42 PROPERTIES EXPORT_COMPILE_COMMANDS OFF) | ||
target_link_libraries(crc32c PRIVATE crc32c_sse42) | ||
endif() | ||
|
||
if(HAVE_ARM64_CRC32C) | ||
add_library(crc32c_arm64 STATIC EXCLUDE_FROM_ALL | ||
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c_arm64.cc | ||
) | ||
target_compile_options(crc32c_arm64 PRIVATE ${ARM64_CRC_CXXFLAGS}) | ||
target_link_libraries(crc32c_arm64 PRIVATE crc32c_common) | ||
set_target_properties(crc32c_arm64 PROPERTIES EXPORT_COMPILE_COMMANDS OFF) | ||
target_link_libraries(crc32c PRIVATE crc32c_arm64) | ||
endif() |
Oops, something went wrong.