2022-11-13 10:09:09 +01:00
|
|
|
cmake_minimum_required(VERSION 3.8..3.22)
|
|
|
|
|
|
|
|
set(CMAKE_C_COMPILER_WORKS 1)
|
|
|
|
set(CMAKE_CXX_COMPILER_WORKS 1)
|
|
|
|
|
|
|
|
set(CMAKE_CROSSCOMPILING true)
|
|
|
|
|
2023-09-20 20:56:59 +02:00
|
|
|
project(Luna LANGUAGES C CXX ASM ASM_NASM VERSION 0.6.0)
|
|
|
|
set(LUNA_RELEASE_NAME "Andromeda")
|
2022-11-13 10:09:09 +01:00
|
|
|
|
|
|
|
set(LUNA_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
2023-01-06 13:31:14 +01:00
|
|
|
set(LUNA_BASE ${CMAKE_CURRENT_LIST_DIR}/base)
|
2022-11-13 10:09:09 +01:00
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
set(LUNA_ARCH $ENV{LUNA_ARCH})
|
2022-11-19 17:46:53 +01:00
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
if(NOT DEFINED LUNA_ARCH)
|
|
|
|
set(LUNA_ARCH "x86_64")
|
2022-12-05 16:36:41 +01:00
|
|
|
endif()
|
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
set(CMAKE_C_COMPILER ${LUNA_ARCH}-luna-gcc)
|
|
|
|
set(CMAKE_CXX_COMPILER ${LUNA_ARCH}-luna-g++)
|
|
|
|
set(CMAKE_ASM_COMPILER ${LUNA_ARCH}-luna-gcc)
|
2022-12-30 11:48:18 +01:00
|
|
|
|
|
|
|
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
|
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
set(CMAKE_ASM_NASM_LINK_EXECUTABLE "${LUNA_ARCH}-luna-ld <FLAGS> <CMAKE_ASM_NASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
2022-12-30 11:48:18 +01:00
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
set(CMAKE_FIND_ROOT_PATH ${LUNA_ROOT}/toolchain/${LUNA_ARCH}-luna)
|
2022-12-30 11:48:18 +01:00
|
|
|
|
2023-01-21 22:44:16 +01:00
|
|
|
message(STATUS "Configuring Luna for ${LUNA_ARCH}")
|
2022-11-19 17:46:53 +01:00
|
|
|
|
2023-04-07 12:02:49 +02:00
|
|
|
set(COMMON_FLAGS -Wall -Wextra -Werror -Wvla
|
|
|
|
-Wdisabled-optimization -Wformat=2 -Winit-self
|
|
|
|
-Wmissing-include-dirs -Wswitch-default -Wcast-qual
|
|
|
|
-Wundef -Wcast-align -Wwrite-strings -Wlogical-op
|
2023-07-24 15:06:48 +02:00
|
|
|
-Wredundant-decls -Wshadow -Wconversion -Wbidi-chars=any
|
2023-04-07 12:02:49 +02:00
|
|
|
-fno-asynchronous-unwind-tables -fno-omit-frame-pointer
|
|
|
|
-std=c++20 -fno-rtti -fno-exceptions)
|
|
|
|
|
2023-04-07 12:07:08 +02:00
|
|
|
if(LUNA_NO_OPTIMIZATIONS)
|
|
|
|
set(COMMON_FLAGS ${COMMON_FLAGS} -ggdb)
|
|
|
|
else()
|
|
|
|
set(COMMON_FLAGS ${COMMON_FLAGS} -Os)
|
|
|
|
endif()
|
|
|
|
|
2023-02-27 15:19:18 +01:00
|
|
|
add_subdirectory(libluna)
|
2023-03-29 18:27:02 +02:00
|
|
|
add_subdirectory(libos)
|
2023-08-03 12:19:45 +02:00
|
|
|
add_subdirectory(libui)
|
2023-01-06 13:31:14 +01:00
|
|
|
add_subdirectory(libc)
|
2022-12-23 13:09:21 +01:00
|
|
|
add_subdirectory(kernel)
|
2023-01-06 13:31:14 +01:00
|
|
|
add_subdirectory(apps)
|
2023-04-23 21:52:28 +02:00
|
|
|
add_subdirectory(tests)
|
2023-07-21 20:44:01 +02:00
|
|
|
add_subdirectory(shell)
|
2023-08-03 12:20:59 +02:00
|
|
|
add_subdirectory(wind)
|
2023-09-14 22:51:19 +02:00
|
|
|
add_subdirectory(terminal)
|