Основной файл проекта
cmake_minimum_required(VERSION 3.14)
project(ProjectName LANGUAGES CXX)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/archive)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
option(OPTION_1 "Option 1 description" ON)
option(OPTION_2 "Option 2 description" OFF)
# ...
add_subdirectory(dir1)
add_subdirectory(dir2)
# ...
if(OPTION_1)
add_subdirectory(samples)
endif()
# Testing if needed
enable_testing()
include(GoogleTest)
add_subdirectory(tests)