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 vga.c tss.c process.c syscall.c cpio.c vfs.c initrd_fs.c devicefs.c sysfs.c ide.c mbr.c fat32.c floppy.c ne2000.c env.c keyboard.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 )