Files

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