59 lines
1.7 KiB
CMake
59 lines
1.7 KiB
CMake
cmake_minimum_required( VERSION 3.22 )
|
|
project( snoop_device )
|
|
|
|
set( CMAKE_CXX_STANDARD 23 )
|
|
|
|
find_package(OpenSSL REQUIRED)
|
|
|
|
add_subdirectory( third_party/portaudio )
|
|
add_subdirectory( third_party/opus )
|
|
add_subdirectory( third_party/cpp-httplib )
|
|
add_subdirectory( third_party/nlohmann_json )
|
|
add_subdirectory( third_party/spdlog )
|
|
add_subdirectory( third_party/libogg )
|
|
add_subdirectory( third_party/libdatachannel )
|
|
|
|
option(USE_ALSA_ADAPTER "Use ALSA Adapter" OFF)
|
|
if(USE_ALSA_ADAPTER)
|
|
message(STATUS "Using ALSA Adapter")
|
|
add_definitions(-DUSE_ALSA_ADAPTER)
|
|
endif()
|
|
|
|
set( SOURCES
|
|
src/main.cpp
|
|
)
|
|
|
|
set( HEADERS
|
|
src/Concepts/AudioAdapterConcept.h
|
|
src/Concepts/AudioEncderConcept.h
|
|
src/Concepts/AudioWriterConcept.h
|
|
src/AudioAdapters/PortAudioAdapter.h
|
|
src/AudioAdapters/AlsaAudioAdapter.h
|
|
src/AudioEncoders/OpusEncoder.h
|
|
src/AudioWriters/OggAudioWriter.h
|
|
src/Services/AudioStreamService.h
|
|
src/Services/AudioWriterService.h
|
|
src/Services/ConfigService.h
|
|
src/Services/DeviceControlService.h
|
|
src/Services/EnrollmentService.h
|
|
src/Security/TlsKeyUtil.h
|
|
src/Security/SslCertUtil.h
|
|
)
|
|
|
|
add_executable( ${PROJECT_NAME} ${SOURCES} ${HEADERS} )
|
|
target_include_directories( ${PROJECT_NAME} PRIVATE src )
|
|
# Enable HTTPS (mTLS) support in cpp-httplib across ALL TUs of this target
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
|
|
|
|
target_link_libraries( ${PROJECT_NAME} PRIVATE
|
|
portaudio_static
|
|
opus
|
|
nlohmann_json
|
|
spdlog::spdlog_header_only
|
|
Ogg::ogg
|
|
httplib::httplib
|
|
datachannel
|
|
OpenSSL::SSL
|
|
OpenSSL::Crypto
|
|
)
|