120 lines
3.7 KiB
CMake
120 lines
3.7 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
if(ESP_PLATFORM)
|
|
idf_component_register(
|
|
SRCS
|
|
"nostr_core/nostr_common.c"
|
|
"nostr_core/nostr_log.c"
|
|
"nostr_core/nip001.c"
|
|
"nostr_core/nip004.c"
|
|
"nostr_core/nip006.c"
|
|
"nostr_core/nostr_signer.c"
|
|
"nostr_core/nip019.c"
|
|
"nostr_core/utils.c"
|
|
"nostr_core/crypto/nostr_secp256k1.c"
|
|
"nostr_core/crypto/nostr_aes.c"
|
|
"nostr_core/crypto/nostr_chacha20.c"
|
|
"cjson/cJSON.c"
|
|
"platform/esp32/nostr_platform_esp32.c"
|
|
"platform/esp32/nostr_http_esp32.c"
|
|
"platform/esp32/nostr_websocket_esp32.c"
|
|
INCLUDE_DIRS
|
|
"."
|
|
"nostr_core"
|
|
"nostr_core/crypto"
|
|
"cjson"
|
|
"nostr_websocket"
|
|
REQUIRES
|
|
secp256k1
|
|
esp_hw_support
|
|
esp_http_client
|
|
esp-tls
|
|
tcp_transport
|
|
mbedtls
|
|
)
|
|
|
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE NOSTR_NO_FILESYSTEM=1)
|
|
else()
|
|
project(nostr_core_lib C)
|
|
|
|
add_library(nostr_core STATIC
|
|
nostr_core/nostr_common.c
|
|
nostr_core/nostr_log.c
|
|
nostr_core/request_validator.c
|
|
nostr_core/nip001.c
|
|
nostr_core/nip003.c
|
|
nostr_core/nip004.c
|
|
nostr_core/nip005.c
|
|
nostr_core/nip006.c
|
|
nostr_core/nip011.c
|
|
nostr_core/nip013.c
|
|
nostr_core/nip017.c
|
|
nostr_core/nip019.c
|
|
nostr_core/nip021.c
|
|
nostr_core/nip042.c
|
|
nostr_core/nip044.c
|
|
nostr_core/nip046.c
|
|
nostr_core/nip059.c
|
|
nostr_core/nip060.c
|
|
nostr_core/nip061.c
|
|
nostr_core/nostr_signer.c
|
|
nostr_core/nsigner_transport.c
|
|
nostr_core/nsigner_client.c
|
|
nostr_core/utils.c
|
|
nostr_core/nostr_http.c
|
|
nostr_core/core_relays.c
|
|
nostr_core/core_relay_pool.c
|
|
nostr_core/cashu_mint.c
|
|
nostr_core/blossom_client.c
|
|
nostr_core/crypto/nostr_secp256k1.c
|
|
nostr_core/crypto/nostr_aes.c
|
|
nostr_core/crypto/nostr_chacha20.c
|
|
nostr_core/crypto/nostr_poly1305.c
|
|
nostr_core/crypto/nostr_chacha20poly1305.c
|
|
cjson/cJSON.c
|
|
nostr_websocket/nostr_websocket_openssl.c
|
|
platform/linux.c
|
|
)
|
|
|
|
target_include_directories(nostr_core PUBLIC
|
|
.
|
|
nostr_core
|
|
nostr_core/crypto
|
|
cjson
|
|
nostr_websocket
|
|
)
|
|
target_compile_definitions(nostr_core PRIVATE NOSTR_ENABLE_NSIGNER_CLIENT=1)
|
|
target_compile_definitions(nostr_core PRIVATE ENABLE_FILE_LOGGING ENABLE_WEBSOCKET_LOGGING ENABLE_DEBUG_LOGGING)
|
|
|
|
# Link system dependencies
|
|
find_package(PkgConfig QUIET)
|
|
if(PkgConfig_FOUND)
|
|
pkg_check_modules(SECP256K1 QUIET libsecp256k1)
|
|
pkg_check_modules(OPENSSL QUIET openssl)
|
|
pkg_check_modules(CURL QUIET libcurl)
|
|
endif()
|
|
|
|
if(SECP256K1_FOUND)
|
|
target_include_directories(nostr_core PRIVATE ${SECP256K1_INCLUDE_DIRS})
|
|
target_link_libraries(nostr_core PRIVATE ${SECP256K1_LIBRARIES})
|
|
else()
|
|
target_link_libraries(nostr_core PRIVATE secp256k1)
|
|
endif()
|
|
|
|
if(OPENSSL_FOUND)
|
|
target_include_directories(nostr_core PRIVATE ${OPENSSL_INCLUDE_DIRS})
|
|
target_link_libraries(nostr_core PRIVATE ${OPENSSL_LIBRARIES})
|
|
else()
|
|
target_link_libraries(nostr_core PRIVATE ssl crypto)
|
|
endif()
|
|
|
|
if(CURL_FOUND)
|
|
target_include_directories(nostr_core PRIVATE ${CURL_INCLUDE_DIRS})
|
|
target_link_libraries(nostr_core PRIVATE ${CURL_LIBRARIES})
|
|
else()
|
|
target_link_libraries(nostr_core PRIVATE curl)
|
|
endif()
|
|
|
|
target_link_libraries(nostr_core PRIVATE z dl pthread m)
|
|
endif()
|