-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
49 lines (37 loc) · 1.37 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
cmake_minimum_required(VERSION 3.10)
# Set the project name
project(OOPClassHierarchy)
# Set the C++ standard
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# INFO: Link static libraries
set(CMAKE_EXE_LINKER_FLAGS "-static")
# INFO: Set Release mode and optimizations
# Uncomment this section if you want a debug build
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
set(CMAKE_CXX_FLAGS "-Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
# Add Google Test as a subdirectory
add_subdirectory(external/googletest)
# Enable testing with CTest
enable_testing()
# Include Google Test headers
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
# Add subdirectories for each project
add_subdirectory(projects/0001-design-patterns-video-tutorial-1/src)
# Add other projects as needed
# add_subdirectory(projects/0002-design-patterns-video-tutorial-2)
# add_subdirectory(projects/0003-strategy-design-pattern)
# add_subdirectory(projects/0004-observer-design-pattern)
# cmake_minimum_required(VERSION 3.10)
#
# project(DesignPatterns)
#
# # Include subprojects
# add_subdirectory(projects/0001-design-patterns-video-tutorial-1)
# # add_subdirectory(projects/0002-design-patterns-video-tutorial-2)
# # add_subdirectory(projects/0003-strategy-design-pattern)
# # add_subdirectory(projects/0004-observer-design-pattern)