cmake_minimum_required(VERSION 3.16) add_executable(kernel boot.S gdt_flush.S gdt.c idt.c isr.c pic.c pmm.c paging.c kmalloc.c string.c driver.c interrupts.S kernel.c ) # Use our custom linker script target_link_options(kernel PRIVATE -T ${CMAKE_CURRENT_SOURCE_DIR}/linker.ld) target_include_directories(kernel PRIVATE ${CMAKE_SOURCE_DIR}/vendor ${CMAKE_SOURCE_DIR}/include # If created later )