cmake_minimum_required(VERSION 3.16.0) project(design-pattern) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(SOURCE_DIR "${PROJECT_SOURCE_DIR}/src") set(INCLUDE_DIR "${PROJECT_SOURCE_DIR}/inc") file(GLOB SOURCES "${SOURCE_DIR}/*.cpp") file(GLOB HEADERS "${INCLUDE_DIR}/*.hpp") aux_source_directory(${SOURCE_DIR} src) aux_source_directory(${INCLUDE_DIR} inc) add_executable(design-pattern ${SOURCES} ${HEADERS} "${PROJECT_SOURCE_DIR}/main.cpp") target_include_directories(design-pattern PRIVATE ${SOURCE_DIR} ${INCLUDE_DIR})