Files
linuxSmartie/CMakeLists.txt
2026-03-19 00:50:17 +01:00

55 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(linuxSmartie
VERSION 1.0
LANGUAGES CXX
)
# Use C++20
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Collect sources
file(GLOB SOURCES
src/*.cpp
main.cpp
)
# Define executable
add_executable(linuxSmartie ${SOURCES})
# Include directories
target_include_directories(linuxSmartie
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
# Compiler warnings
target_compile_options(linuxSmartie
PRIVATE
-O2
-Wall
-Wextra
-Wpedantic
-Werror
-fdiagnostics-color=always
)
find_package(libwebsockets QUIET)
find_package(ZLIB QUIET)
if(libwebsockets_FOUND)
target_link_libraries(linuxSmartie PRIVATE websockets)
target_compile_definitions(linuxSmartie PRIVATE ENABLE_HOME_ASSISTANT)
else()
message(STATUS "no libwebsockets found, disabling hass")
endif()
if(ZLIB_FOUND)
target_link_libraries(linuxSmartie PRIVATE z)
target_compile_definitions(linuxSmartie PRIVATE ENABLE_ZLIB)
else()
message(STATUS "no zlib found, disabling saving logs to gz")
endif()