forked from ROMEO/obsw
Removed CMake Files and Functions of the Vendor
This commit is contained in:
@ -8,8 +8,6 @@ project(romeo-obsw C CXX ASM)
|
|||||||
# Pre-Sources preparation
|
# Pre-Sources preparation
|
||||||
# ##############################################################################
|
# ##############################################################################
|
||||||
|
|
||||||
include(collect.cmake)
|
|
||||||
include(Findcommon.cmake)
|
|
||||||
|
|
||||||
# Specify the C++ standard
|
# Specify the C++ standard
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
|
219
Findcommon.cmake
219
Findcommon.cmake
@ -1,219 +0,0 @@
|
|||||||
# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
option(NON_YOCTO "Non Yocto embeddedsw FLOW" OFF)
|
|
||||||
set(CMAKE_POLICY_DEFAULT_CMP0140 OLD)
|
|
||||||
|
|
||||||
set (CMAKE_INSTALL_LIBDIR "lib")
|
|
||||||
function (collector_create name base)
|
|
||||||
set_property (GLOBAL PROPERTY "COLLECT_${name}_LIST")
|
|
||||||
set_property (GLOBAL PROPERTY "COLLECT_${name}_BASE" "${base}")
|
|
||||||
endfunction (collector_create)
|
|
||||||
|
|
||||||
function (collector_list var name)
|
|
||||||
get_property (_list GLOBAL PROPERTY "COLLECT_${name}_LIST")
|
|
||||||
set (${var} "${_list}" PARENT_SCOPE)
|
|
||||||
endfunction (collector_list)
|
|
||||||
|
|
||||||
function (collector_base var name)
|
|
||||||
get_property (_base GLOBAL PROPERTY "COLLECT_${name}_BASE")
|
|
||||||
set (${var} "${_base}" PARENT_SCOPE)
|
|
||||||
endfunction (collector_base)
|
|
||||||
|
|
||||||
function (collect name)
|
|
||||||
collector_base (_base ${name})
|
|
||||||
string(COMPARE NOTEQUAL "${_base}" "" _is_rel)
|
|
||||||
set (_list)
|
|
||||||
foreach (s IN LISTS ARGN)
|
|
||||||
if (_is_rel)
|
|
||||||
get_filename_component (s "${s}" ABSOLUTE)
|
|
||||||
file (RELATIVE_PATH s "${_base}" "${s}")
|
|
||||||
endif (_is_rel)
|
|
||||||
list (APPEND _list "${s}")
|
|
||||||
endforeach ()
|
|
||||||
set_property (GLOBAL APPEND PROPERTY "COLLECT_${name}_LIST" "${_list}")
|
|
||||||
endfunction (collect)
|
|
||||||
|
|
||||||
function(LIST_INDEX index match PROP)
|
|
||||||
foreach (prop ${PROP})
|
|
||||||
if ("${prop}" STREQUAL "${match}")
|
|
||||||
set(index ${index} PARENT_SCOPE)
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
MATH(EXPR index "${index}+1")
|
|
||||||
endforeach()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(get_headers headers)
|
|
||||||
foreach(header ${_headers})
|
|
||||||
string(REPLACE "/" ";" PATH_LIST ${header})
|
|
||||||
list(GET PATH_LIST -1 header)
|
|
||||||
list(APPEND clean_headers ${CMAKE_INCLUDE_PATH}/${header})
|
|
||||||
set(clean_headers ${clean_headers} PARENT_SCOPE)
|
|
||||||
endforeach()
|
|
||||||
return(${clean_headers})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
macro(subdirlist result curdir)
|
|
||||||
file(GLOB subdirs RELATIVE ${curdir} ${curdir}/*)
|
|
||||||
set(dirlist "")
|
|
||||||
foreach(subdir ${subdirs})
|
|
||||||
if(IS_DIRECTORY ${curdir}/${subdir})
|
|
||||||
list(APPEND dirlist ${subdir})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
set(${result} ${dirlist})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
function (linker_gen path)
|
|
||||||
if (NOT EXISTS "${CMAKE_SOURCE_DIR}/lscript.ld")
|
|
||||||
if (NOT DEFINED STACK_SIZE)
|
|
||||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "microblaze")
|
|
||||||
set(STACK_SIZE 0x400)
|
|
||||||
else()
|
|
||||||
set(STACK_SIZE 0x2000)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if (NOT DEFINED HEAP_SIZE)
|
|
||||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "microblaze")
|
|
||||||
set(HEAP_SIZE 0x400)
|
|
||||||
else()
|
|
||||||
set(HEAP_SIZE 0x2000)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
SET(MEM_NODE_INSTANCES "${TOTAL_MEM_CONTROLLERS}" CACHE STRING "Memory Controller")
|
|
||||||
SET_PROPERTY(CACHE MEM_NODE_INSTANCES PROPERTY STRINGS "${TOTAL_MEM_CONTROLLERS}")
|
|
||||||
set(CUSTOM_LINKER_FILE "None" CACHE STRING "Custom Linker Script")
|
|
||||||
list(LENGTH MEM_NODE_INSTANCES _len)
|
|
||||||
if (${_len} EQUAL 1)
|
|
||||||
set(DDR ${MEM_NODE_INSTANCES})
|
|
||||||
endif()
|
|
||||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexa72")
|
|
||||||
OR ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexa78")
|
|
||||||
OR ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexa53")
|
|
||||||
OR ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexa53-32")
|
|
||||||
OR ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64"))
|
|
||||||
configure_file(${path}/lscript_a53.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_a53.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_a53.ld.in)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "microblaze") OR
|
|
||||||
("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "microblazeel") OR
|
|
||||||
("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "plm_microblaze") OR
|
|
||||||
("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "pmu_microblaze"))
|
|
||||||
configure_file(${path}/lscript_mb.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_mb.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_mb.ld.in)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexr5"))
|
|
||||||
if("${CMAKE_MACHINE}" STREQUAL "Versal")
|
|
||||||
configure_file(${path}/lscript_versal_r5.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_versal_r5.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_versal_r5.ld.in)
|
|
||||||
else()
|
|
||||||
configure_file(${path}/lscript_r5.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_r5.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_r5.ld.in)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexr52"))
|
|
||||||
configure_file(${path}/lscript_versal_net_r5.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_versal_net_r5.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_versal_net_r5.ld.in)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortexa9"))
|
|
||||||
configure_file(${path}/lscript_a9.ld.in ${CMAKE_SOURCE_DIR}/lscript.ld)
|
|
||||||
list(APPEND LINKER_FILE_PATH ${path}/lscript_a9.ld.in)
|
|
||||||
list(APPEND LINKER_FILE lscript_a9.ld.in)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT "${CUSTOM_LINKER_FILE}" STREQUAL "None")
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CUSTOM_LINKER_FILE} ${CMAKE_SOURCE_DIR}/)
|
|
||||||
endif()
|
|
||||||
if (${NON_YOCTO})
|
|
||||||
file (REMOVE_RECURSE ${path})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endfunction(linker_gen)
|
|
||||||
|
|
||||||
function(gen_exheader path drvname addr prefix)
|
|
||||||
string(TOUPPER ${drvname} DRVNAME)
|
|
||||||
set(ADDR_DEFINE "#define X${DRVNAME}_BASEADDRESS ${addr}U")
|
|
||||||
|
|
||||||
if (NOT ${prefix})
|
|
||||||
set(DRVNAME X${DRVNAME})
|
|
||||||
configure_file(${path}/example.h.in ${CMAKE_SOURCE_DIR}/${prefix}${drvname}_example.h)
|
|
||||||
else()
|
|
||||||
configure_file(${path}/example.h.in ${CMAKE_SOURCE_DIR}/${drvname}_example.h)
|
|
||||||
endif()
|
|
||||||
endfunction(gen_exheader)
|
|
||||||
|
|
||||||
function(gen_bspconfig)
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetal_bspconfig_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/common
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/common/MemConfig.cmake ${CMAKE_SOURCE_DIR}/MemConfig.cmake)
|
|
||||||
endfunction(gen_bspconfig)
|
|
||||||
|
|
||||||
function(get_drvlist)
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetaldrvlist_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/../../
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
endfunction(get_drvlist)
|
|
||||||
|
|
||||||
function(gen_drvconfig drvname)
|
|
||||||
if ("${drvname}" STREQUAL "uartps" OR
|
|
||||||
"${drvname}" STREQUAL "uartlite" OR
|
|
||||||
"${drvname}" STREQUAL "uartpsv")
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetalconfig_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/${drvname}/src/ stdin
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/${drvname}/src/
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
else()
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetalconfig_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/${drvname}/src/
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/${drvname}/src/
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
endif()
|
|
||||||
endfunction(gen_drvconfig)
|
|
||||||
|
|
||||||
function(gen_xparams)
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetal_xparameters_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/../../
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
endfunction(gen_xparams)
|
|
||||||
|
|
||||||
function(gen_linker)
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- baremetallinker_xlnx ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
endfunction(gen_linker)
|
|
||||||
|
|
||||||
function(gen_libconfig)
|
|
||||||
execute_process(COMMAND lopper $ENV{SYSTEM_DTFILE} -- bmcmake_metadata_xlnx.py ${ESW_MACHINE} ${CMAKE_SOURCE_DIR}/ hwcmake_metadata ${CMAKE_SOURCE_DIR}/../../../../
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
RESULT_VARIABLE output)
|
|
||||||
endfunction(gen_libconfig)
|
|
||||||
|
|
||||||
macro(print_elf_size size_command app_name)
|
|
||||||
if(DEFINED ${size_command})
|
|
||||||
add_custom_command(
|
|
||||||
TARGET ${app_name}.elf POST_BUILD
|
|
||||||
COMMAND ${${size_command}} --format=berkeley ${app_name}.elf
|
|
||||||
COMMAND ${${size_command}} --format=berkeley ${app_name}.elf > ${CMAKE_BINARY_DIR}/${app_name}.elf.size
|
|
||||||
VERBATIM)
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
function(find_project_type src_ext PROJECT_TYPE)
|
|
||||||
set(cpp_extensions ".cpp;.cc;.CPP;.c++;.cxx")
|
|
||||||
foreach(extension ${cpp_extensions})
|
|
||||||
if (${extension} IN_LIST src_ext)
|
|
||||||
set(PROJECT_TYPE "c++" PARENT_SCOPE)
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
set(PROJECT_TYPE "c" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
@ -1,22 +0,0 @@
|
|||||||
# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
cmake_minimum_required(VERSION 3.15)
|
|
||||||
project(canps)
|
|
||||||
|
|
||||||
find_package(common)
|
|
||||||
collector_create (PROJECT_LIB_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
collector_create (PROJECT_LIB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
include_directories(${CMAKE_BINARY_DIR}/include)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps.c)
|
|
||||||
collect (PROJECT_LIB_HEADERS xcanps.h)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps_selftest.c)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps_hw.c)
|
|
||||||
collect (PROJECT_LIB_HEADERS xcanps_hw.h)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps_intr.c)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps_g.c)
|
|
||||||
collect (PROJECT_LIB_SOURCES xcanps_sinit.c)
|
|
||||||
collector_list (_sources PROJECT_LIB_SOURCES)
|
|
||||||
collector_list (_headers PROJECT_LIB_HEADERS)
|
|
||||||
file(COPY ${_headers} DESTINATION ${CMAKE_BINARY_DIR}/include)
|
|
||||||
add_library(canps STATIC ${_sources})
|
|
||||||
set_target_properties(canps PROPERTIES LINKER_LANGUAGE C)
|
|
@ -1,36 +0,0 @@
|
|||||||
function (collector_create name base)
|
|
||||||
set_property (GLOBAL PROPERTY "COLLECT_${name}_LIST")
|
|
||||||
set_property (GLOBAL PROPERTY "COLLECT_${name}_BASE" "${base}")
|
|
||||||
endfunction (collector_create)
|
|
||||||
|
|
||||||
function (collector_list var name)
|
|
||||||
get_property (_list GLOBAL PROPERTY "COLLECT_${name}_LIST")
|
|
||||||
set (${var} "${_list}" PARENT_SCOPE)
|
|
||||||
endfunction (collector_list)
|
|
||||||
|
|
||||||
function (collector_base var name)
|
|
||||||
get_property (_base GLOBAL PROPERTY "COLLECT_${name}_BASE")
|
|
||||||
set (${var} "${_base}" PARENT_SCOPE)
|
|
||||||
endfunction (collector_base)
|
|
||||||
|
|
||||||
function (collect name)
|
|
||||||
collector_base (_base ${name})
|
|
||||||
string(COMPARE NOTEQUAL "${_base}" "" _is_rel)
|
|
||||||
set (_list)
|
|
||||||
foreach (s IN LISTS ARGN)
|
|
||||||
if (_is_rel)
|
|
||||||
get_filename_component (s "${s}" ABSOLUTE)
|
|
||||||
file (RELATIVE_PATH s "${_base}" "${s}")
|
|
||||||
endif (_is_rel)
|
|
||||||
list (APPEND _list "${s}")
|
|
||||||
endforeach ()
|
|
||||||
set_property (GLOBAL APPEND PROPERTY "COLLECT_${name}_LIST" "${_list}")
|
|
||||||
endfunction (collect)
|
|
||||||
|
|
||||||
# Create global collectors
|
|
||||||
collector_create (PROJECT_INC_DIRS "")
|
|
||||||
collector_create (PROJECT_LIB_DIRS "")
|
|
||||||
collector_create (PROJECT_LIB_DEPS "")
|
|
||||||
collector_create (PROJECT_HDR_TESTS "")
|
|
||||||
|
|
||||||
# vim: expandtab:ts=2:sw=2:smartindent
|
|
Reference in New Issue
Block a user