-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
71 lines (64 loc) · 2.3 KB
/
CMakeLists.txt
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
cmake_minimum_required(VERSION 3.24)
project(programming_2022)
set(CMAKE_CXX_STANDARD 17)
# Homeworks
file(GLOB_RECURSE homeworks "src/homeworks/*")
foreach (homework ${homeworks})
get_filename_component(homework_ext ${homework} EXT)
if (NOT ${homework_ext} STREQUAL ".cpp")
continue()
endif ()
get_filename_component(homework_name ${homework} NAME)
string(REPLACE ".cpp" "" homework_name ${homework_name})
add_executable(${homework_name} ${homework})
endforeach ()
# Classworks
file(GLOB_RECURSE classworks "src/classworks/*")
foreach (classwork ${classworks})
get_filename_component(classwork_ext ${classwork} EXT)
if (NOT ${classwork_ext} STREQUAL ".cpp")
continue()
endif ()
get_filename_component(classwork_name ${classwork} NAME)
string(REPLACE ".cpp" "" classwork_name ${classwork_name})
set(executable_name "classwork_${classwork_name}")
add_executable(${executable_name} ${classwork})
endforeach ()
# Algorithms
file(GLOB_RECURSE algorithms "src/algorithms/*")
foreach (algorithm ${algorithms})
get_filename_component(algorithm_ext ${algorithm} EXT)
if (NOT ${algorithm_ext} STREQUAL ".cpp")
continue()
endif ()
get_filename_component(algorithm_name ${algorithm} NAME)
string(REPLACE ".cpp" "" algorithm_name ${algorithm_name})
set(executable_name "algorithm_${algorithm_name}")
add_executable(${executable_name} ${algorithm})
endforeach ()
# Projects
file(GLOB_RECURSE projects "src/projects/*")
foreach (project ${projects})
get_filename_component(project_ext ${project} EXT)
if (NOT ${project_ext} STREQUAL ".cpp")
continue()
endif ()
get_filename_component(project_name ${project} NAME)
string(REPLACE ".cpp" "" project_name ${project_name})
set(executable_name "project_${project_name}")
add_executable(${executable_name} ${project})
endforeach ()
# Tests
file(GLOB_RECURSE tests "src/tests/*")
foreach (test ${tests})
get_filename_component(test_ext ${test} EXT)
if (NOT ${test_ext} STREQUAL ".cpp")
continue()
endif ()
get_filename_component(test_name ${test} NAME)
string(REPLACE ".cpp" "" test_name ${test_name})
set(executable_name "test_${test_name}")
add_executable(${executable_name} ${test})
endforeach ()
# Shared libraries
include_directories(shared)