# SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.20.0) # 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(BUILD_TIME_TYPE STREQUAL LOCAL) string(TIMESTAMP ${out_var} ${format}) else() string(TIMESTAMP ${out_var} ${format} UTC) endif() endmacro() macro(gen_build_time_int_definition def_name format) get_time(${def_name} ${format}) # remove leading zeros so that the output will not be interpreted as octal math(EXPR ${def_name} ${${def_name}}) endmacro() macro(gen_build_time_str_definition def_name format) get_time(${def_name} ${${format}}) endmacro() 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 BUILD_DATE_TIME_STRING_FORMAT) gen_build_time_str_definition(BUILD_DATE_STRING BUILD_DATE_STRING_FORMAT) gen_build_time_str_definition(BUILD_TIME_STRING BUILD_TIME_STRING_FORMAT) file(READ ${IN_FILE} content) string(CONFIGURE "${content}" content) file(WRITE ${OUT_FILE} "${content}")