Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/CMakeLists.txt
Show First 20 Lines • Show All 216 Lines • ▼ Show 20 Lines | |||||
function(link_secp256k1_internal NAME) | function(link_secp256k1_internal NAME) | ||||
target_link_libraries(${NAME} secp256k1) | target_link_libraries(${NAME} secp256k1) | ||||
target_compile_definitions(${NAME} PRIVATE HAVE_CONFIG_H SECP256K1_BUILD) | target_compile_definitions(${NAME} PRIVATE HAVE_CONFIG_H SECP256K1_BUILD) | ||||
if(SECP256K1_BUILD_OPENSSL_TESTS) | if(SECP256K1_BUILD_OPENSSL_TESTS) | ||||
target_link_libraries(${NAME} OpenSSL::Crypto) | target_link_libraries(${NAME} OpenSSL::Crypto) | ||||
endif() | endif() | ||||
endfunction(link_secp256k1_internal) | endfunction(link_secp256k1_internal) | ||||
include(InstallationHelper) | |||||
# Phony target to build benchmarks | # Phony target to build benchmarks | ||||
add_custom_target(bench-secp256k1) | add_custom_target(bench-secp256k1) | ||||
function(add_secp256k1_bench NAME) | function(add_secp256k1_bench NAME) | ||||
set(EXECUTABLE_NAME "${NAME}-bench") | set(EXECUTABLE_NAME "${NAME}-bench") | ||||
add_executable(${EXECUTABLE_NAME} ${ARGN}) | add_executable(${EXECUTABLE_NAME} ${ARGN}) | ||||
link_secp256k1_internal(${EXECUTABLE_NAME}) | link_secp256k1_internal(${EXECUTABLE_NAME}) | ||||
set(BENCH_NAME "bench-secp256k1-${NAME}") | set(BENCH_NAME "bench-secp256k1-${NAME}") | ||||
add_custom_target(${BENCH_NAME} | add_custom_target(${BENCH_NAME} | ||||
COMMENT "Benchmarking libsecp256k1 ${NAME}" | COMMENT "Benchmarking libsecp256k1 ${NAME}" | ||||
COMMAND ${EXECUTABLE_NAME} | COMMAND ${EXECUTABLE_NAME} | ||||
USES_TERMINAL | USES_TERMINAL | ||||
) | ) | ||||
add_dependencies(bench-secp256k1 ${BENCH_NAME}) | add_dependencies(bench-secp256k1 ${BENCH_NAME}) | ||||
install_target("${EXECUTABLE_NAME}" | |||||
COMPONENT secp256k1-bench | |||||
EXCLUDE_FROM_ALL | |||||
) | |||||
endfunction(add_secp256k1_bench) | endfunction(add_secp256k1_bench) | ||||
# ECDH module | # ECDH module | ||||
option(SECP256K1_ENABLE_MODULE_ECDH "Build libsecp256k1's ECDH module" OFF) | option(SECP256K1_ENABLE_MODULE_ECDH "Build libsecp256k1's ECDH module" OFF) | ||||
if(SECP256K1_ENABLE_MODULE_ECDH) | if(SECP256K1_ENABLE_MODULE_ECDH) | ||||
set(ENABLE_MODULE_ECDH 1) | set(ENABLE_MODULE_ECDH 1) | ||||
add_secp256k1_bench(ecdh src/bench_ecdh.c) | add_secp256k1_bench(ecdh src/bench_ecdh.c) | ||||
list(APPEND SECP256K1_PUBLIC_HEADERS include/secp256k1_ecdh.h) | list(APPEND SECP256K1_PUBLIC_HEADERS include/secp256k1_ecdh.h) | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | if(SECP256K1_ECMULT_STATIC_PRECOMPUTATION) | ||||
add_custom_command( | add_custom_command( | ||||
OUTPUT src/ecmult_static_context.h | OUTPUT src/ecmult_static_context.h | ||||
COMMAND gen_context | COMMAND gen_context | ||||
) | ) | ||||
target_sources(secp256k1 PRIVATE src/ecmult_static_context.h) | target_sources(secp256k1 PRIVATE src/ecmult_static_context.h) | ||||
endif() | endif() | ||||
include(InstallationHelper) | |||||
# If this project is not the top level project, then don't install by default | # If this project is not the top level project, then don't install by default | ||||
get_directory_property(SECP256K1_PARENT_DIRECTORY PARENT_DIRECTORY) | get_directory_property(SECP256K1_PARENT_DIRECTORY PARENT_DIRECTORY) | ||||
if(SECP256K1_PARENT_DIRECTORY) | if(SECP256K1_PARENT_DIRECTORY) | ||||
set(SECP256K1_INSTALL_EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL) | set(SECP256K1_INSTALL_EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL) | ||||
endif() | endif() | ||||
if(BUILD_SHARED_LIBS) | if(BUILD_SHARED_LIBS) | ||||
install_shared_library(secp256k1 | install_shared_library(secp256k1 | ||||
▲ Show 20 Lines • Show All 98 Lines • Show Last 20 Lines |