From b71dc48311f627b6491a3c11f7055adc5fcfbd3b Mon Sep 17 00:00:00 2001 From: Rick Rongen Date: Wed, 21 Sep 2022 22:03:01 +0200 Subject: [PATCH] feat: some cmake magic --- CMakeLists.txt | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bd8578..3fea6af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.15) project(new_kernel C ASM) +set(CMAKE_C_STANDARD 99) # Define compiler run time SET(COMPILER_RT ${CMAKE_CURRENT_LIST_DIR}/compiler/target/bin) @@ -7,24 +8,48 @@ SET(CMAKE_C_COMPILER ${COMPILER_RT}/i686-elf-gcc) SET(CMAKE_ASM_COMPILER ${COMPILER_RT}/i686-elf-gcc) # Optionally enable cmake debugging -SET(CMAKE_VERBOSE_MAKEFILE ON) +#SET(CMAKE_VERBOSE_MAKEFILE ON) # Set compile flags SET(CMAKE_C_FLAGS "-g -ffreestanding -Wall -Wextra -fno-exceptions -fstack-protector -fno-pie -m32") SET(CMAKE_ASM_FLAGS "${CFLAGS} -m32 -x assembler-with-cpp") SET(CMAKE_EXE_LINKER_FLAGS "-T${CMAKE_CURRENT_LIST_DIR}/linker.ld -nostdlib -lgcc") -include_directories(AFTER include lai/include) +# Include directory +include_directories(AFTER include) -set(CMAKE_C_STANDARD 99) +################ +# Features # +################ -FILE(GLOB lai lai/core/*.c lai/helpers/*.c lai/driver/*.c) +set(ENABLE_ACPI ON CACHE BOOL "Enable ACPI Suppport") + +#################### +# ACPI Feature # +#################### +if (ENABLE_ACPI) + include_directories(AFTER lai/include) + FILE(GLOB lai lai/core/*.c lai/helpers/*.c lai/driver/*.c) +ELSE() + set(lai) +endif () + +# Other sourcees FILE(GLOB_RECURSE kernel_src kernel/**.c) FILE(GLOB_RECURSE kernel_asm kernel/**.S) FILE(GLOB_RECURSE boot_asm boot/boot.S) add_compile_definitions(__kernel__) +####################### +# Kernel Features # +####################### + +# ACPI +if (ENABLE_ACPI) + add_compile_definitions(ENABLE_ACPI) +endif () + # Run IDE in DMA mode if available (NYI) #add_compile_definitions(IDE_ENABLE_INTERRUPT) # Kernel Command Line features