-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
35 lines (27 loc) · 1.21 KB
/
CMakeLists.txt
File metadata and controls
35 lines (27 loc) · 1.21 KB
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
cmake_minimum_required(VERSION 3.15)
project(server_framework)
option(BUILD_TESTING "生成测试" ON)
option(BUILD_EXAMPLES "生成示例" ON)
# 注意CMAKE预定义变量无法自己设置为缓存的,因为他们初始化地更早,所以自己写的set/option不会对它们起作用
set(CMAKE_CXX_STANDARD 17 REQUIRED)
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# 用于测试覆盖率的编译条件
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -lgcov -fno-access-control")
add_definitions("-O0 -g -rdynamic -ggdb -Wno-unused-variable")
# for clangd to diagnose c++ standard
add_definitions("-std=c++17")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
include(CTest)
enable_testing()
# 全局头文件搜索目录
include_directories(src)
add_subdirectory(src)
if(BUILD_TESTING)
# TODO 应该学习leveldb那样,将单测和源码放一起,这样对源码的条件构建就能同时影响单测。否则单测无条件全编,但是源码可能部分不编,这样就对不上了
# add_subdirectory(tests)
endif()
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()