-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
40 lines (31 loc) · 1.06 KB
/
Copy pathCMakeLists.txt
File metadata and controls
40 lines (31 loc) · 1.06 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
36
37
38
39
include ("config.cmake")
project(Kernel CXX)
cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 17)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/artifact)
add_subdirectory(kernel/asm)
file(GLOB_RECURSE kernel_files
${PROJECT_SOURCE_DIR}/kernel/*.cpp
${PROJECT_SOURCE_DIR}/kernel/*.hpp
)
add_executable( kernel ${kernel_files})
target_link_libraries(kernel
io_func_asm
)
add_custom_target(bootLoader_Build ALL
COMMAND bash ${CMAKE_SOURCE_DIR}/buildBootLoader.sh
COMMENT [[building bootloader...]]
)
target_include_directories(kernel PRIVATE
${PROJECT_SOURCE_DIR}/kernel
${PROJECT_SOURCE_DIR}/MikanLoaderPkg/DataStruct
)
string(REPLACE " " ";" CPPFLAGS_LIST $ENV{CPPFLAGS} )
string(REPLACE " " ";" LDFLAGS_LIST $ENV{LDFLAGS} )
target_compile_options(kernel PRIVATE
-Wall -g -O0 --target=x86_64-elf -ffreestanding -mno-red-zone -fno-exceptions -fno-rtti ${CPPFLAGS_LIST}
)
target_link_options(kernel PRIVATE
--entry KernelMain -z norelro --image-base 0x100000 --static ${LDFLAGS_LIST}
-lc -lc++ -lm -lc++abi
)