Files

66 lines
1.5 KiB
CMake
Raw Permalink Normal View History

2018-09-06 22:49:00 -04:00
cmake_minimum_required(VERSION 3.2)
project(kernel)
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
enable_language(ASM_NASM)
2018-09-07 08:08:46 -04:00
if (CMAKE_HOST_APPLE)
2018-09-07 00:32:45 -04:00
set(CMAKE_C_COMPILER i386-elf-gcc)
set(CMAKE_AR i386-elf-ar)
set(CMAKE_RANLIB i386-elf-ranlib)
endif()
2018-09-06 22:49:00 -04:00
2018-10-03 00:15:03 -04:00
set(CMAKE_C_FLAGS "-m32 -std=c11 -ffreestanding -fno-pie -fshort-enums -Wall -Werror -Wno-error=unused-variable -Wno-error=attributes")
# if clang: -Wno-error=unused-command-line-argument -nobuiltininc
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc -fno-builtin -nostdlib -nodefaultlibs")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector") # FIXME generates bad code using `mov eax, large gs:14h`?
set(CMAKE_C_FLAGS_DEBUG "-gdwarf-4 -DENABLE_DWARF")
if (NOT CMAKE_HOST_APPLE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=undefined")
endif()
set(CMAKE_C_FLAGS_RELEASE "-Os")
2018-09-06 22:49:00 -04:00
include_directories(${CMAKE_SOURCE_DIR}/libc)
set(SOURCE_FILES
2018-09-06 22:49:00 -04:00
console
descriptor_tables
gdt.asm
2018-09-07 00:32:45 -04:00
interrupt.asm
isr
2018-09-06 22:49:00 -04:00
main
shell
multiboot
2018-09-28 00:50:46 -04:00
div64
elf
dwarf
stdio_impl
2018-10-07 00:34:59 -04:00
bmp
psf
kmalloc
arch/x86/mmu
2018-09-07 13:49:25 -04:00
drivers/ports
2018-09-23 02:35:03 -04:00
drivers/timer
2018-09-23 03:11:42 -04:00
drivers/keyboard
drivers/acpi
drivers/serial
drivers/vga
2018-09-28 00:50:46 -04:00
drivers/ata
drivers/pci
drivers/pci_registry
# drivers/i825xx
2018-09-27 17:31:08 -04:00
fatfs/diskio
fatfs/ff
fatfs/ffconf.h
fatfs/ffsystem
fatfs/ffunicode
fatfs/integer.h
tests/tests.h
2018-09-28 00:50:46 -04:00
tests/vector
tests/fatfs
tests/stdio
tests/path
tests/pages)
if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(SOURCE_FILES ${SOURCE_FILES} debug/ubsan)
endif ()
add_library(kernel STATIC ${SOURCE_FILES})