diff options
author | Michael J <37635304+buttercat1791@users.noreply.github.com> | 2024-03-03 11:56:37 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-03 11:56:37 -0600 |
commit | 0d87b4053983ec8edaff5b73491b717866876586 (patch) | |
tree | 915e73bdcce6d54558f1aea4bcf2ca2813b1d5a4 /CMakeLists.txt | |
parent | d02431d723f560f511aafa7e4b224046a4322021 (diff) |
Create Nostr Service and Add Write Capabilities (#1)v0.0.1
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3d472c1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.14) +project(NostrSDK VERSION 0.0.1) + +# Specify the C++ standard +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + +# Build the project. +set(INCLUDE_DIR ./include) +set(CLIENT_INCLUDE_DIR ./include/client) +include_directories(${INCLUDE_DIR}) +include_directories(${CLIENT_INCLUDE_DIR}) +set(HEADERS + ${INCLUDE_DIR}/nostr.hpp + ${CLIENT_INCLUDE_DIR}/web_socket_client.hpp +) + +set(SOURCE_DIR ./src) +set(CLIENT_SOURCE_DIR ./src/client) +set(SOURCES + ${SOURCE_DIR}/event.cpp + ${SOURCE_DIR}/nostr_service.cpp + ${CLIENT_SOURCE_DIR}/websocketpp_client.cpp +) + +find_package(Boost REQUIRED COMPONENTS random system) +find_package(nlohmann_json CONFIG REQUIRED) +find_package(OpenSSL REQUIRED) +find_package(plog CONFIG REQUIRED) +find_package(websocketpp CONFIG REQUIRED) + +add_library(NostrSDK ${SOURCES} ${HEADERS}) +target_link_libraries(NostrSDK PRIVATE + Boost::random + Boost::system + nlohmann_json::nlohmann_json + OpenSSL::SSL + OpenSSL::Crypto + plog::plog + websocketpp::websocketpp +) +set_target_properties(NostrSDK PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS YES) + +# Build the tests. +enable_testing() +include(GoogleTest) + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip +) + +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + +enable_testing() + +set(TEST_DIR ./test) +set(TEST_SOURCES + ${TEST_DIR}/nostr_service_test.cpp +) + +add_executable(NostrSDKTest ${TEST_SOURCES} ${HEADERS}) +target_link_libraries(NostrSDKTest PRIVATE + GTest::gmock + GTest::gtest + GTest::gtest_main + NostrSDK + plog::plog + websocketpp::websocketpp +) +set_target_properties(NostrSDKTest PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS YES) + +gtest_add_tests(TARGET NostrSDKTest) |