-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
55 lines (45 loc) · 1.07 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
cmake_minimum_required(VERSION 3.0.0)
project(
DimOS
VERSION 0.1.0
LANGUAGES CXX C ASM
)
include(CTest)
enable_testing()
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(INSTALL_DIR $ENV{SYSROOT})
set(COMMON_FLAGS "\
-Wall \
-Wextra \
-ffreestanding \
-fno-stack-protector \
-fno-stack-check \
-fno-lto \
-fno-pie \
-fno-pic \
-m64 \
-march=x86-64 \
-mabi=sysv \
-mno-80387 \
-mno-mmx \
-mno-sse \
-mno-sse2 \
-mno-red-zone \
-mcmodel=kernel \
-MMD \
")
set(CMAKE_C_FLAGS "${COMMON_FLAGS} \
-std=c11 \
")
set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} \
-std=c++20 \
-mgeneral-regs-only \
-fno-rtti \
-fno-exceptions \
")
SET(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp")
add_subdirectory(${CMAKE_SOURCE_DIR}/libc)
add_subdirectory(${CMAKE_SOURCE_DIR}/kernel)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)