cmake_minimum_required(VERSION 3.16) file(STRINGS ${CMAKE_SOURCE_DIR}/VERSION DOOS_VERSION LIMIT_COUNT 1) project(doos VERSION ${DOOS_VERSION} LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() add_executable(doos src/main.cpp src/hardening.cpp src/idmap.cpp src/image.cpp src/cgroup.cpp src/cli.cpp src/container.cpp src/network.cpp src/sandbox.cpp src/util.cpp src/davmount.cpp) target_compile_options(doos PRIVATE -Wall -Wextra -Wpedantic -Werror -D_FORTIFY_SOURCE=3 -fstack-protector-strong -O2) target_link_options(doos PRIVATE -Wl,-z,relro -Wl,-z,now) target_compile_definitions(doos PRIVATE DOOS_VERSION="${DOOS_VERSION}") install(TARGETS doos RUNTIME DESTINATION bin)