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