zephyr/subsys/bindesc/CMakeLists.txt
Yonatan Schachter 00800d4818 bindesc: Add support for reading binary descriptors
This commit adds support for reading and parsing binary descriptors.
It can be used for reading the descriptors of another image, or for
iterating over one's own descriptors.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
2024-10-11 13:20:49 -04:00

70 lines
2.3 KiB
CMake

# SPDX-License-Identifier: Apache-2.0
zephyr_library()
if(CONFIG_X86)
zephyr_linker_sources(ROM_START SORT_KEY 0x1bindesc bindesc_no_vt.ld)
zephyr_library_sources(x86/bindesc_skip.S)
else()
zephyr_linker_sources(ROM_START SORT_KEY 0x1bindesc bindesc.ld)
endif()
macro(gen_str_definition def_name value)
if(CONFIG_BINDESC_${def_name})
zephyr_library_compile_definitions(${def_name}="${value}")
endif()
endmacro()
if(CONFIG_BINDESC_DEFINE_BUILD_TIME)
zephyr_library_sources(bindesc_build_time.c)
set(gen_header ${PROJECT_BINARY_DIR}/include/generated/bindesc_build_time.h)
if(CONFIG_BINDESC_BUILD_TIME_USE_LOCAL_TIME)
set(BUILD_TIME "LOCAL")
else()
set(BUILD_TIME "UTC")
endif()
set(GEN_COMMAND ${CMAKE_COMMAND}
-DIN_FILE=${CMAKE_CURRENT_LIST_DIR}/bindesc_build_time.h.in
-DOUT_FILE=${gen_header}
-DBUILD_TIME_TYPE="${BUILD_TIME}"
-DBUILD_DATE_TIME_STRING_FORMAT="${CONFIG_BINDESC_BUILD_DATE_TIME_STRING_FORMAT}"
-DBUILD_DATE_STRING_FORMAT="${CONFIG_BINDESC_BUILD_DATE_STRING_FORMAT}"
-DBUILD_TIME_STRING_FORMAT="${CONFIG_BINDESC_BUILD_TIME_STRING_FORMAT}"
-P ${CMAKE_CURRENT_LIST_DIR}/gen_bindesc_build_time_h.cmake)
if(CONFIG_BINDESC_BUILD_TIME_ALWAYS_REBUILD)
add_custom_target(gen_bindesc_build_time
COMMAND ${GEN_COMMAND}
BYPRODUCTS ${gen_header}
)
else()
add_custom_command(OUTPUT ${gen_header}
COMMAND ${GEN_COMMAND}
)
add_custom_target(gen_bindesc_build_time DEPENDS ${gen_header})
endif()
zephyr_library_add_dependencies(gen_bindesc_build_time)
endif()
if(CONFIG_BINDESC_DEFINE_VERSION)
zephyr_library_sources(bindesc_version.c)
if(EXISTS ${APPLICATION_SOURCE_DIR}/VERSION)
zephyr_library_compile_definitions(HAS_APP_VERSION=1)
endif()
endif()
if(CONFIG_BINDESC_DEFINE_HOST_INFO)
cmake_host_system_information(RESULT hostname QUERY HOSTNAME)
zephyr_library_sources(bindesc_host_info.c)
gen_str_definition(HOST_NAME ${hostname})
gen_str_definition(C_COMPILER_NAME ${CMAKE_C_COMPILER_ID})
gen_str_definition(C_COMPILER_VERSION ${CMAKE_C_COMPILER_VERSION})
gen_str_definition(CXX_COMPILER_NAME ${CMAKE_CXX_COMPILER_ID})
gen_str_definition(CXX_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
endif()
zephyr_library_sources_ifdef(CONFIG_BINDESC_READ bindesc_read.c)