os3/CMakeToolchain.txt
John Stefanelli 7a1f072e4a
[Stage1] Add RSDP and basic ACPI parsing
[Stage1] Add HEX display to screen.h
[Stage1] Handle IRQ1 semi-gracefully
[Stage1] Try (unsuccessfully) to "wait" for IRQ 1 (os_interrupt_wait())
2023-06-05 13:13:37 +02:00

34 lines
1.3 KiB
Text

# Tag as cross-compiler for no specific system
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR i686)
# Find compilers
set(CMAKE_C_COMPILER i686-elf-gcc)
set(CMAKE_CXX_COMPILER i686-elf-g++)
set(CMAKE_ASM_COMPILER nasm)
set(CMAKE_C_LINK_EXECUTABLE "i686-elf-ld <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
set(CMAKE_CXX_LINK_EXECUTABLE "i686-elf-ld <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
set(CMAKE_ASM_NASM_LINK_EXECUTABLE "i686-elf-ld <CMAKE_ASM_NASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
# Set language flags
set(CMAKE_C_FLAGS "-Wall -mtune=i386 -gdwarf -m32 -Os")
set(CMAKE_CXX_FLAGS "-Wall -nostdlib")
set(CMAKE_ASM_FLAGS "-felf32 -F dwarf -g")
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf32)
set(CMAKE_STATIC_LINKER_FLAGS "")
set(CMAKE_EXE_LINKER_FLAGS "-m elf_i386 --nmagic -nostdlib")
set(OS3_OBJDUMP_EXE i686-elf-objdump)
set(OS3_OBJCOPY_EXE i686-elf-objcopy)
# Locate i686 sysroot?
set(CMAKE_FIND_ROOT_PATH $ENV{I686_CROSS_ROOT})
# adjust the default behavior of the FIND_XXX() commands:
# search programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# search headers and libraries in the target environment
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)