blob: d37d042f0922bee0b1e222b68bf48232df03e208 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
cmake_minimum_required(VERSION 4.3.4)
project(LearnCPP)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# where to put binaries
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# find all .cpp files inside src directory
file(GLOB_RECURSE SOURCES "src/*.cpp")
foreach(SOURCE_FILE ${SOURCES})
# get paths
file(RELATIVE_PATH REL_PATH ${CMAKE_SOURCE_DIR}/src ${SOURCE_FILE})
# form target names (substitute '/' to '_', remove '.cpp')
string(REPLACE "/" "_" TARGET_NAME ${REL_PATH})
string(REPLACE ".cpp" "" TARGET_NAME ${TARGET_NAME})
add_executable(${TARGET_NAME} ${SOURCE_FILE})
target_compile_options(${TARGET_NAME} PRIVATE
-Wall -Weffc++ -Wextra -Wpedantic
)
# link libs here
endforeach()
|