fix: clangd

This commit is contained in:
karina
2026-04-23 06:49:40 +04:00
parent bfa84040b8
commit cf142ba78e
6 changed files with 53 additions and 13 deletions
+2
View File
@@ -0,0 +1,2 @@
CompileFlags:
CompilationDatabase: ../.build/temp/Kernel
+1
View File
@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.20)
project(ksOSKernel LANGUAGES ASM C) project(ksOSKernel LANGUAGES ASM C)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
file(GLOB_RECURSE KERNEL_SOURCES CMAKE_CONFIGURE_DEPENDS file(GLOB_RECURSE KERNEL_SOURCES CMAKE_CONFIGURE_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/Source/KernelMain.c ${CMAKE_CURRENT_SOURCE_DIR}/Source/KernelMain.c
+18
View File
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-3.0-or-later
// Copyright (c) 2026 0xKarinyash
#pragma once
typedef unsigned char UInt8;
typedef unsigned short UInt16;
typedef unsigned int UInt32;
typedef unsigned long long UInt64;
typedef signed char Int8;
typedef signed short Int16;
typedef signed int Int32;
typedef signed long long Int64;
typedef UInt64 Size;
+3 -1
View File
@@ -1,3 +1,5 @@
void KernelMain(void) { #include "types.h"
void KernelMain(void) {
volatile UInt64 meow = 0x12345;
} }
+28 -11
View File
@@ -3,25 +3,35 @@ set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
if(NOT LLVM_BIN) if(NOT LLVM_BIN)
if(APPLE) find_program(_CLANG
NAMES clang
HINTS
/opt/homebrew/opt/llvm/bin
/usr/local/opt/llvm/bin
)
if(NOT _CLANG AND APPLE)
execute_process( execute_process(
COMMAND brew --prefix llvm COMMAND brew --prefix llvm
OUTPUT_VARIABLE LLVM_PREFIX OUTPUT_VARIABLE LLVM_PREFIX
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
RESULT_VARIABLE BREW_PREFIX_RESULT
) )
set(LLVM_BIN "${LLVM_PREFIX}/bin") if(BREW_PREFIX_RESULT EQUAL 0 AND EXISTS "${LLVM_PREFIX}/bin/clang")
else() set(_CLANG "${LLVM_PREFIX}/bin/clang")
find_program(_CLANG clang)
if(NOT _CLANG)
message(FATAL_ERROR "clang not found.")
endif() endif()
get_filename_component(LLVM_BIN "${_CLANG}" DIRECTORY)
endif() endif()
if(NOT _CLANG)
message(FATAL_ERROR "clang not found. Set LLVM_BIN or add clang to PATH.")
endif()
get_filename_component(LLVM_BIN "${_CLANG}" DIRECTORY)
endif() endif()
set(CMAKE_C_COMPILER "${LLVM_BIN}/clang") set(CMAKE_C_COMPILER "${LLVM_BIN}/clang")
set(CMAKE_ASM_COMPILER "${LLVM_BIN}/clang") set(CMAKE_ASM_COMPILER "${LLVM_BIN}/clang")
set(LLVM_OBJCOPY "${LLVM_BIN}/llvm-objcopy")
set(TARGET_TRIPLE aarch64-none-elf) set(TARGET_TRIPLE aarch64-none-elf)
set(CMAKE_C_COMPILER_TARGET ${TARGET_TRIPLE}) set(CMAKE_C_COMPILER_TARGET ${TARGET_TRIPLE})
@@ -29,10 +39,17 @@ set(CMAKE_ASM_COMPILER_TARGET ${TARGET_TRIPLE})
if(APPLE) if(APPLE)
find_program(TERMOS_LD_LLD NAMES ld.lld HINTS /usr/local/bin /opt/homebrew/bin REQUIRED) find_program(TERMOS_LD_LLD NAMES ld.lld HINTS /usr/local/bin /opt/homebrew/bin REQUIRED)
find_program(LLVM_OBJCOPY NAMES llvm-objcopy objcopy
HINTS /usr/local/opt/llvm/bin /opt/homebrew/opt/llvm/bin /usr/local/bin /opt/homebrew/bin
REQUIRED)
set(CMAKE_C_LINK_FLAGS "") set(CMAKE_C_LINK_FLAGS "")
set(CMAKE_C_LINK_EXECUTABLE set(CMAKE_C_LINK_EXECUTABLE
"${TERMOS_LD_LLD} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>") "${TERMOS_LD_LLD} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
endif() endif()
find_program(LLVM_OBJCOPY NAMES llvm-objcopy objcopy
HINTS
"${LLVM_BIN}"
/usr/local/opt/llvm/bin
/opt/homebrew/opt/llvm/bin
/usr/local/bin
/opt/homebrew/bin
REQUIRED
)
+1 -1
View File
@@ -6,7 +6,7 @@ build:
cmake --build {{TEMP_DIR}}/Kernel cmake --build {{TEMP_DIR}}/Kernel
cp {{TEMP_DIR}}/Kernel/kernel.bin {{BUILD_DIR}}/Kernel/ksOSKernel.bin cp {{TEMP_DIR}}/Kernel/Kernel.bin {{BUILD_DIR}}/Kernel/ksOSKernel.bin
@echo "✅ Kernel ready at: {{BUILD_DIR}}/Kernel/ksOSKernel.bin" @echo "✅ Kernel ready at: {{BUILD_DIR}}/Kernel/ksOSKernel.bin"
clean: clean: