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()