Files
ksOS/Runtime/System/Init/CMakeLists.txt
T
2026-05-03 15:49:40 +04:00

41 lines
943 B
CMake

# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (c) 2026 0xKSor
cmake_minimum_required(VERSION 3.20)
project(ksOS_init LANGUAGES C)
file(GLOB_RECURSE INIT_SOURCES CMAKE_CONFIGURE_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/Source/*.S
${CMAKE_CURRENT_SOURCE_DIR}/Source/*.c
)
add_executable(init ${INIT_SOURCES})
target_include_directories(init PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/Source
${CMAKE_CURRENT_SOURCE_DIR}/../../Common
)
target_compile_options(init PRIVATE
-std=c23
-ffreestanding
-fno-stack-protector
-fno-builtin
-Wall -Wextra
-g
-mgeneral-regs-only
)
# Передаем "голые" аргументы напрямую для ld.lld
target_link_options(init PRIVATE
"-Ttext=0x400000"
"-e" "_start"
"-z" "max-page-size=0x1000"
"--no-dynamic-linker"
)
set_target_properties(init PROPERTIES
OUTPUT_NAME "Init"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)