# 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}"
)
