libmetal: cmake: support machine less build

libmetal can be build without any machine support. It is possible that
vendors implement machine specific interfaces outside of libmetal and
link it with demos during build time. Hence, remove requirement to have
MACHINE and PROJECT_MACHINE variables from the build system. If vendor
prefer to choose 'template' machine, they can pass such option during
cmake configuration.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
This commit is contained in:
Tanmay Shah
2025-11-19 09:51:35 -08:00
committed by Arnaud Pouliquen
parent 9196a664c4
commit 90d19dc759
7 changed files with 38 additions and 34 deletions

View File

@@ -32,14 +32,6 @@ message ("-- Host: ${_host}")
set (_target "${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}")
message ("-- Target: ${_target}")
if (NOT DEFINED MACHINE)
set (MACHINE "Generic")
endif (NOT DEFINED MACHINE)
message ("-- Machine: ${MACHINE}")
# handle if '-' in machine name
string (REPLACE "-" "_" MACHINE ${MACHINE})
if (NOT DEFINED PROJECT_SYSTEM)
string (TOLOWER ${CMAKE_SYSTEM_NAME} PROJECT_SYSTEM)
string (TOUPPER ${CMAKE_SYSTEM_NAME} PROJECT_SYSTEM_UPPER)
@@ -50,8 +42,14 @@ if("${PROJECT_PROCESSOR}" STREQUAL "arm64")
set (PROJECT_PROCESSOR "aarch64")
endif()
string (TOUPPER ${PROJECT_PROCESSOR} PROJECT_PROCESSOR_UPPER)
if (DEFINED MACHINE)
# handle if '-' in machine name
string (REPLACE "-" "_" MACHINE ${MACHINE})
message ("-- Machine: ${MACHINE}")
string (TOLOWER ${MACHINE} PROJECT_MACHINE)
string (TOUPPER ${MACHINE} PROJECT_MACHINE_UPPER)
endif (DEFINED MACHINE)
option (WITH_STATIC_LIB "Build with a static library" ON)

View File

@@ -15,8 +15,8 @@ collect (PROJECT_LIB_SOURCES irq.c)
collect (PROJECT_LIB_SOURCES shmem.c)
collect (PROJECT_LIB_SOURCES time.c)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_VENDOR})
add_subdirectory(${PROJECT_VENDOR})
elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_VENDOR})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)

View File

@@ -15,8 +15,8 @@ collect (PROJECT_LIB_SOURCES irq.c)
collect (PROJECT_LIB_SOURCES shmem.c)
collect (PROJECT_LIB_SOURCES time.c)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_VENDOR})
add_subdirectory(${PROJECT_VENDOR})
elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_VENDOR})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)

View File

@@ -8,7 +8,8 @@ collect (PROJECT_LIB_TESTS sleep.c)
collect (PROJECT_LIB_API_TEST threads.c)
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)

View File

@@ -7,7 +7,9 @@ collect (PROJECT_LIB_TESTS threads.c)
collect (PROJECT_LIB_TEST_ALL threads.c)
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)

View File

@@ -10,7 +10,8 @@ collect (PROJECT_LIB_TESTS irq.c)
collect (PROJECT_LIB_API_TEST threads.c)
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)

View File

@@ -6,7 +6,9 @@ collect (PROJECT_LIB_TESTS threads.c)
collect (PROJECT_LIB_API_TEST threads.c)
if (DEFINED PROJECT_MACHINE)
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
add_subdirectory(${PROJECT_MACHINE})
endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACHINE})
endif (DEFINED PROJECT_MACHINE)