Skip to content

Commit

Permalink
style: update
Browse files Browse the repository at this point in the history
Signed-off-by: Zone.N <Zone.NiuZH@hotmail.com>
  • Loading branch information
MRNIU committed Jan 7, 2024
1 parent 28a0b99 commit a8fcbac
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 87 deletions.
46 changes: 23 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,28 @@ include(compile_config)

# qemu 参数设置
list(APPEND QEMU_FLAGS
# 使用标准输出显示
-serial stdio
# 启动 telnet 服务,使用 2333 端口,不等待连接
-monitor ${QEMU_MONITOR_ARG}
# 使用标准输出显示
-serial stdio
# 启动 telnet 服务,使用 2333 端口,不等待连接
-monitor ${QEMU_MONITOR_ARG}
)
# 目标平台参数
if(TARGET_ARCH STREQUAL "x86_64")
if (TARGET_ARCH STREQUAL "x86_64")
list(APPEND QEMU_FLAGS
-m 128M
-net none
-bios ${ovmf_BINARY_DIR}/OVMF_${TARGET_ARCH}.fd
-hda fat:rw:./image/
-m 128M
-net none
-bios ${ovmf_BINARY_DIR}/OVMF_${TARGET_ARCH}.fd
-hda fat:rw:./image/
)
elseif(TARGET_ARCH STREQUAL "riscv64")
elseif (TARGET_ARCH STREQUAL "riscv64")
list(APPEND QEMU_FLAGS
-machine virt
-nographic
# 可选项,qemu7.0 自带了 opensbi1.0
-bios ${opensbi_BINARY_DIR}/platform/generic/firmware/fw_jump.elf
-kernel $<TARGET_FILE:kernel>
-machine virt
-nographic
# 可选项,qemu7.0 自带了 opensbi1.0
-bios ${opensbi_BINARY_DIR}/platform/generic/firmware/fw_jump.elf
-kernel $<TARGET_FILE:kernel>
)
elseif(TARGET_ARCH STREQUAL "aarch64")
elseif (TARGET_ARCH STREQUAL "aarch64")
list(APPEND QEMU_FLAGS
-machine virt
-cpu cortex-a57
Expand All @@ -71,7 +71,7 @@ elseif(TARGET_ARCH STREQUAL "aarch64")
-bios ${ovmf_BINARY_DIR}/OVMF_${TARGET_ARCH}.fd
-hda fat:rw:./image/
)
endif()
endif ()

# 添加要编译的目录
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
Expand All @@ -80,10 +80,10 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/doc)

# 添加 run 和 debug target
add_run_target(NAME run
DEPENDS $<$<STREQUAL:${TARGET_ARCH},x86_64>:boot> kernel ${RUN_DEPENDS} ${DEBUG_DEPENDS}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
TARGET ${TARGET_ARCH}
BOOT ${PROJECT_BINARY_DIR}/src/boot/boot.efi
KERNEL $<TARGET_FILE:kernel>
QEMU_FLAGS ${QEMU_FLAGS}
DEPENDS $<$<STREQUAL:${TARGET_ARCH},x86_64>:boot> $<$<STREQUAL:${TARGET_ARCH},aarch64>:boot> kernel ${RUN_DEPENDS} ${DEBUG_DEPENDS}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
TARGET ${TARGET_ARCH}
BOOT ${PROJECT_BINARY_DIR}/src/boot/boot.efi
KERNEL $<TARGET_FILE:kernel>
QEMU_FLAGS ${QEMU_FLAGS}
)
128 changes: 64 additions & 64 deletions cmake/compile_config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,67 +7,67 @@

# 通用编译选项
list(APPEND COMMON_COMPILE_OPTIONS
# 如果 CMAKE_BUILD_TYPE 为 Release 则使用 -O3 -Werror,否则使用 -O0 -g -ggdb
$<$<CONFIG:Release>:-O3;-Werror>
$<$<CONFIG:Debug>:-O0;-g;-ggdb>
# 打开全部警告
-Wall
# 打开额外警告
-Wextra
# 启用异常处理机制
-fexceptions

# 目标平台编译选项
# @todo clang 交叉编译参数
$<$<STREQUAL:${TARGET_ARCH},x86_64>:
# 禁用 red-zone
-mno-red-zone
>

$<$<STREQUAL:${TARGET_ARCH},riscv64>:
>

$<$<STREQUAL:${TARGET_ARCH},aarch64>:
# 生成 armv8-a 代码
-march=armv8-a
# 针对 cortex-a72 优化代码
-mtune=cortex-a72
>

# gcc 特定选项
$<$<CXX_COMPILER_ID:GNU>:
>

# clang 特定选项
$<$<CXX_COMPILER_ID:Clang>:
>

# 平台相关
$<$<PLATFORM_ID:Darwin>:
>
# 如果 CMAKE_BUILD_TYPE 为 Release 则使用 -O3 -Werror,否则使用 -O0 -g -ggdb
$<$<CONFIG:Release>:-O3;-Werror>
$<$<CONFIG:Debug>:-O0;-g;-ggdb>
# 打开全部警告
-Wall
# 打开额外警告
-Wextra
# 启用异常处理机制
-fexceptions

# 目标平台编译选项
# @todo clang 交叉编译参数
$<$<STREQUAL:${TARGET_ARCH},x86_64>:
# 禁用 red-zone
-mno-red-zone
>

$<$<STREQUAL:${TARGET_ARCH},riscv64>:
>

$<$<STREQUAL:${TARGET_ARCH},aarch64>:
# 生成 armv8-a 代码
-march=armv8-a
# 针对 cortex-a72 优化代码
-mtune=cortex-a72
>

# gcc 特定选项
$<$<CXX_COMPILER_ID:GNU>:
>

# clang 特定选项
$<$<CXX_COMPILER_ID:Clang>:
>

# 平台相关
$<$<PLATFORM_ID:Darwin>:
>
)

# 通用链接选项
list(APPEND COMMON_LINK_OPTIONS
# 不链接 ctr0 等启动代码
-nostartfiles

# 目标平台编译选项
# @todo clang 交叉编译参数
$<$<STREQUAL:${TARGET_ARCH},x86_64>:
# 设置最大页大小为 0x1000(4096) 字节
-z max-page-size=0x1000
>

$<$<STREQUAL:${TARGET_ARCH},riscv64>:
# 链接脚本
-T ${CMAKE_SOURCE_DIR}/src/kernel/arch/${TARGET_ARCH}/link.ld
# 不生成位置无关可执行代码
-no-pie
>

$<$<STREQUAL:${TARGET_ARCH},aarch64>:
>
# 不链接 ctr0 等启动代码
-nostartfiles

# 目标平台编译选项
# @todo clang 交叉编译参数
$<$<STREQUAL:${TARGET_ARCH},x86_64>:
# 设置最大页大小为 0x1000(4096) 字节
-z max-page-size=0x1000
>

$<$<STREQUAL:${TARGET_ARCH},riscv64>:
# 链接脚本
-T ${CMAKE_SOURCE_DIR}/src/kernel/arch/${TARGET_ARCH}/link.ld
# 不生成位置无关可执行代码
-no-pie
>

$<$<STREQUAL:${TARGET_ARCH},aarch64>:
>
)

# 通用库选项
Expand Down Expand Up @@ -142,27 +142,27 @@ list(APPEND DEFAULT_KERNEL_COMPILE_OPTIONS
)

list(APPEND DEFAULT_KERNEL_LINK_OPTIONS
${COMMON_LINK_OPTIONS}
${COMMON_LINK_OPTIONS}
)

list(APPEND DEFAULT_KERNEL_LINK_LIB
${COMMON_LINK_LIB}
${COMMON_LINK_LIB}
)

# 编译依赖
if (${TARGET_ARCH} STREQUAL "x86_64")
list(APPEND COMPILE_DEPENDS
gnu-efi
cxxrt-static
gnu-efi
cxxrt-static
)
elseif (${TARGET_ARCH} STREQUAL "riscv64")
list(APPEND COMPILE_DEPENDS
opensbi
cxxrt-static
opensbi
cxxrt-static
)
elseif (${TARGET_ARCH} STREQUAL "aarch64")
list(APPEND COMPILE_DEPENDS
gnu-efi
gnu-efi
cxxrt-static
)
endif ()

0 comments on commit a8fcbac

Please sign in to comment.