From e40c01d35591d0957430b253c089ed83cb60e660 Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Wed, 28 Jul 2021 09:18:57 +0800 Subject: [PATCH] [build] allow specify build date time (#6856) This commit adds a macro for specifying OpenThread build date time, which can be empty so that this field can be omitted. --- script/check-android-build | 18 ++++++++++++++++++ src/core/api/instance_api.cpp | 14 ++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/script/check-android-build b/script/check-android-build index 8587fde94..cf2055704 100755 --- a/script/check-android-build +++ b/script/check-android-build @@ -45,8 +45,26 @@ check_targets() done } +check_datetime() +{ + local datetime + + datetime="$(date)" + cat >openthread-config-datetime.h < +#define OPENTHREAD_BUILD_DATETIME "$datetime" +EOF + + OPENTHREAD_PROJECT_CFLAGS="-I$PWD -DOPENTHREAD_CONFIG_FILE=\\\"openthread-config-datetime.h\\\" \ + -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\\\"openthread-core-posix-config.h\\\"" \ + make showcommands ot-cli + grep "$datetime" -ao "out/target/product/generic/system/bin/ot-cli" + make clean-ot-cli +} + main() { + OPENTHREAD_ENABLE_ANDROID_MK=1 ANDROID_NDK=1 check_datetime OPENTHREAD_ENABLE_ANDROID_MK=1 ANDROID_NDK=1 USE_OTBR_DAEMON=1 check_targets ot-cli ot-ctl OPENTHREAD_ENABLE_ANDROID_MK=1 ANDROID_NDK=1 check_targets ot-cli spi-hdlc-adapter } diff --git a/src/core/api/instance_api.cpp b/src/core/api/instance_api.cpp index 051cafb22..b81e2f616 100644 --- a/src/core/api/instance_api.cpp +++ b/src/core/api/instance_api.cpp @@ -42,13 +42,19 @@ #include "common/new.hpp" #include "radio/radio.hpp" +#if !defined(OPENTHREAD_BUILD_DATETIME) #ifdef __ANDROID__ #ifdef OPENTHREAD_ENABLE_ANDROID_NDK #include #else #include #endif +#else // __ANDROID__ +#if defined(__DATE__) +#define OPENTHREAD_BUILD_DATETIME "; " __DATE__ " " __TIME__ #endif +#endif // __ANDROID__ +#endif // !defined(OPENTHREAD_BUILD_DATETIME) using namespace ot; @@ -142,7 +148,7 @@ const char *otGetVersionString(void) * image will be undefined and may change. */ -#ifdef __ANDROID__ +#if !defined(OPENTHREAD_BUILD_DATETIME) && defined(__ANDROID__) #ifdef OPENTHREAD_ENABLE_ANDROID_NDK static char sVersion[100 + PROP_VALUE_MAX]; @@ -166,11 +172,11 @@ const char *otGetVersionString(void) static #endif const char sVersion[] = PACKAGE_NAME "/" PACKAGE_VERSION "; " OPENTHREAD_CONFIG_PLATFORM_INFO -#if defined(__DATE__) - "; " __DATE__ " " __TIME__ +#ifdef OPENTHREAD_BUILD_DATETIME + OPENTHREAD_BUILD_DATETIME #endif #ifdef PLATFORM_VERSION_ATTR_SUFFIX - PLATFORM_VERSION_ATTR_SUFFIX + PLATFORM_VERSION_ATTR_SUFFIX #endif ; // Trailing semicolon to end statement.