cmake: Add support for -zkp modules
Co-authored-by: lightyear15 <g.minist8@gmail.com>
This commit is contained in:
@@ -61,8 +61,70 @@ option(SECP256K1_ENABLE_MODULE_EXTRAKEYS "Enable extrakeys module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_SCHNORRSIG "Enable schnorrsig module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_ELLSWIFT "Enable ElligatorSwift module." ON)
|
||||
|
||||
option(SECP256K1_ENABLE_MODULE_GENERATOR "Enable NUMS generator module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_RANGEPROOF "Enable Range proof module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_SURJECTIONPROOF "Enable Surjection proof module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_WHITELIST "Enable key whitelist module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_MUSIG "Enable MuSig module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_ECDSA_ADAPTOR "Enable ecdsa adaptor signatures module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_ECDSA_S2C "Enable ECDSA sign-to-contract module." ON)
|
||||
option(SECP256K1_ENABLE_MODULE_BPPP "Enable Bulletproofs++ module." ON)
|
||||
|
||||
# Processing must be done in a topological sorting of the dependency graph
|
||||
# (dependent module first).
|
||||
if(SECP256K1_ENABLE_MODULE_BPPP)
|
||||
if(DEFINED SECP256K1_ENABLE_MODULE_GENERATOR AND NOT SECP256K1_ENABLE_MODULE_GENERATOR)
|
||||
message(FATAL_ERROR "Module dependency error: You have disabled the generator module explicitly, but it is required by the bppp module.")
|
||||
endif()
|
||||
set(SECP256K1_ENABLE_MODULE_GENERATOR ON)
|
||||
add_compile_definitions(ENABLE_MODULE_BPPP=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_ECDSA_S2C)
|
||||
add_compile_definitions(ENABLE_MODULE_ECDSA_S2C=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_ECDSA_ADAPTOR)
|
||||
add_compile_definitions(ENABLE_MODULE_ECDSA_ADAPTOR=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_MUSIG)
|
||||
if(DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG)
|
||||
message(FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the musig module.")
|
||||
endif()
|
||||
set(SECP256K1_ENABLE_MODULE_SCHNORRSIG ON)
|
||||
add_compile_definitions(ENABLE_MODULE_MUSIG=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_WHITELIST)
|
||||
if(DEFINED SECP256K1_ENABLE_MODULE_RANGEPROOF AND NOT SECP256K1_ENABLE_MODULE_RANGEPROOF)
|
||||
message(FATAL_ERROR "Module dependency error: You have disabled the rangeproof module explicitly, but it is required by the whitelist module.")
|
||||
endif()
|
||||
set(SECP256K1_ENABLE_MODULE_RANGEPROOF ON)
|
||||
add_compile_definitions(ENABLE_MODULE_WHITELIST=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_SURJECTIONPROOF)
|
||||
if(DEFINED SECP256K1_ENABLE_MODULE_RANGEPROOF AND NOT SECP256K1_ENABLE_MODULE_RANGEPROOF)
|
||||
message(FATAL_ERROR "Module dependency error: You have disabled the rangeproof module explicitly, but it is required by the surjectionproof module.")
|
||||
endif()
|
||||
set(SECP256K1_ENABLE_MODULE_RANGEPROOF ON)
|
||||
add_compile_definitions(ENABLE_MODULE_SURJECTIONPROOF=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_RANGEPROOF)
|
||||
if(DEFINED SECP256K1_ENABLE_MODULE_GENERATOR AND NOT SECP256K1_ENABLE_MODULE_GENERATOR)
|
||||
message(FATAL_ERROR "Module dependency error: You have disabled the generator module explicitly, but it is required by the rangeproof module.")
|
||||
endif()
|
||||
set(SECP256K1_ENABLE_MODULE_GENERATOR ON)
|
||||
add_compile_definitions(ENABLE_MODULE_RANGEPROOF=1)
|
||||
endif()
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_GENERATOR)
|
||||
add_compile_definitions(ENABLE_MODULE_GENERATOR=1)
|
||||
endif()
|
||||
|
||||
|
||||
if(SECP256K1_ENABLE_MODULE_ELLSWIFT)
|
||||
add_compile_definitions(ENABLE_MODULE_ELLSWIFT=1)
|
||||
endif()
|
||||
@@ -292,6 +354,14 @@ message(" ECDSA pubkey recovery ............... ${SECP256K1_ENABLE_MODULE_RECOV
|
||||
message(" extrakeys ........................... ${SECP256K1_ENABLE_MODULE_EXTRAKEYS}")
|
||||
message(" schnorrsig .......................... ${SECP256K1_ENABLE_MODULE_SCHNORRSIG}")
|
||||
message(" ElligatorSwift ...................... ${SECP256K1_ENABLE_MODULE_ELLSWIFT}")
|
||||
message(" generator ........................... ${SECP256K1_ENABLE_MODULE_GENERATOR}")
|
||||
message(" rangeproof .......................... ${SECP256K1_ENABLE_MODULE_RANGEPROOF}")
|
||||
message(" surjectionproof ..................... ${SECP256K1_ENABLE_MODULE_SURJECTIONPROOF}")
|
||||
message(" whitelist ........................... ${SECP256K1_ENABLE_MODULE_WHITELIST}")
|
||||
message(" musig ............................... ${SECP256K1_ENABLE_MODULE_MUSIG}")
|
||||
message(" ecdsa-s2c ........................... ${SECP256K1_ENABLE_MODULE_ECDSA_S2C}")
|
||||
message(" ecdsa-adaptor ....................... ${SECP256K1_ENABLE_MODULE_ECDSA_ADAPTOR}")
|
||||
message(" bppp ................................ ${SECP256K1_ENABLE_MODULE_BPPP}")
|
||||
message("Parameters:")
|
||||
message(" ecmult window size .................. ${SECP256K1_ECMULT_WINDOW_SIZE}")
|
||||
message(" ecmult gen precision bits ........... ${SECP256K1_ECMULT_GEN_PREC_BITS}")
|
||||
|
||||
Reference in New Issue
Block a user