Clean up cmake files (Part 2)
I've kept just one cmake project, in the root directory. The subdirectories just set up the targets. The asm compiler is serached just one time, from the root directory cmake file. Global compilation flags are set in the root cmake file, and each subdirectory cmake file sets specific flags if necessary (e.g., programs need the -u_start specified)
This commit is contained in:
+73
-12
@@ -1,14 +1,13 @@
|
||||
# =============================================================================
|
||||
# PROJECT SETUP
|
||||
# =============================================================================
|
||||
|
||||
# Set the minimum required version of cmake.
|
||||
cmake_minimum_required(VERSION 3.1...3.22)
|
||||
|
||||
# Initialize the project.
|
||||
project(mentos C ASM)
|
||||
|
||||
# =============================================================================
|
||||
# BUILD TYPE (Debug/Release)
|
||||
# =============================================================================
|
||||
|
||||
# Set the default build type to Debug.
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "Setting build type to 'Debug' as none was specified.")
|
||||
@@ -16,12 +15,7 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
endif()
|
||||
|
||||
# =============================================================================
|
||||
# DOCUMENTATION
|
||||
# =============================================================================
|
||||
add_subdirectory(doc)
|
||||
|
||||
# =============================================================================
|
||||
# OS-SPECIFIC COMPILERS
|
||||
# OS-SPECIFIC COMPILERS SETUP
|
||||
# =============================================================================
|
||||
|
||||
# Add operating system specific option.
|
||||
@@ -62,7 +56,73 @@ else()
|
||||
endif()
|
||||
|
||||
# =============================================================================
|
||||
# COMPILATION
|
||||
# ASSEMBLY COMPILER
|
||||
# =============================================================================
|
||||
|
||||
# Find the NASM compiler.
|
||||
find_program(ASM_COMPILER NAMES nasm HINTS /usr/bin/ /usr/local/bin/)
|
||||
# Mark the variable ASM_COMPILER as advanced.
|
||||
mark_as_advanced(ASM_COMPILER)
|
||||
# Check that we have found the compiler.
|
||||
if(NOT ASM_COMPILER)
|
||||
message(FATAL_ERROR "ASM compiler not found!")
|
||||
endif(NOT ASM_COMPILER)
|
||||
# Set the asm compiler.
|
||||
set(CMAKE_ASM_COMPILER ${ASM_COMPILER})
|
||||
# Set the assembly compiler flags.
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O0 -F dwarf -o <OBJECT> <SOURCE>")
|
||||
else()
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O3 -o <OBJECT> <SOURCE>")
|
||||
endif()
|
||||
|
||||
# =============================================================================
|
||||
# GLOBAL COMPILATION FLAGS
|
||||
# =============================================================================
|
||||
|
||||
# Warning flags.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
# Disable some specific warnings.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
|
||||
|
||||
# Set the compiler options.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdlib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-pic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
|
||||
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcommon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
# Set the assembly compiler flags.
|
||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -m32")
|
||||
|
||||
# =============================================================================
|
||||
# SUB-DIRECTORIES SETUP
|
||||
# =============================================================================
|
||||
|
||||
# Add the sub-directories.
|
||||
@@ -70,6 +130,7 @@ add_subdirectory(programs)
|
||||
add_subdirectory(programs/tests)
|
||||
add_subdirectory(mentos)
|
||||
add_subdirectory(libc)
|
||||
add_subdirectory(doc)
|
||||
|
||||
# =============================================================================
|
||||
# FILESYSTEM
|
||||
@@ -131,7 +192,7 @@ set(EMULATOR_FLAGS ${EMULATOR_FLAGS} -drive file=${CMAKE_BINARY_DIR}/rootfs.img,
|
||||
# Booting with QEMU for fun
|
||||
# =============================================================================
|
||||
|
||||
# This first target runs the emualtor passing the kernel binary file.
|
||||
# This first target runs the emulator passing the kernel binary file.
|
||||
add_custom_target(
|
||||
qemu
|
||||
COMMAND test -e ${CMAKE_BINARY_DIR}/rootfs.img || ${CMAKE_COMMAND} -E cmake_echo_color --red "No filesystem file detected, you need to run: make filesystem"
|
||||
|
||||
+263
-263
@@ -3,7 +3,7 @@ find_package(Doxygen)
|
||||
|
||||
if (DOXYGEN_FOUND)
|
||||
# Read the file with the version.
|
||||
file(READ ${PROJECT_SOURCE_DIR}/mentos/inc/version.h version_file)
|
||||
file(READ ${CMAKE_SOURCE_DIR}/mentos/inc/version.h version_file)
|
||||
# Extract the OS version.
|
||||
string(REGEX MATCH "OS_MAJOR_VERSION ([0-9]*)" _ ${version_file})
|
||||
set(OS_MAJOR_VERSION ${CMAKE_MATCH_1})
|
||||
@@ -15,8 +15,8 @@ if (DOXYGEN_FOUND)
|
||||
set(DOXYGEN_PROJECT_NAME "MentOS")
|
||||
set(DOXYGEN_PROJECT_NUMBER "${OS_MAJOR_VERSION}.${OS_MINOR_VERSION}.${OS_MICRO_VERSION}")
|
||||
set(DOXYGEN_PROJECT_BRIEF "The Mentoring Operating System")
|
||||
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${PROJECT_SOURCE_DIR}/README.md)
|
||||
set(DOXYGEN_IMAGE_PATH ${PROJECT_SOURCE_DIR}/doc/resources)
|
||||
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${CMAKE_SOURCE_DIR}/README.md)
|
||||
set(DOXYGEN_IMAGE_PATH ${CMAKE_SOURCE_DIR}/doc/resources)
|
||||
set(DOXYGEN_SHOW_INCLUDE_FILES NO)
|
||||
set(DOXYGEN_GENERATE_TREEVIEW NO)
|
||||
set(DOXYGEN_WARN_NO_PARAMDOC YES)
|
||||
@@ -28,272 +28,272 @@ if (DOXYGEN_FOUND)
|
||||
set(DOXYGEN_PREDEFINED "__attribute__((x))= _syscall0= _syscall0(x)= _syscall1(x)= _syscall2(x)= _syscall3(x)=")
|
||||
|
||||
set(DOXYGEN_WARN_FORMAT "$file($line): $text")
|
||||
set(DOXYGEN_HTML_STYLESHEET ${PROJECT_SOURCE_DIR}/doc/doxygen.css)
|
||||
set(DOXYGEN_HTML_STYLESHEET ${CMAKE_SOURCE_DIR}/doc/doxygen.css)
|
||||
doxygen_add_docs(
|
||||
${PROJECT_NAME}_documentation
|
||||
${PROJECT_SOURCE_DIR}/README.md
|
||||
${PROJECT_SOURCE_DIR}/LICENSE.md
|
||||
${PROJECT_SOURCE_DIR}/doc/signal.md
|
||||
${PROJECT_SOURCE_DIR}/doc/syscall.md
|
||||
mentos_documentation
|
||||
${CMAKE_SOURCE_DIR}/README.md
|
||||
${CMAKE_SOURCE_DIR}/LICENSE.md
|
||||
${CMAKE_SOURCE_DIR}/doc/signal.md
|
||||
${CMAKE_SOURCE_DIR}/doc/syscall.md
|
||||
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/boot.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/descriptor_tables/gdt.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/descriptor_tables/idt.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/descriptor_tables/isr.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/descriptor_tables/tss.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/devices/fpu.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/devices/pci.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/ata/ata.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/ata/ata_types.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/fdc.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/keyboard/keyboard.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/keyboard/keymap.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/mouse.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/ps2.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/drivers/rtc.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/elf/elf.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/fs/ext2.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/fs/ioctl.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/fs/procfs.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/fs/vfs.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/fs/vfs_types.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/hardware/cpuid.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/hardware/pic8259.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/hardware/timer.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/proc_modules.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/vga/vga.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/vga/vga_font.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/vga/vga_mode.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/vga/vga_palette.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/io/video.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/kernel.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/compiler.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/hashmap.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/irqflags.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/list.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/list_head.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/mutex.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/ndtree.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/rbtree.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/spinlock.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/stack_helper.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/klib/stdatomic.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/link_access.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/buddysystem.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/gfp.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/kheap.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/paging.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/slab.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/vmem_map.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/mem/zone_allocator.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/multiboot.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/process/prio.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/process/process.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/process/scheduler.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/process/wait.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/proc_access.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/errno.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/ipc.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/module.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/reboot.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/types.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/sys/utsname.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/system/panic.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/system/printk.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/system/signal.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/system/syscall.h
|
||||
${PROJECT_SOURCE_DIR}/mentos/inc/version.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/boot.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/descriptor_tables/gdt.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/descriptor_tables/idt.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/descriptor_tables/isr.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/descriptor_tables/tss.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/devices/fpu.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/devices/pci.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/ata/ata.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/ata/ata_types.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/fdc.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/keyboard/keyboard.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/keyboard/keymap.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/mouse.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/ps2.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/drivers/rtc.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/elf/elf.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/fs/ext2.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/fs/ioctl.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/fs/procfs.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/fs/vfs.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/fs/vfs_types.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/hardware/cpuid.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/hardware/pic8259.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/hardware/timer.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/proc_modules.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/vga/vga.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/vga/vga_font.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/vga/vga_mode.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/vga/vga_palette.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/io/video.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/kernel.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/compiler.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/hashmap.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/irqflags.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/list.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/list_head.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/mutex.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/ndtree.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/rbtree.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/spinlock.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/stack_helper.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/klib/stdatomic.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/link_access.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/buddysystem.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/gfp.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/kheap.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/paging.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/slab.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/vmem_map.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/mem/zone_allocator.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/multiboot.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/process/prio.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/process/process.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/process/scheduler.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/process/wait.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/proc_access.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/errno.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/ipc.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/module.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/reboot.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/types.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/sys/utsname.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/system/panic.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/system/printk.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/system/signal.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/system/syscall.h
|
||||
${CMAKE_SOURCE_DIR}/mentos/inc/version.h
|
||||
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/boot.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/exception.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/idt.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/tss.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/devices/fpu.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/devices/pci.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/ata.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/fdc.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/keyboard/keyboard.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/keyboard/keymap.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/mouse.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/ps2.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/drivers/rtc.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/elf/elf.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/ext2.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/ioctl.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/namei.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/open.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/procfs.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/readdir.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/read_write.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/stat.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/fs/vfs.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/hardware/cpuid.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/hardware/pic8259.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/hardware/timer.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/debug.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/mm_io.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/proc_running.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/proc_system.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/proc_video.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/stdio.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/vga/vga.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/io/video.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/ipc/msg.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/ipc/sem.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/ipc/shm.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/kernel/sys.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/kernel.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/assert.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/ctype.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/fcvt.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/hashmap.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/libgen.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/list.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/math.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/mutex.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/ndtree.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/rbtree.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/spinlock.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/strerror.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/string.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/time.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/vscanf.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/klib/vsprintf.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/buddysystem.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/kheap.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/paging.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/slab.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/vmem_map.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/mem/zone_allocator.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/multiboot.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/process/process.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/process/scheduler.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/process/scheduler_algorithm.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/process/wait.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/sys/module.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/sys/utsname.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/system/errno.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/system/panic.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/system/printk.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/system/signal.c
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/system/syscall.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/boot.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/exception.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/idt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/tss.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/devices/fpu.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/devices/pci.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/ata.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/fdc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/keyboard/keyboard.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/keyboard/keymap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/mouse.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/ps2.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/rtc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/elf/elf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/ext2.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/ioctl.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/namei.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/open.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/procfs.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/readdir.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/read_write.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/stat.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/vfs.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/cpuid.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/pic8259.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/timer.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/debug.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/mm_io.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_running.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_system.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_video.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/stdio.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/vga/vga.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/video.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/msg.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/sem.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/shm.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/kernel/sys.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/kernel.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/assert.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/ctype.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/fcvt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/hashmap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/libgen.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/list.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/math.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/mutex.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/ndtree.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/rbtree.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/spinlock.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/strerror.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/string.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/time.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/vscanf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/vsprintf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/buddysystem.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/kheap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/paging.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/slab.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/vmem_map.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/zone_allocator.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/multiboot.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/process.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/scheduler.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/scheduler_algorithm.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/wait.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/sys/module.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/sys/utsname.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/errno.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/panic.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/printk.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/signal.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/syscall.c
|
||||
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/boot.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/exception.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/idt.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/descriptor_tables/tss.S
|
||||
${PROJECT_SOURCE_DIR}/mentos/src/process/user.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/boot.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/exception.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/idt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/tss.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/user.S
|
||||
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/array.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/assert.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/bits/ioctls.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/bits/stat.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/bits/termios-struct.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ctype.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/fcntl.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/fcvt.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/grp.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/io/ansi_colors.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/io/debug.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/io/mm_io.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/io/port_io.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ipc/ipc.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ipc/msg.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ipc/sem.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ipc/shm.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/libgen.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/limits.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/math.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/pwd.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/ring_buffer.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sched.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/signal.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stdarg.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stdbool.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stddef.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stdint.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stdio.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/stdlib.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/strerror.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/string.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/bitops.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/dirent.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/errno.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/ioctl.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/kernel_levels.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/reboot.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/stat.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/types.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/unistd.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/utsname.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/sys/wait.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/system/syscall_types.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/termios.h
|
||||
${PROJECT_SOURCE_DIR}/libc/inc/time.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/array.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/assert.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/bits/ioctls.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/bits/stat.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/bits/termios-struct.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ctype.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/fcntl.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/fcvt.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/grp.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/io/ansi_colors.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/io/debug.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/io/mm_io.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/io/port_io.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ipc/ipc.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ipc/msg.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ipc/sem.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ipc/shm.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/libgen.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/limits.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/math.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/pwd.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/ring_buffer.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sched.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/signal.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stdarg.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stdbool.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stddef.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stdint.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stdio.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/stdlib.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/strerror.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/string.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/bitops.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/dirent.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/errno.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/ioctl.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/kernel_levels.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/reboot.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/stat.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/types.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/unistd.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/utsname.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/sys/wait.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/system/syscall_types.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/termios.h
|
||||
${CMAKE_SOURCE_DIR}/libc/inc/time.h
|
||||
|
||||
${PROJECT_SOURCE_DIR}/libc/src/abort.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/assert.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/ctype.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/fcvt.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/grp.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/io/debug.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/io/mm_io.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/ipc/ipc.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/libc_start.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/libgen.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/math.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/pwd.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/sched.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/setenv.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/stdio.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/stdlib.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/strerror.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/string.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/sys/errno.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/sys/ioctl.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/sys/unistd.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/sys/utsname.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/termios.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/time.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/chdir.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/close.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/creat.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/exec.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/exit.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/fork.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getcwd.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getdents.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getgid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getpgid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getpid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getppid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getsid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/getuid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/interval.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/kill.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/lseek.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/mkdir.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/nice.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/open.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/read.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/reboot.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/rmdir.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/setgid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/setpgid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/setsid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/setuid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/signal.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/stat.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/unlink.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/waitpid.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/unistd/write.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/vscanf.c
|
||||
${PROJECT_SOURCE_DIR}/libc/src/vsprintf.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/abort.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/assert.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/ctype.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/fcvt.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/grp.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/io/debug.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/io/mm_io.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/ipc/ipc.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/libc_start.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/libgen.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/math.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/pwd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sched.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/setenv.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/stdio.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/stdlib.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/strerror.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/string.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/errno.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/ioctl.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/unistd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/utsname.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/termios.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/time.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/chdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/close.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/creat.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/exec.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/exit.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/fork.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getcwd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getdents.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getpgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getpid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getppid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getsid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getuid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/interval.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/kill.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/lseek.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/mkdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/nice.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/open.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/read.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/reboot.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/rmdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setpgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setsid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setuid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/signal.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/stat.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/unlink.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/waitpid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/write.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/vscanf.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/vsprintf.c
|
||||
|
||||
${PROJECT_SOURCE_DIR}/libc/src/crt0.S
|
||||
${CMAKE_SOURCE_DIR}/libc/src/crt0.S
|
||||
)
|
||||
endif (DOXYGEN_FOUND)
|
||||
+67
-138
@@ -1,148 +1,77 @@
|
||||
# =============================================================================
|
||||
# Author: Enrico Fraccaroli
|
||||
# LIBRARY
|
||||
# =============================================================================
|
||||
|
||||
# Set the minimum required version of cmake.
|
||||
cmake_minimum_required(VERSION 3.1...3.22)
|
||||
|
||||
# Initialize the project.
|
||||
project(libc C ASM)
|
||||
|
||||
# =============================================================================
|
||||
# ASSEMBLY
|
||||
# =============================================================================
|
||||
|
||||
# Enable the assembly language.
|
||||
enable_language(ASM)
|
||||
# Find the NASM compiler.
|
||||
find_program(ASM_COMPILER NAMES nasm HINTS /usr/bin/ /usr/local/bin/)
|
||||
# Mark the variable ASM_COMPILER as advanced.
|
||||
mark_as_advanced(ASM_COMPILER)
|
||||
# Check that we have found the compiler.
|
||||
if(NOT ASM_COMPILER)
|
||||
message(FATAL_ERROR "ASM compiler not found!")
|
||||
endif(NOT ASM_COMPILER)
|
||||
# Set the asm compiler.
|
||||
set(CMAKE_ASM_COMPILER ${ASM_COMPILER})
|
||||
# Set the assembly compiler flags.
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O0 -F dwarf -o <OBJECT> <SOURCE>")
|
||||
else()
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O3 -o <OBJECT> <SOURCE>")
|
||||
endif()
|
||||
|
||||
# =============================================================================
|
||||
# C WARNINGs
|
||||
# =============================================================================
|
||||
|
||||
# Warning flags.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
# Disable some specific warnings.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces")
|
||||
|
||||
# Set the compiler options.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdlib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-pic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcommon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
# =============================================================================
|
||||
# Add the library.
|
||||
add_library(
|
||||
${PROJECT_NAME}
|
||||
|
||||
${PROJECT_SOURCE_DIR}/src/stdio.c
|
||||
${PROJECT_SOURCE_DIR}/src/ctype.c
|
||||
${PROJECT_SOURCE_DIR}/src/string.c
|
||||
${PROJECT_SOURCE_DIR}/src/stdlib.c
|
||||
${PROJECT_SOURCE_DIR}/src/math.c
|
||||
${PROJECT_SOURCE_DIR}/src/fcvt.c
|
||||
${PROJECT_SOURCE_DIR}/src/time.c
|
||||
${PROJECT_SOURCE_DIR}/src/strerror.c
|
||||
${PROJECT_SOURCE_DIR}/src/termios.c
|
||||
${PROJECT_SOURCE_DIR}/src/libgen.c
|
||||
${PROJECT_SOURCE_DIR}/src/vsprintf.c
|
||||
${PROJECT_SOURCE_DIR}/src/vscanf.c
|
||||
${PROJECT_SOURCE_DIR}/src/pwd.c
|
||||
${PROJECT_SOURCE_DIR}/src/grp.c
|
||||
${PROJECT_SOURCE_DIR}/src/sched.c
|
||||
${PROJECT_SOURCE_DIR}/src/readline.c
|
||||
${PROJECT_SOURCE_DIR}/src/setenv.c
|
||||
${PROJECT_SOURCE_DIR}/src/assert.c
|
||||
${PROJECT_SOURCE_DIR}/src/abort.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/mm_io.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/debug.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/ipc.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/unistd.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/errno.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/utsname.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/mman.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/ioctl.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/creat.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getppid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getpid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/exit.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/setsid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getsid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/setpgid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getpgid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/setgid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getgid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/setuid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getuid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/fork.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/read.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/write.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/exec.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/nice.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/open.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/reboot.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/waitpid.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/chdir.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getcwd.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/close.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/stat.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/rmdir.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/mkdir.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/unlink.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/getdents.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/lseek.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/kill.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/signal.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/interval.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/symlink.c
|
||||
${PROJECT_SOURCE_DIR}/src/unistd/readlink.c
|
||||
${PROJECT_SOURCE_DIR}/src/libc_start.c
|
||||
${PROJECT_SOURCE_DIR}/src/crt0.S
|
||||
libc
|
||||
${CMAKE_SOURCE_DIR}/libc/src/stdio.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/ctype.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/string.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/stdlib.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/math.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/fcvt.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/time.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/strerror.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/termios.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/libgen.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/vsprintf.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/vscanf.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/pwd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/grp.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sched.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/readline.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/setenv.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/assert.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/abort.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/io/mm_io.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/io/debug.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/ipc.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/unistd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/errno.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/utsname.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/mman.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/sys/ioctl.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/creat.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getppid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getpid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/exit.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setsid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getsid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setpgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getpgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getgid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/setuid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getuid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/fork.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/read.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/write.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/exec.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/nice.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/open.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/reboot.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/waitpid.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/chdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getcwd.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/close.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/stat.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/rmdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/mkdir.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/unlink.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/getdents.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/lseek.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/kill.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/signal.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/interval.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/symlink.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/unistd/readlink.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/libc_start.c
|
||||
${CMAKE_SOURCE_DIR}/libc/src/crt0.S
|
||||
)
|
||||
|
||||
# Add the includes.
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC inc)
|
||||
target_include_directories(libc PUBLIC inc)
|
||||
|
||||
# Remove the 'lib' prefix.
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
|
||||
set_target_properties(libc PROPERTIES PREFIX "")
|
||||
|
||||
+87
-156
@@ -1,19 +1,11 @@
|
||||
# =============================================================================
|
||||
# Author: Enrico Fraccaroli
|
||||
# KERNEL COMPILATION SETUP
|
||||
# =============================================================================
|
||||
|
||||
# Set the minimum required version of cmake.
|
||||
cmake_minimum_required(VERSION 3.1...3.22)
|
||||
|
||||
# Initialize the project.
|
||||
project(kernel C ASM)
|
||||
|
||||
# =============================================================================
|
||||
# Set the main file names.
|
||||
# Set the target naming.
|
||||
set(KERNEL_NAME kernel)
|
||||
set(BOOTLOADER_NAME bootloader)
|
||||
set(BUDDY_SYSTEM_NAME kernel_memory)
|
||||
set(BUDDY_SYSTEM_FILE ${PROJECT_SOURCE_DIR}/src/mem/libbuddysystem.a)
|
||||
set(BUDDY_SYSTEM_FILE ${CMAKE_SOURCE_DIR}/mentos/src/mem/libbuddysystem.a)
|
||||
|
||||
# =============================================================================
|
||||
# OPTIONS
|
||||
@@ -28,157 +20,96 @@ option(ENABLE_ALLOC_TRACE "Enables memory allocation tracing." OFF)
|
||||
# Enables scheduling feedback on terminal.
|
||||
option(ENABLE_SCHEDULER_FEEDBACK "Enables scheduling feedback on terminal." OFF)
|
||||
|
||||
# =============================================================================
|
||||
# ASSEMBLY
|
||||
# =============================================================================
|
||||
|
||||
# Find the NASM compiler.
|
||||
find_program(ASM_COMPILER NAMES nasm HINTS /usr/bin/ /usr/local/bin/)
|
||||
# Mark the variable ASM_COMPILER as advanced.
|
||||
mark_as_advanced(ASM_COMPILER)
|
||||
# Check that we have found the compiler.
|
||||
if(NOT ASM_COMPILER)
|
||||
message(FATAL_ERROR "ASM compiler not found!")
|
||||
endif(NOT ASM_COMPILER)
|
||||
# Set the asm compiler.
|
||||
set(CMAKE_ASM_COMPILER ${ASM_COMPILER})
|
||||
# Set the assembly compiler flags.
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O0 -F dwarf -o <OBJECT> <SOURCE>")
|
||||
else()
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -f elf -g -O3 -o <OBJECT> <SOURCE>")
|
||||
endif()
|
||||
|
||||
# =============================================================================
|
||||
# C WARNINGs
|
||||
# =============================================================================
|
||||
|
||||
# Warning flags.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
# Disable some specific warnings.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces")
|
||||
|
||||
# Set the compiler options.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdlib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-pic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcommon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
# =============================================================================
|
||||
# SOURCES
|
||||
# =============================================================================
|
||||
|
||||
# Define the list of files.
|
||||
set(KERNEL_SOURCES
|
||||
${PROJECT_SOURCE_DIR}/src/kernel.c
|
||||
${PROJECT_SOURCE_DIR}/src/multiboot.c
|
||||
${PROJECT_SOURCE_DIR}/src/devices/pci.c
|
||||
${PROJECT_SOURCE_DIR}/src/devices/fpu.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/ata.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/rtc.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/fdc.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/mouse.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/ps2.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/keyboard/keyboard.c
|
||||
${PROJECT_SOURCE_DIR}/src/drivers/keyboard/keymap.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/vfs.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/read_write.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/open.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/stat.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/readdir.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/procfs.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/ioctl.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/namei.c
|
||||
${PROJECT_SOURCE_DIR}/src/fs/ext2.c
|
||||
${PROJECT_SOURCE_DIR}/src/hardware/timer.c
|
||||
${PROJECT_SOURCE_DIR}/src/hardware/cpuid.c
|
||||
${PROJECT_SOURCE_DIR}/src/hardware/pic8259.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/debug.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/mm_io.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/video.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/stdio.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/proc_video.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/proc_running.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/proc_feedback.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/proc_system.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/proc_ipc.c
|
||||
${PROJECT_SOURCE_DIR}/src/io/vga/vga.c
|
||||
${PROJECT_SOURCE_DIR}/src/ipc/ipc.c
|
||||
${PROJECT_SOURCE_DIR}/src/ipc/msg.c
|
||||
${PROJECT_SOURCE_DIR}/src/ipc/sem.c
|
||||
${PROJECT_SOURCE_DIR}/src/ipc/shm.c
|
||||
${PROJECT_SOURCE_DIR}/src/kernel/sys.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/assert.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/ctype.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/mutex.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/string.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/vsprintf.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/vscanf.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/time.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/libgen.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/strerror.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/math.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/fcvt.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/spinlock.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/stdlib.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/rbtree.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/ndtree.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/hashmap.c
|
||||
${PROJECT_SOURCE_DIR}/src/klib/list.c
|
||||
${PROJECT_SOURCE_DIR}/src/mem/kheap.c
|
||||
${PROJECT_SOURCE_DIR}/src/mem/paging.c
|
||||
${PROJECT_SOURCE_DIR}/src/mem/slab.c
|
||||
${PROJECT_SOURCE_DIR}/src/mem/vmem_map.c
|
||||
${PROJECT_SOURCE_DIR}/src/mem/zone_allocator.c
|
||||
${PROJECT_SOURCE_DIR}/src/elf/elf.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/gdt.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/gdt.S
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/interrupt.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/exception.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/interrupt.S
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/exception.S
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/idt.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/idt.S
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/tss.c
|
||||
${PROJECT_SOURCE_DIR}/src/descriptor_tables/tss.S
|
||||
${PROJECT_SOURCE_DIR}/src/process/scheduler_algorithm.c
|
||||
${PROJECT_SOURCE_DIR}/src/process/scheduler_feedback.c
|
||||
${PROJECT_SOURCE_DIR}/src/process/scheduler.c
|
||||
${PROJECT_SOURCE_DIR}/src/process/process.c
|
||||
${PROJECT_SOURCE_DIR}/src/process/wait.c
|
||||
${PROJECT_SOURCE_DIR}/src/process/user.S
|
||||
${PROJECT_SOURCE_DIR}/src/sys/utsname.c
|
||||
${PROJECT_SOURCE_DIR}/src/sys/module.c
|
||||
${PROJECT_SOURCE_DIR}/src/system/errno.c
|
||||
${PROJECT_SOURCE_DIR}/src/system/panic.c
|
||||
${PROJECT_SOURCE_DIR}/src/system/printk.c
|
||||
${PROJECT_SOURCE_DIR}/src/system/signal.c
|
||||
${PROJECT_SOURCE_DIR}/src/system/syscall.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/kernel.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/multiboot.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/devices/pci.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/devices/fpu.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/ata.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/rtc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/fdc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/mouse.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/ps2.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/keyboard/keyboard.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/drivers/keyboard/keymap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/vfs.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/read_write.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/open.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/stat.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/readdir.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/procfs.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/ioctl.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/namei.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/fs/ext2.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/timer.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/cpuid.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/hardware/pic8259.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/debug.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/mm_io.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/video.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/stdio.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_video.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_running.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_feedback.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_system.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/proc_ipc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/io/vga/vga.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/ipc.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/msg.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/sem.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/ipc/shm.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/kernel/sys.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/assert.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/ctype.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/mutex.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/string.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/vsprintf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/vscanf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/time.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/libgen.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/strerror.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/math.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/fcvt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/spinlock.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/stdlib.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/rbtree.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/ndtree.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/hashmap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/klib/list.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/kheap.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/paging.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/slab.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/vmem_map.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/mem/zone_allocator.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/elf/elf.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/gdt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/exception.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/interrupt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/exception.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/idt.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/idt.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/tss.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/descriptor_tables/tss.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/scheduler_algorithm.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/scheduler_feedback.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/scheduler.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/process.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/wait.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/process/user.S
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/sys/utsname.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/sys/module.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/errno.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/panic.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/printk.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/signal.c
|
||||
${CMAKE_SOURCE_DIR}/mentos/src/system/syscall.c
|
||||
)
|
||||
|
||||
# =============================================================================
|
||||
|
||||
+5
-59
@@ -1,61 +1,4 @@
|
||||
# =============================================================================
|
||||
# Author: Enrico Fraccaroli
|
||||
# =============================================================================
|
||||
|
||||
# Set the minimum required version of cmake.
|
||||
cmake_minimum_required(VERSION 3.1...3.22)
|
||||
|
||||
# Initialize the project.
|
||||
project(programs C)
|
||||
|
||||
# =============================================================================
|
||||
# C WARNINGs
|
||||
# =============================================================================
|
||||
|
||||
# We need to specify the name of the entry function.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -u_start")
|
||||
|
||||
# Warning flags.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
# Disable some specific warnings.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
|
||||
|
||||
# Set the compiler options.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdlib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-pic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcommon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
# =============================================================================
|
||||
# BUILD
|
||||
# =============================================================================
|
||||
# Add the executables (manually).
|
||||
# List of programs.
|
||||
set(PROGRAM_LIST
|
||||
nice.c
|
||||
ls.c
|
||||
@@ -86,13 +29,16 @@ set(PROGRAM_LIST
|
||||
pwd.c
|
||||
env.c
|
||||
)
|
||||
|
||||
# Set the directory where the compiled binaries will be placed.
|
||||
set(MENTOS_BIN_DIR ${CMAKE_SOURCE_DIR}/files/bin)
|
||||
|
||||
foreach(FILE_NAME ${PROGRAM_LIST})
|
||||
# =========================================================================
|
||||
# TARGET NAMING
|
||||
# =========================================================================
|
||||
# Prepare the program name.
|
||||
string(REPLACE ".c" "" EXECUTABLE_NAME ${FILE_NAME})
|
||||
|
||||
# Set the name of the target.
|
||||
set(TARGET_NAME prog_${EXECUTABLE_NAME})
|
||||
|
||||
|
||||
@@ -1,61 +1,4 @@
|
||||
# =============================================================================
|
||||
# Author: Enrico Fraccaroli
|
||||
# =============================================================================
|
||||
|
||||
# Set the minimum required version of cmake.
|
||||
cmake_minimum_required(VERSION 3.1...3.22)
|
||||
|
||||
# Initialize the project.
|
||||
project(tests C)
|
||||
|
||||
# =============================================================================
|
||||
# C WARNINGs
|
||||
# =============================================================================
|
||||
|
||||
# We need to specify the name of the entry function.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -u_start")
|
||||
|
||||
# Warning flags.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpedantic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
# Disable some specific warnings.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
|
||||
|
||||
# Set the compiler options.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdlib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-stack-protector")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-pic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcommon")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
# =============================================================================
|
||||
# BUILD
|
||||
# =============================================================================
|
||||
# Add your file in this list.
|
||||
# List of programs.
|
||||
set(TEST_LIST
|
||||
t_gid.c
|
||||
t_alarm.c
|
||||
@@ -88,13 +31,16 @@ set(TEST_LIST
|
||||
t_mem.c
|
||||
t_shm_read.c
|
||||
)
|
||||
|
||||
# Set the directory where the compiled binaries will be placed.
|
||||
set(MENTOS_TESTS_DIR ${CMAKE_SOURCE_DIR}/files/bin/tests)
|
||||
|
||||
foreach(FILE_NAME ${TEST_LIST})
|
||||
# =========================================================================
|
||||
# TARGET NAMING
|
||||
# =========================================================================
|
||||
# Prepare the program name.
|
||||
string(REPLACE ".c" "" EXECUTABLE_NAME ${FILE_NAME})
|
||||
|
||||
# Set the name of the target.
|
||||
set(TARGET_NAME test_${EXECUTABLE_NAME})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user