37 lines
871 B
CMake
37 lines
871 B
CMake
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# Copyright (c) 2026 0xKSor
|
|
|
|
cmake_minimum_required(VERSION 3.20)
|
|
project(ksOS_bootloader LANGUAGES C ASM)
|
|
|
|
set(UEFI_COMPILE_OPTIONS
|
|
-std=c23
|
|
-target aarch64-unknown-windows-msvc
|
|
-Wall -Wextra
|
|
-fno-builtin
|
|
)
|
|
|
|
add_executable(BOOTAA64
|
|
Source/modules/uefi/efi_entry.c
|
|
Source/main.c
|
|
)
|
|
target_compile_options(BOOTAA64 PRIVATE ${UEFI_COMPILE_OPTIONS})
|
|
target_include_directories(BOOTAA64 PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Source
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Source/modules/uefi
|
|
)
|
|
|
|
target_link_options(BOOTAA64 PRIVATE
|
|
-fuse-ld=lld
|
|
-target aarch64-unknown-windows-msvc
|
|
-nostdlib
|
|
-Wl,-subsystem:efi_application
|
|
-Wl,-entry:efi_main
|
|
)
|
|
|
|
set_target_properties(BOOTAA64 PROPERTIES
|
|
SUFFIX ".EFI"
|
|
OUTPUT_NAME "BOOTAA64"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/efi_bin"
|
|
)
|