# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (c) 2026 0xKSor

cmake_minimum_required(VERSION 3.20)
project(ksOS_init LANGUAGES C ASM)


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
    $<$<COMPILE_LANGUAGE:C>:
        -std=c23
        -fno-stack-protector
        -fno-builtin
        -Wall
        -Wextra
    >
    -ffreestanding
    -g
    -mgeneral-regs-only
)

target_link_options(init PRIVATE
    -nostdlib
    -static
    -no-pie
    -T "${CMAKE_CURRENT_SOURCE_DIR}/../../Common/linker.ld"
    -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}"
)
