25 lines
936 B
CMake
25 lines
936 B
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(termOSuserspace LANGUAGES C ASM_NASM)
|
|
|
|
set(CMAKE_C_STANDARD 23)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
set(CMAKE_C_EXTENSIONS OFF)
|
|
|
|
message(STATUS "Building termOS's userspace")
|
|
|
|
set(TERMOS_OBJCOPY objcopy)
|
|
if(APPLE)
|
|
find_program(TERMOS_LD_LLD NAMES ld.lld HINTS /usr/local/bin /opt/homebrew/bin REQUIRED)
|
|
find_program(TERMOS_OBJCOPY NAMES llvm-objcopy objcopy HINTS /usr/local/opt/llvm/bin /opt/homebrew/opt/llvm/bin REQUIRED)
|
|
set(CMAKE_C_LINK_FLAGS "")
|
|
set(CMAKE_ASM_NASM_COMPILE_OBJECT
|
|
"<CMAKE_ASM_NASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -MD <DEP_FILE> -MT <DEP_TARGET> -f elf64 -o <OBJECT> <SOURCE>")
|
|
set(CMAKE_C_LINK_EXECUTABLE
|
|
"${TERMOS_LD_LLD} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
|
endif()
|
|
|
|
add_subdirectory(libterm)
|
|
add_subdirectory(init)
|
|
add_subdirectory(rust)
|
|
add_subdirectory(debug)
|
|
add_subdirectory(termosh) |