cmake_minimum_required(VERSION 3.15) project(new_kernel C ASM) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_C_FLAGS "-g -ffreestanding -Wall -Wextra -fno-exceptions -fno-stack-protector -nostdinc -nostdlib -fno-pie -m32") set(CMAKE_ASM_NASM_OBJECT_FORMAT "elf") set(CMAKE_ASM_FLAGS --32) #set(CMAKE_ASM-ATT_FLAGS --32) SET(CMAKE_EXE_LINKER_FLAGS "-T${CMAKE_CURRENT_LIST_DIR}/linker.ld -lgcc -ffreestanding -nostdlib") set(CMAKE_ASM_COMPILER "/usr/bin/as") #ENABLE_LANGUAGE(ASM_NASM) #enable_language(ASM) include_directories(AFTER kernel boot) set(CMAKE_C_STANDARD 99) FILE(GLOB_RECURSE kernel_src kernel/**.c) FILE(GLOB_RECURSE kernel_asm kernel/**.S) FILE(GLOB_RECURSE boot_asm boot/boot.S) add_executable(my-kernel.bin ${kernel_src} ${kernel_asm} ${boot_asm}) set_source_files_properties(${kernel_src} PROPERTIES LANGUAGE C COMPILE_FLAGS "") set_target_properties(my-kernel.bin PROPERTIES LINKER_LANGUAGE C PREFIX "" SUFFIX "" LINK_FLAGS "")