mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
730efde109
795660db76 chore: bump version to 1.3.0 (#84) e8743b0139 Merge pull request #83 from UdjinM6/bp_370_371 72f0ad2d37 fix: add missing destructor for CoreMPL and final for nested classes (#371) 2f05059c60 Fix a typo in class PrivateKey testcase. (#370) 851c2c8f68 fix: reading unitialized memory from Util::HasOnlyZeros in G2Element deserialization (#77) 4dd28e9016 fix: js bindings build (#82) 3697c51521 fix: dash is no more pretending being a 'libdashbls' (#76) 37c53141d3 feat: implement memory-copy only of G1Element and G2Element (#74) 97ac99e8e6 build(bls-dash-sys): ignore wasm32 target arch (#70) 2d494d351e Merge pull request #71 from dashpay/feat/threshold_bindings 67fb70d40b chore: revert permission changes in bcce0b214876c0d9e668baaa30a48542b496cda2 5a58fce0ea fix: resolve rust-bindings compilation failure 8604e03761 build: fix cmake build error c25957edf0 Merge remote-tracking branch 'dash/develop' into feat/threshold_bindings2 198e246f07 added a helper for verifying a message a4b8a5dd6e added a helper for verifying a message 2d783c985e added a helper for signing from the private key 16f7873d6a changed to using a slice for recovery a23d9708c0 feat: clone 0cf8a8eb96 feat: serde 47829e3e75 threshold_recovery functions a5589e6fc8 fix: bls extended private key size 1ceaab56e3 [add cpp targts] 86eb28e2d7 [fix linker path for cpp] 85debcab29 [include 'src' into build] f956c66b90 [switch into cc] 9ecb59bf9b [test linker] 3651a0fd79 [linker change] d8564679eb [fix: iossim] c829d4b6f1 [fix: aarch64-apple-darwin trigger] fc3509e901 [chore: silence warning] 79ce6ded50 [feat: apple build for single platform+arch] e580cb76db [feat: build for apple target] 17b2168955 feat: verifySecure method for BasicSchemeMPL in js bindings (#69) 4613425b60 chore: silence rust warnings 136d762607 [fix: target_arch] 0d8c8e9d41 [try to use ios.toolchain] bd441623df [back] 8137f48897 [change relic src] bdcba81d41 test: check patched relic 32b7f56d94 Merge pull request #1 from dashevo/rust-bindings-enhancement 6d359c6201 chore: test for extended private key from short seed 1cbeffe159 chore: add binding dace793a1a fix: same as previous: BIP32ExtendedPrivateKeyFromSeed with len 65c84d063c fix: ok now add second blank line 24b25bac2d fix: now try from typing import Union fe16287182 fix: try Union[Fq2, None] 3ffc96d409 fix: None 2d669a2cf8 chore: up version fbb5a43b19 fix: pass length PrivateKeyFromSeedBIP32 5822076d1a chore: cargo:fmt a8d3a7e956 test: add keys multiplication test 4b85f08937 fix: exchange keys when multiply 0bcefc68cb chore: add imports 7380332123 [chore: add binding for G1ElementMul] 881e6d7676 patch relic to be compatible with wasm bcce0b2148 chore: fix mode 02801cf973 add deeper checks to example project 6d25c60ee5 compilation fixes a4cebb4025 refactor: remove "C" prefix 995ef3796f refactor: bip32 feature 7ea0c34938 style: remove `get` prefix from getters e316c00f7b add VerifySecure da5536e1c5 feat: introduce PrivateKey::from_bip32_seed 4f03a1a1ae export legacy scheme 5c19e314d4 add extended private key cc081c0956 feat: add G1 element's fingerprint and generate methods f3e85b46d0 refactor: move back re-exports e8155b4bdb refactor: move legacy code to submodule f6e173242e add extendedpublickey 4f823249fb feat: legacy serialize and deserialize methods 90fd9f9c2c fix: comparison int with size_t 57237e5e87 Merge branch 'rust-bindings' of github.com:dashevo/bls-signatures into rust-bindings a1f862480b refactor: implement Deref trait for SecureBox 0b6f94e41f add LegacySchemeMPL aa19a77a40 refactor: small refactoring dae8b31042 make schemes public 827d1ed162 add hdkeys 7b4ffae5ec improve agg sig test 18057687be add basic scheme 3e4fdda2bd aggregates 61a4d791c9 elements ser/de 8b5b6301f3 wip 126b7becea wip c49514176e chore: remove autocxx variant 477c014bb7 refactor: increase `c_err_to_result` readability 5d52d0e59d Merge remote-tracking branch 'dashevo/rust-bindings' into rust-bindings 31724b39d1 chore: add example crate c04c2941db safe wrappers for simple case 844779cd81 chore: remove cdylib from bls-signatures d622625de4 chore: move all rust stuff into one 0d3c51106a Merge remote-tracking branch 'dashevo/rust-bindings' into rust-bindings ecf0271950 revert: bring back necessary c binding files :) 20e1cfe37b wip 654fc5e6a6 chore: remove unnecessary files from c binding 92ffd63c28 refactor: cargo build script 1d4d76fb05 chore: remove wrapper.h 20cc668708 qfix abb38804c7 Merge remote-tracking branch 'dashevo/rust-bindings' into rust-bindings 760a267ab7 build: fix mac related issues 8b083794a4 add destructors to bls-dash-sys basic test 6c54f0a01a Merge remote-tracking branch 'dashevo/rust-bindings' into rust-bindings fd526ab0db build: pass gmp lib path to build.rs a8aaccb510 rust-bindings sign and verify test simple 8447c1c112 wip bindings test 9390162e3c wip add rust-bindings tests 26ab7216c0 revert: bls header path db55e40cb0 rename to sys 96188a6d52 build qfix 965ac58df4 build: automate build process part 2 05636207a0 build: automate build process part 1 73b146a961 experiment cross compiling with autocxx and bindgen 969e5e2102 experiment cross compiling with autocxx and bindgen 88ee9d0519 chore: WIP 525b4d49d9 feat: rust bindings git-subtree-dir: src/dashbls git-subtree-split: 795660db76636c92bea3bfccfee621f1aba371a3
151 lines
4.2 KiB
CMake
151 lines
4.2 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_JS_BINDINGS "1" CACHE STRING "")
|
|
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)
|
|
|
|
#message(STATUS "Patching Relic to make setjmp.h inclusion conditional")
|
|
#
|
|
#execute_process(
|
|
# COMMAND bash -c "git apply ${CMAKE_SOURCE_DIR}/setjmp_patch.diff"
|
|
# WORKING_DIRECTORY ${RELIC_SRC}
|
|
#)
|
|
|
|
add_subdirectory(src)
|
|
|
|
|
|
# Write include paths for rust binding
|
|
if(EMSCRIPTEN)
|
|
file(APPEND "${CMAKE_CURRENT_LIST_DIR}/build/include_paths.txt" "${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}/c++/v1/;")
|
|
endif()
|
|
|
|
file(APPEND "${CMAKE_CURRENT_LIST_DIR}/build/include_paths.txt" "${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES};")
|
|
|
|
if(GMP_INCLUDES)
|
|
file(APPEND "${CMAKE_CURRENT_LIST_DIR}/build/include_paths.txt" "${GMP_INCLUDES};")
|
|
endif()
|
|
|
|
# Write gmp library path for rust binding
|
|
if(GMP_LIBRARIES)
|
|
file(APPEND "${CMAKE_CURRENT_LIST_DIR}/build/gmp_libraries.txt" "${GMP_LIBRARIES}")
|
|
endif()
|
|
|
|
if(EMSCRIPTEN)
|
|
if(BUILD_BLS_JS_BINDINGS)
|
|
add_subdirectory(js-bindings)
|
|
endif()
|
|
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()
|