93 lines
3.1 KiB
Bash
Executable File
93 lines
3.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
RTOS_SDK_VERSION_FILE=$1
|
|
RTOS_SDK_MANIFEST_FILE=$2
|
|
RTOS_SDK_MANIFEST_REF_FILE=$3
|
|
|
|
echo "#ifndef __SDK_VER_H__" > $RTOS_SDK_VERSION_FILE
|
|
echo "#define __SDK_VER_H__" >> $RTOS_SDK_VERSION_FILE
|
|
echo "" >> $RTOS_SDK_VERSION_FILE
|
|
|
|
echo -e "#include <stdio.h>\n" >> $RTOS_SDK_VERSION_FILE
|
|
|
|
COMPILE_TIME=`date +%F" "%T`
|
|
echo "#define CONFIG_BOARD_NAME \"$BOARD\"" >> $RTOS_SDK_VERSION_FILE
|
|
echo "#define CONFIG_PRODUCT_NAME \"$PRODUCT\"" >> $RTOS_SDK_VERSION_FILE
|
|
echo "#define CONFIG_COMPILE_TIME \"$COMPILE_TIME\"" >> $RTOS_SDK_VERSION_FILE
|
|
# Get SDK_VERSION
|
|
pattern="revision="
|
|
keyline=`grep 'default .* revision' $RTOS_SDK_MANIFEST_FILE`
|
|
for keyword in $keyline; do
|
|
let i++
|
|
if [[ $keyword == $pattern* ]]; then
|
|
SDK_VERSION=`echo ${keyword#*${pattern}} | sed 's/\"//g' | sed 's/\/>//g'`
|
|
break;
|
|
fi
|
|
done
|
|
echo "#define CONFIG_VERSION_STRING \"$SDK_VERSION\"" >> $RTOS_SDK_VERSION_FILE
|
|
echo "" >> $RTOS_SDK_VERSION_FILE
|
|
|
|
if [ -n "$RTOS_SDK_MANIFEST_REF_FILE" ] && [ -f "$RTOS_SDK_MANIFEST_REF_FILE" ]; then
|
|
is_need_filter=1
|
|
ref_list=`awk '/path=/ && /name=/ {for (i=1; i<=NF; i++) if ($i ~ /^name=/) \
|
|
{split($i, a, "="); print a[2]}}' $RTOS_SDK_MANIFEST_REF_FILE`
|
|
else
|
|
is_need_filter=0
|
|
fi
|
|
|
|
echo "const char* const version_map[] = {" >> $RTOS_SDK_VERSION_FILE
|
|
printf " \"[%-7s %-12s %-12s]\",\n" "cm_hash" "remote_name" "branch" \
|
|
>> $RTOS_SDK_VERSION_FILE
|
|
GIT_LISTS=$(find ! -path "*/.repo/*" -name ".git")
|
|
for PRODUCT_PATH in $GIT_LISTS;
|
|
do
|
|
if [ -d $PRODUCT_PATH ];then
|
|
#echo $PRODUCT_PATH
|
|
GIT_REMOTE_NAME="$(cd $PRODUCT_PATH && git remote -v 2>/dev/null \
|
|
| head -n 1 | cut -d " " -f 1)"
|
|
GIT_NAME=${GIT_REMOTE_NAME##*rtos_sdk/}
|
|
if [ $is_need_filter -eq 1 ]; then
|
|
if ! echo "$ref_list" | grep -q "\"rtos_sdk/$GIT_NAME\""; then
|
|
continue;
|
|
fi
|
|
fi
|
|
GIT_1ST_NAME="$(echo ${GIT_NAME} | cut -d / -f 1)"
|
|
GIT_2ND_NAME=${GIT_REMOTE_NAME##*/}
|
|
COMMIT_HASH="$(cd $PRODUCT_PATH && git log --oneline -1 2>/dev/null \
|
|
| head -n 1 | cut -d " " -f 1)"
|
|
BRANCH=$(cd $PRODUCT_PATH && git branch 2>/dev/null | grep "\*" | cut -d " " -f 2)
|
|
BRANCH=${BRANCH##*"/"}
|
|
if [ "${GIT_1ST_NAME}"x = "${GIT_2ND_NAME}"x ];then
|
|
printf " \"[%-7s %-12s %-12s]\",\n" $COMMIT_HASH \
|
|
${GIT_1ST_NAME:0:12} ${BRANCH:0:12} >> $RTOS_SDK_VERSION_FILE
|
|
else
|
|
printf " \"[%-7s %-4s %-7s %-12s]\",\n" $COMMIT_HASH \
|
|
${GIT_1ST_NAME:0:4} ${GIT_2ND_NAME:0:7} ${BRANCH:0:12} \
|
|
>> $RTOS_SDK_VERSION_FILE
|
|
fi
|
|
else
|
|
echo "product path:$PRODUCT_PATH is not exist,please check it..."
|
|
fi
|
|
done
|
|
echo "};" >> $RTOS_SDK_VERSION_FILE
|
|
|
|
echo "#ifdef CONFIG_VERSION_FULL_INFO" >> $RTOS_SDK_VERSION_FILE
|
|
echo "#define OUTPUT_VERSION_FULL_INFO() \\
|
|
do{ \\
|
|
unsigned int i;\\
|
|
for (i = 0; i < sizeof(version_map) / sizeof(const char*); i++) \\
|
|
printf(\"%s\\n\", version_map[i]); \\
|
|
} \\
|
|
while(0)" >> $RTOS_SDK_VERSION_FILE
|
|
echo "#else" >> $RTOS_SDK_VERSION_FILE
|
|
echo -e "#define OUTPUT_VERSION_FULL_INFO()">> $RTOS_SDK_VERSION_FILE
|
|
echo "#endif" >> $RTOS_SDK_VERSION_FILE
|
|
|
|
echo "" >> $RTOS_SDK_VERSION_FILE
|
|
echo "#endif" >> $RTOS_SDK_VERSION_FILE
|