Files
2026-05-03 17:59:46 +04:00

48 lines
1011 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 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}"
)