cmake_minimum_required(VERSION 3.3) project(cspotcli) # Configurable options option(USE_ALSA "Enable ALSA" OFF) option(USE_PORTAUDIO "Enable PortAudio" OFF) set(CMAKE_BUILD_TYPE Debug CACHE STRING "CMake Build Type") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if(CMAKE_EXPORT_COMPILE_COMMANDS) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) endif() set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # CMake options set(CMAKE_CXX_STANDARD 20) if(MSVC) add_compile_definitions(NOMINMAX _WINSOCK_DEPRECATED_NO_WARNINGS _CRT_SECURE_NO_WARNINGS) add_definitions(/wd4068 /wd4244 /wd4018 /wd4101 /wd4102 /wd4142) endif() # Main target sources file(GLOB SOURCES "*.cpp") find_package(portaudio REQUIRED ) include_directories( ${PORTAUDIO_INCLUDE_DIRS} ) set(THINGS_TO_LINK ${THINGS_TO_LINK} ${PORTAUDIO_LIBRARIES}) if(USE_PORTAUDIO) add_definitions(-DCSPOT_ENABLE_PORTAUDIO_SINK) set(BELL_SINK_PORTAUDIO ON) endif(USE_PORTAUDIO) unset(USE_PORTAUDIO CACHE) if(USE_ALSA) add_definitions(-DCSPOT_ENABLE_ALSA_SINK) set(BELL_SINK_ALSA ON) endif(USE_ALSA) unset(USE_ALSA CACHE) # Import cspot library add_subdirectory("../../cspot" ${CMAKE_CURRENT_BINARY_DIR}/cspot) # Configure the target add_executable(cspotcli ${SOURCES}) target_link_libraries(cspotcli PUBLIC cspot ${EXTRA_LIBS} ${THINGS_TO_LINK}) add_compile_options(-fsanitize=address -fno-omit-frame-pointer -O1) add_link_options(-fsanitize=address) target_include_directories(cspotcli PRIVATE "." ${EXTRA_INCLUDES})