Files
whisper-com/CMakeLists.txt
2022-10-22 15:12:29 +02:00

66 lines
1.6 KiB
CMake
Executable File

cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
project (whisper-com VERSION 0.1.0 LANGUAGES CXX C)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
include(defaultOptions)
IF(NOT TARGET Catch2)
add_subdirectory(libs/Catch2 EXCLUDE_FROM_ALL)
include(libs/Catch2/contrib/Catch.cmake)
ENDIF()
add_compile_definitions(LOGURU_WITH_STREAMS SQLITE_THREADSAFE=2)
IF(NOT TARGET loguru)
add_subdirectory(libs/loguru EXCLUDE_FROM_ALL)
ENDIF()
IF(NOT TARGET libzmq)
set(ZMQ_BUILD_TESTS OFF CACHE INTERNAL "")
add_subdirectory(libs/libzmq)
ENDIF()
IF(NOT TARGET cppzmq)
set(CPPZMQ_BUILD_TESTS OFF CACHE INTERNAL "")
add_subdirectory(libs/cppzmq EXCLUDE_FROM_ALL)
ENDIF()
set(protobuf_BUILD_TESTS OFF CACHE INTERNAL "")
set(protobuf_BUILD_EXAMPLES OFF CACHE INTERNAL "")
add_subdirectory(libs/protobuf EXCLUDE_FROM_ALL)
include(protobuf)
protobuf_generate_cpp(PROTO_PATH tests/protos CPP_PATH tests/protos/src HPP_PATH tests/protos/include)
add_library(whisper-com STATIC
include/WHISPER/whisper.hpp
src/WHISPER/whisper.cpp
)
target_link_libraries(whisper-com
loguru
cppzmq
libzmq
)
add_dependencies(whisper-com protoc)
target_include_directories(whisper-com PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
src)
#
# Everything TEST related
#
option(TEST_WHISPER_COMMUNICATION_LIBRARY "Turn running of application template specific tests off" ON)
IF (${TEST_WHISPER_COMMUNICATION_LIBRARY})
add_executable(test_test tests/test_test.cpp)
target_link_libraries(test_test Catch2::Catch2 whisper-com loguru)
catch_discover_tests(test_test)
ENDIF()