fix: clangd
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
CompileFlags:
|
||||
CompilationDatabase: ../.build/temp/Kernel
|
||||
@@ -1,5 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(ksOSKernel LANGUAGES ASM C)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
file(GLOB_RECURSE KERNEL_SOURCES CMAKE_CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Source/KernelMain.c
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
void KernelMain(void) {
|
||||
#include "types.h"
|
||||
|
||||
void KernelMain(void) {
|
||||
volatile UInt64 meow = 0x12345;
|
||||
}
|
||||
@@ -3,25 +3,35 @@ set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
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(
|
||||
COMMAND brew --prefix llvm
|
||||
OUTPUT_VARIABLE LLVM_PREFIX
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
RESULT_VARIABLE BREW_PREFIX_RESULT
|
||||
)
|
||||
set(LLVM_BIN "${LLVM_PREFIX}/bin")
|
||||
else()
|
||||
find_program(_CLANG clang)
|
||||
if(BREW_PREFIX_RESULT EQUAL 0 AND EXISTS "${LLVM_PREFIX}/bin/clang")
|
||||
set(_CLANG "${LLVM_PREFIX}/bin/clang")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT _CLANG)
|
||||
message(FATAL_ERROR "clang not found.")
|
||||
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_ASM_COMPILER "${LLVM_BIN}/clang")
|
||||
set(LLVM_OBJCOPY "${LLVM_BIN}/llvm-objcopy")
|
||||
|
||||
set(TARGET_TRIPLE aarch64-none-elf)
|
||||
set(CMAKE_C_COMPILER_TARGET ${TARGET_TRIPLE})
|
||||
@@ -29,10 +39,17 @@ set(CMAKE_ASM_COMPILER_TARGET ${TARGET_TRIPLE})
|
||||
|
||||
if(APPLE)
|
||||
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_EXECUTABLE
|
||||
"${TERMOS_LD_LLD} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
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
@@ -6,7 +6,7 @@ build:
|
||||
|
||||
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"
|
||||
|
||||
clean:
|
||||
|
||||
Reference in New Issue
Block a user