summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt21
-rw-r--r--libgcc/CMakeLists.txt9
2 files changed, 20 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d9e5643..7cd67be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@
# which include farther subprojects source codes
# Expected input variables:
-# ObjectiveProject_ARCHITECTURE: type of architecture
+# ObjectiveProject_ARCHITECTURE: type of architecture
cmake_minimum_required(VERSION 3.25)
@@ -10,11 +10,16 @@ list(APPEND CMAKE_MESSAGE_CONTEXT ObjectiveProject)
project(ObjectiveProject LANGUAGES CXX ASM_NASM)
# Check on supported compiler
+message(CHECK_START "Checking compiler support")
+list(APPEND CMAKE_MESSAGE_INDENT " ")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
- message(STATUS "${CMAKE_CXX_COMPILER_ID} compiler is supported")
+ message(CHECK_PASS "Found")
+ message(STATUS "${CMAKE_CXX_COMPILER_ID} found compiler")
else()
- message(FATAL_ERROR "${CMAKE_CXX_COMPILER_ID} compiler isn't supported")
+ message(CHECK_PASS "Not Found")
+ message(STATUS "${CMAKE_CXX_COMPILER_ID} compiler isn't supported")
endif()
+list(POP_BACK CMAKE_MESSAGE_INDENT)
set(ObjectiveProject_CXX_FLAGS
$<$<CONFIG:Debug>:-Wall -Wextra -ggdb -g3 -O0>
@@ -44,17 +49,21 @@ set(CMAKE_CXX_EXTENSIONS OFF)
add_executable(Objective)
# Set architecture by default if not present
+message(CHECK_START "Checking architecture support")
+list(APPEND CMAKE_MESSAGE_INDENT " ")
if(NOT ObjectiveProject_ARCHITECTURE IN_LIST OBJECTIVE_SUPPORTED_PROCESSORS)
if(ObjectiveProject_ARCHITECTURE STREQUAL "" OR NOT DEFINED ObjectiveProject_ARCHITECTURE)
+ message(CHECK_FAIL "not set")
message(FATAL_ERROR "Architecture isn't set")
else()
+ message(CHECK_FAIL "unknown")
message(FATAL_ERROR "${ObjectiveProject_ARCHITECTURE} - unknown architecture")
endif()
- list(GET OBJECTIVE_SUPPORTED_PROCESSORS 0 ObjectiveProject_ARCHITECTURE)
- message(STATUS "Set up architecture by default - ${ObjectiveProject_ARCHITECTURE}")
else()
- message(STATUS "${ObjectiveProject_ARCHITECTURE} - choosed architecture")
+ message(CHECK_FAIL "ok")
+ message(STATUS "${ObjectiveProject_ARCHITECTURE} - chosen architecture")
endif()
+list(POP_BACK CMAKE_MESSAGE_INDENT)
# Create targets with compilers requirements (include directories, flags and etc)
add_library(CXX_COMPILER_REQUIREMENTS INTERFACE)
diff --git a/libgcc/CMakeLists.txt b/libgcc/CMakeLists.txt
index 6fd97b6..d32ba04 100644
--- a/libgcc/CMakeLists.txt
+++ b/libgcc/CMakeLists.txt
@@ -1,7 +1,8 @@
list(APPEND CMAKE_MESSAGE_CONTEXT libgcc)
-message(STATUS "Searching CRT objects")
macro(setup_crt_object_file object_file target_name)
+ message(CHECK_START "Searching ${object_file} object")
+ list(APPEND CMAKE_MESSAGE_INDENT " ")
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} --print-file-name=${object_file}
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -11,20 +12,20 @@ macro(setup_crt_object_file object_file target_name)
)
if(RESULT)
+ message(CHECK_FAIL "internal error")
message(FATAL_ERROR ${ERROR_MESSAGE})
endif()
- message(STATUS "${object_file} was found at the ${PATH} path")
+ message(CHECK_PASS "found")
add_library(${target_name} OBJECT IMPORTED GLOBAL)
set_target_properties(${target_name} PROPERTIES
IMPORTED_OBJECTS ${PATH}
)
-
+ list(POP_BACK CMAKE_MESSAGE_INDENT)
endmacro()
# TODO: set platform specific CRT objects
setup_crt_object_file(crtbegin.o CRTBEGIN)
setup_crt_object_file(crtend.o CRTEND)
-message(STATUS "The CRT objects were found")
add_subdirectory(${ObjectiveProject_ARCHITECTURE})