Skip to content

Commit 0effa49

Browse files
committed
cmake: Add halfagg module option
1 parent 1309ab7 commit 0effa49

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

CMakeLists.txt

+14-1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ option(SECP256K1_ENABLE_MODULE_ECDH "Enable ECDH module." ON)
6060
option(SECP256K1_ENABLE_MODULE_RECOVERY "Enable ECDSA pubkey recovery module." OFF)
6161
option(SECP256K1_ENABLE_MODULE_EXTRAKEYS "Enable extrakeys module." ON)
6262
option(SECP256K1_ENABLE_MODULE_SCHNORRSIG "Enable schnorrsig module." ON)
63+
option(SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG "Enable schnorrsig half-aggregation module." OFF)
6364
option(SECP256K1_ENABLE_MODULE_MUSIG "Enable musig module." ON)
6465
option(SECP256K1_ENABLE_MODULE_ELLSWIFT "Enable ElligatorSwift module." ON)
6566

@@ -69,6 +70,18 @@ if(SECP256K1_ENABLE_MODULE_ELLSWIFT)
6970
add_compile_definitions(ENABLE_MODULE_ELLSWIFT=1)
7071
endif()
7172

73+
option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF)
74+
if(SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG)
75+
if(NOT SECP256K1_EXPERIMENTAL)
76+
message(FATAL_ERROR "Schnorrsig half-aggregation is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow.")
77+
endif()
78+
if(DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG)
79+
message(FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the Schnorrsig half-aggregation module.")
80+
endif()
81+
set(SECP256K1_ENABLE_MODULE_SCHNORRSIG ON)
82+
add_compile_definitions(ENABLE_MODULE_SCHNORRSIG_HALFAGG=1)
83+
endif()
84+
7285
if(SECP256K1_ENABLE_MODULE_MUSIG)
7386
if(DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG)
7487
message(FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the musig module.")
@@ -156,7 +169,6 @@ elseif(SECP256K1_ASM)
156169
endif()
157170
endif()
158171

159-
option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF)
160172
if(NOT SECP256K1_EXPERIMENTAL)
161173
if(SECP256K1_ASM STREQUAL "arm32")
162174
message(FATAL_ERROR "ARM32 assembly is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow.")
@@ -325,6 +337,7 @@ message(" ECDH ................................ ${SECP256K1_ENABLE_MODULE_ECDH}
325337
message(" ECDSA pubkey recovery ............... ${SECP256K1_ENABLE_MODULE_RECOVERY}")
326338
message(" extrakeys ........................... ${SECP256K1_ENABLE_MODULE_EXTRAKEYS}")
327339
message(" schnorrsig .......................... ${SECP256K1_ENABLE_MODULE_SCHNORRSIG}")
340+
message(" schnorrsig halfagg .................. ${SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG}")
328341
message(" musig ............................... ${SECP256K1_ENABLE_MODULE_MUSIG}")
329342
message(" ElligatorSwift ...................... ${SECP256K1_ENABLE_MODULE_ELLSWIFT}")
330343
message("Parameters:")

src/CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ if(SECP256K1_INSTALL)
132132
if(SECP256K1_ENABLE_MODULE_SCHNORRSIG)
133133
list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_schnorrsig.h")
134134
endif()
135+
if(SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG)
136+
list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_schnorrsig_halfagg.h")
137+
endif()
135138
if(SECP256K1_ENABLE_MODULE_MUSIG)
136139
list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_musig.h")
137140
endif()

0 commit comments

Comments
 (0)