From 2d447773b8d9bdddb9045d19d98b9561beeb47fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Wed, 14 Mar 2018 21:44:41 +0100 Subject: [PATCH] CMake fully integrated. --- .gitignore | 1 + CMakeLists.txt | 23 ++++++++++++----------- build/.keep | 0 toolchains/i686-elf.cmake | 12 +++++++----- 4 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 build/.keep diff --git a/.gitignore b/.gitignore index 85903ed..76c0a13 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ # ignore binary files build/* +!build/.keep diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f1efbb..bc0d696 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,8 +15,7 @@ # along with this program. If not, see . cmake_minimum_required(VERSION 2.8) -project(colonel) -enable_language(ASM_NASM) +project(colonel C ASM) set(TARGET_NAME "colonel.bin") @@ -28,9 +27,11 @@ string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") # flags -set(CMAKE_C_FLAGS "-std=c99 -ffreestanding -fno-builtin -nostdlibinc -Wall -Wextra") +set(CMAKE_C_FLAGS "-std=c99 -ffreestanding -fno-builtin -Wall -Wextra") set(CMAKE_C_FLAGS_DEBUG "-g -O0") set(CMAKE_C_FLAGS_RELEASE "-O3") +set(CMAKE_ASM_FLAGS "") +set(CMAKE_ASM_FLAGS_RELEASE "") include_directories( "src/") @@ -45,14 +46,14 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86") src/kernel/arch/x86/boot.s ${SRCS} src/kernel/arch/x86/tty.c) - set(CMAKE_EXE_LINKER_FLAGS "-T src/kernel/arch/x86/linker.ld") -endif() - -if(NOT CMAKE_BUILD_TYPE STREQUAL "debug" AND - NOT CMAKE_BUILD_TYPE STREQUAL "relwithdebinfo") - add_definitions("-DNDEBUG") -else() - add_definitions("-DDEBUG") + set_source_files_properties( + src/kernel/arch/x86/boot.s + PROPERTIES COMPILE_FLAGS "" + ) + set(CMAKE_EXE_LINKER_FLAGS + "-T ${CMAKE_CURRENT_SOURCE_DIR}/src/kernel/arch/x86/linker.ld -ffreestanding -nostdlib") + include_directories( + "src/kernel/arch/x86/") endif() add_executable(${TARGET_NAME} ${SRCS}) diff --git a/build/.keep b/build/.keep new file mode 100644 index 0000000..e69de29 diff --git a/toolchains/i686-elf.cmake b/toolchains/i686-elf.cmake index 008eeb5..1ebe19c 100644 --- a/toolchains/i686-elf.cmake +++ b/toolchains/i686-elf.cmake @@ -1,6 +1,8 @@ -set(CMAKE_SYSTEM_NAME "Generic") -set(CMAKE_SYSTEM_PROCESSOR "i686") -set(triple "i686-elf") +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_PROCESSOR i686) -set(CMAKE_C_COMPILER clang) -set(CMAKE_C_COMPILER_TARGET ${triple}) +set(CMAKE_C_COMPILER i686-elf-gcc) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_CXX_COMPILER i686-elf-g++) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_ASM_COMPILER i686-elf-as)