#!/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 \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