74 lines
2.6 KiB
CMake
74 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(nt C)
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
set(CMAKE_C_EXTENSIONS OFF)
|
|
|
|
add_compile_options(-Wall -Wextra -D_GNU_SOURCE)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(LIBCURL REQUIRED libcurl)
|
|
|
|
# nt application sources
|
|
file(GLOB NT_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.c")
|
|
|
|
# nostr_core_lib sources
|
|
file(GLOB NOSTR_CORE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_core/*.c")
|
|
file(GLOB NOSTR_CORE_CRYPTO_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_core/crypto/*.c")
|
|
set(NOSTR_WEBSOCKET_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_websocket/nostr_websocket_openssl.c")
|
|
set(NOSTR_PLATFORM_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/platform/linux.c")
|
|
set(NOSTR_CJSON_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/cjson/cJSON.c")
|
|
|
|
add_library(nostr_core_lib STATIC
|
|
${NOSTR_CORE_SOURCES}
|
|
${NOSTR_CORE_CRYPTO_SOURCES}
|
|
${NOSTR_WEBSOCKET_SOURCE}
|
|
${NOSTR_PLATFORM_SOURCE}
|
|
${NOSTR_CJSON_SOURCE}
|
|
)
|
|
|
|
target_include_directories(nostr_core_lib PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_core
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_websocket
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/cjson
|
|
)
|
|
|
|
add_executable(nt ${NT_SOURCES})
|
|
|
|
target_include_directories(nt PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_core
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/nostr_websocket
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/nostr_core_lib/cjson
|
|
)
|
|
|
|
if(CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-static( |$)")
|
|
target_include_directories(nt PRIVATE ${LIBCURL_STATIC_INCLUDE_DIRS})
|
|
target_link_directories(nt PRIVATE ${LIBCURL_STATIC_LIBRARY_DIRS})
|
|
target_compile_options(nt PRIVATE ${LIBCURL_STATIC_CFLAGS_OTHER})
|
|
target_link_options(nt PRIVATE ${LIBCURL_STATIC_LDFLAGS_OTHER})
|
|
set(NT_CURL_LIBS ${LIBCURL_STATIC_LIBRARIES})
|
|
else()
|
|
target_include_directories(nt PRIVATE ${LIBCURL_INCLUDE_DIRS})
|
|
target_link_directories(nt PRIVATE ${LIBCURL_LIBRARY_DIRS})
|
|
target_compile_options(nt PRIVATE ${LIBCURL_CFLAGS_OTHER})
|
|
target_link_options(nt PRIVATE ${LIBCURL_LDFLAGS_OTHER})
|
|
set(NT_CURL_LIBS ${LIBCURL_LIBRARIES})
|
|
endif()
|
|
|
|
target_link_libraries(nt PRIVATE
|
|
nostr_core_lib
|
|
sqlite3
|
|
${NT_CURL_LIBS}
|
|
secp256k1
|
|
ssl
|
|
crypto
|
|
pthread
|
|
m
|
|
z
|
|
dl
|
|
)
|