Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 1.44 KB | None | 0 0
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
  2.  
  3. # Disable stupid "compiler tests"
  4. SET(CMAKE_C_COMPILER_WORKS   1)
  5. SET(CMAKE_CXX_COMPILER_WORKS 1)
  6.  
  7. # Architecture options
  8. SET(SYMPHONIUM_ISA      "i386" CACHE STRING "Instruction Set Architecture")
  9. SET(SYMPHONIUM_PLATFORM "pc"   CACHE STRING "Platform")
  10.  
  11. SET(SYMPHONIUM_OPT_LEVEL "2" CACHE STRING "Optimization Level (0,1,2,3,fast,s ...)")
  12.  
  13. INCLUDE("src/kernel/arch/${SYMPHONIUM_ISA}/flags.cmake")
  14. INCLUDE("src/kernel/arch/${SYMPHONIUM_ISA}/${SYMPHONIUM_PLATFORM}/flags.cmake")
  15. INCLUDE("src/kernel/kernel.cmake")
  16. INCLUDE("src/libk/libk.cmake")
  17.  
  18. PROJECT(Symphonium C CXX)
  19.  
  20. # Target specific ASM language (e.g. ASM_NASM for i386)
  21. IF(SYMPHONIUM_ASM_LANG)
  22.     ENABLE_LANGUAGE(${SYMPHONIUM_ASM_LANG})
  23. ENDIF()
  24.  
  25. SET(CMAKE_USE_RELATIVE_PATHS ON)
  26.  
  27. # Set compiler flags
  28. # TODO: evaluate if this should be arch-specific.
  29. SET(COMPILE_FLAGS    "${COMPILE_FLAGS} -ffreestanding -O${SYMPHONIUM_OPT_LEVEL} -Wall -Wextra")
  30. SET(CMAKE_C_FLAGS    "${CMAKE_C_FLAGS}   ${COMPILE_FLAGS}")
  31. SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}")
  32.  
  33. MESSAGE(STATUS ${SYMPHONIUM_LD_SCRIPT})
  34.  
  35. SET(LINK_FLAGS              "-T ${SYMPHONIUM_LD_SCRIPT} -ffreestanding -O${SYMPHONIUM_OPT_LEVEL} -nostdlib -lgcc")
  36. SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${LINK_FLAGS}")
  37.  
  38. INCLUDE_DIRECTORIES(src/kernel)
  39. INCLUDE_DIRECTORIES(src/libk)
  40.  
  41. ADD_EXECUTABLE(symphonium ${KERNEL_SRC} ${LIBK_SRC} ${ISA_SRC} ${PLATFORM_SRC})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement