mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
8bf0c812f5
22b066020c build: match detection of Win32 libraries with mimalloc (#60) 03268b3a02 Merge pull request #59 from kittywhiskers/repair_subtree 3d2e7a183e depends: commit microsoft/mimalloc@91ba1f37 to source tree as 44314dd9 7a4d1a01fa depends: remove mangled 'depends/mimalloc' subdirectory 44314dd972 Squashed 'depends/mimalloc/' content from commit 91ba1f37 8383f081bd dashbls: replace flaky minialloc with microsoft/mimalloc@91ba1f37, add as vendored dependency (#55) 85b7e61b55 fix: Should not check validity for legacy G1 and G2 in FromBytes (#58) 7457939dd5 chore/fix: bump Catch2 to v2.13.10 (#57) git-subtree-dir: src/dashbls git-subtree-split: 22b066020c14bd162022c73f90fc7c940f4acdda
124 lines
3.4 KiB
CMake
124 lines
3.4 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.14.0 FATAL_ERROR)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_C_STANDARD 99)
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release"
|
|
CACHE STRING "Possible values are empty, Debug, Release, RelWithDebInfo, MinSizeRel, ..."
|
|
FORCE
|
|
)
|
|
endif()
|
|
|
|
project(BLS)
|
|
|
|
set(BUILD_BLS_PYTHON_BINDINGS "1" CACHE STRING "")
|
|
set(BUILD_BLS_TESTS "1" CACHE STRING "")
|
|
set(BUILD_BLS_BENCHMARKS "1" CACHE STRING "")
|
|
|
|
message(STATUS "Build python bindings: ${BUILD_BLS_PYTHON_BINDINGS}")
|
|
message(STATUS "Build tests: ${BUILD_BLS_TESTS}")
|
|
message(STATUS "Build benchmarks: ${BUILD_BLS_BENCHMARKS}")
|
|
|
|
# Add path for custom modules
|
|
set(CMAKE_MODULE_PATH
|
|
${CMAKE_MODULE_PATH}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules
|
|
)
|
|
|
|
# Relic related options
|
|
|
|
set(STBIN "off" CACHE STRING "Relic - Build static binaries")
|
|
|
|
find_package(gmp)
|
|
if (GMP_FOUND)
|
|
message(STATUS "Found libgmp")
|
|
set(ARITH "gmp" CACHE STRING "")
|
|
else()
|
|
set(ARITH "easy" CACHE STRING "")
|
|
endif()
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
set(WSIZE "32" CACHE STRING "Relic - Processor word size")
|
|
else()
|
|
set(WSIZE "64" CACHE STRING "Relic - Processor word size")
|
|
endif()
|
|
|
|
if(EMSCRIPTEN)
|
|
# emscripten needs arch set to be none since it can't compile assembly
|
|
set(ARCH "" CACHE STRING "")
|
|
# emscripten is a 32 bit compiler
|
|
set(WSIZE "32" CACHE STRING "Relic - Processor word size")
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
set(TIMER "ANSI" CACHE STRING "")
|
|
set(MULTI "OPENMP" CACHE STRING "")
|
|
else()
|
|
set(TIMER "CYCLE" CACHE STRING "")
|
|
set(MULTI "PTHREAD" CACHE STRING "")
|
|
endif()
|
|
|
|
set(CHECK "off" CACHE STRING "")
|
|
set(VERBS "off" CACHE STRING "")
|
|
set(ALLOC "AUTO" CACHE STRING "")
|
|
set(SHLIB "off" CACHE STRING "")
|
|
set(DOCUM "off" CACHE STRING "")
|
|
set(FP_PRIME "381" CACHE STRING "Relic - Prime modulus size")
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
set(SEED "UDEV" CACHE STRING "")
|
|
set(FP_QNRES "off" CACHE STRING "")
|
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
set(SEED "WCGR" CACHE STRING "")
|
|
set(FP_QNRES "on" CACHE STRING "")
|
|
else()
|
|
set(SEED "UDEV" CACHE STRING "")
|
|
set(FP_QNRES "on" CACHE STRING "")
|
|
endif()
|
|
|
|
set(FP_METHD "INTEG;INTEG;INTEG;MONTY;LOWER;SLIDE" CACHE STRING "")
|
|
|
|
if(MSVC)
|
|
set(COMP_FLAGS "" CACHE STRING "")
|
|
else()
|
|
set(COMP_FLAGS "-O3 -funroll-loops -fomit-frame-pointer" CACHE STRING "")
|
|
endif()
|
|
|
|
set(FP_PMERS "off" CACHE STRING "")
|
|
set(FPX_METHD "INTEG;INTEG;LAZYR" CACHE STRING "")
|
|
set(EP_PLAIN "off" CACHE STRING "")
|
|
set(EP_SUPER "off" CACHE STRING "")
|
|
# Disable relic tests and benchmarks
|
|
set(TESTS "0" CACHE STRING "Relic - Number of times each test is ran")
|
|
set(BENCH "0" CACHE STRING "Relic - Number of times each benchmark is ran")
|
|
|
|
set(QUIET "on" CACHE STRING "Relic - Build with printing disabled")
|
|
|
|
set(PP_EXT "LAZYR" CACHE STRING "")
|
|
set(PP_METHD "LAZYR;OATEP" CACHE STRING "")
|
|
|
|
# Disable mimalloc shared libraries and tests, enable secure mode
|
|
set(MI_SECURE "on" CACHE STRING "")
|
|
|
|
set(MI_BUILD_SHARED "off" CACHE STRING "")
|
|
set(MI_BUILD_TESTS "off" CACHE STRING "")
|
|
set(MI_OVERRIDE "off" CACHE STRING "")
|
|
|
|
add_subdirectory(depends/relic)
|
|
add_subdirectory(depends/mimalloc)
|
|
|
|
add_subdirectory(src)
|
|
|
|
if(EMSCRIPTEN)
|
|
add_subdirectory(js-bindings)
|
|
else()
|
|
# emscripten can't build python bindings, it produces only javascript
|
|
# add_subdirectory(contrib/pybind11)
|
|
if(BUILD_BLS_PYTHON_BINDINGS)
|
|
add_subdirectory(python-bindings)
|
|
endif()
|
|
endif()
|