build: convert build system to CMake
This commit is contained in:
5
arch/x86_64/config.cmake
Normal file
5
arch/x86_64/config.cmake
Normal file
@@ -0,0 +1,5 @@
|
||||
target_compile_options(${kernel_exe_name} PRIVATE
|
||||
-z max-page-size=0x1000 -m64 -mcmodel=large -mno-red-zone -mno-mmx
|
||||
-mno-sse -mno-sse2 -D_64BIT -DBYTE_ORDER=1234)
|
||||
target_link_libraries(${kernel_exe_name} "-z max-page-size=0x1000" "-T ${CMAKE_CURRENT_SOURCE_DIR}/arch/x86_64/layout.ld")
|
||||
|
||||
7
arch/x86_64/targets.cmake
Normal file
7
arch/x86_64/targets.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
find_program(QEMU qemu-system-x86_64)
|
||||
|
||||
add_custom_target(run
|
||||
USES_TERMINAL
|
||||
COMMAND ${QEMU}
|
||||
-kernel $<TARGET_FILE:${kernel_exe_name}>
|
||||
-serial stdio)
|
||||
18
arch/x86_64/toolchain.cmake
Normal file
18
arch/x86_64/toolchain.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
# the name of the target operating system
|
||||
set(CMAKE_SYSTEM_NAME Magenta)
|
||||
|
||||
# which compilers to use for C and C++
|
||||
set(CMAKE_C_COMPILER x86_64-elf-gcc)
|
||||
set(CMAKE_ASM_COMPILER x86_64-elf-gcc)
|
||||
set(CMAKE_CXX_COMPILER x86_64-elf-g++)
|
||||
|
||||
set(CMAKE_C_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||
|
||||
# adjust the default behavior of the FIND_XXX() commands:
|
||||
# search programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# search headers and libraries in the target environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
Reference in New Issue
Block a user