0156593221
Replace usage of add_dependencies(${ZEPHYR_CURRENT_LIBRARY} ...) Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
89 lines
3.1 KiB
CMake
89 lines
3.1 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()
|
|
|
|
# Wrapper macro around string(TIMESTAMP ...), that returns the time
|
|
# in either local time or UTC, depending on CONFIG_BINDESC_BUILD_TIME_USE_LOCAL_TIME.
|
|
macro(get_time out_var format)
|
|
if(CONFIG_BINDESC_BUILD_TIME_USE_LOCAL_TIME)
|
|
string(TIMESTAMP ${out_var} ${format})
|
|
else()
|
|
string(TIMESTAMP ${out_var} ${format} UTC)
|
|
endif()
|
|
endmacro()
|
|
|
|
macro(gen_build_time_int_definition def_name format)
|
|
if(CONFIG_BINDESC_${def_name})
|
|
get_time(${def_name} ${format})
|
|
# remove leading zeros so that the output will not be interpreted as octal
|
|
math(EXPR ${def_name} ${${def_name}})
|
|
zephyr_library_compile_definitions(${def_name}=${${def_name}})
|
|
endif()
|
|
endmacro()
|
|
|
|
macro(gen_build_time_str_definition def_name format)
|
|
if(CONFIG_BINDESC_${def_name})
|
|
get_time(${def_name} ${${format}})
|
|
zephyr_library_compile_definitions(${def_name}="${${def_name}}")
|
|
endif()
|
|
endmacro()
|
|
|
|
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)
|
|
gen_build_time_int_definition(BUILD_TIME_YEAR "%Y")
|
|
gen_build_time_int_definition(BUILD_TIME_MONTH "%m")
|
|
gen_build_time_int_definition(BUILD_TIME_DAY "%d")
|
|
gen_build_time_int_definition(BUILD_TIME_HOUR "%H")
|
|
gen_build_time_int_definition(BUILD_TIME_MINUTE "%M")
|
|
gen_build_time_int_definition(BUILD_TIME_SECOND "%S")
|
|
gen_build_time_int_definition(BUILD_TIME_UNIX "%s")
|
|
|
|
gen_build_time_str_definition(BUILD_DATE_TIME_STRING
|
|
CONFIG_BINDESC_BUILD_DATE_TIME_STRING_FORMAT)
|
|
gen_build_time_str_definition(BUILD_DATE_STRING
|
|
CONFIG_BINDESC_BUILD_DATE_STRING_FORMAT)
|
|
gen_build_time_str_definition(BUILD_TIME_STRING
|
|
CONFIG_BINDESC_BUILD_TIME_STRING_FORMAT)
|
|
|
|
if(CONFIG_BINDESC_BUILD_TIME_ALWAYS_REBUILD)
|
|
# By adding a custom target that invokes cmake,
|
|
# CMake is forced to rebuild this target on every build. This is
|
|
# done to ensure that the timestamp is always up to date.
|
|
add_custom_target(
|
|
bindesc_time_force_rebuild
|
|
COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR}
|
|
)
|
|
zephyr_library_add_dependencies(bindesc_time_force_rebuild)
|
|
endif()
|
|
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()
|