setup.sh: remove the dependency of default.xml [1/1]
PD#SWPL-65905
Problem:
remove the dependency of default.xml
Solution:
remove the dependency of default.xml
Verify:
ad401_a113l
Signed-off-by: Kelvin Zhang <kelvin.zhang@amlogic.com>
Change-Id: Id909fd9c2d97b5dc0075c03817f4ccf147bca3ab
diff --git a/setup.sh b/setup.sh
index cce3a87..cf74bf3 100755
--- a/setup.sh
+++ b/setup.sh
@@ -6,65 +6,59 @@
cmake_file="$PWD/CMakeLists.txt"
kconfig_file="$PWD/Kconfig"
+build_dir="build"
+drivers_dir="drivers"
exclude_dir="products"
special_dirs="arch soc boards"
-drivers_dir="drivers"
third_party_dir="third_party"
RTOS_SDK_MANIFEST_FILE="$kernel_BUILD_DIR/rtos_sdk_manifest.xml"
-if [ -n "$1" ]; then
- file_name=$1
-else
- file_name="default.xml"
-fi
-
-dir=$PWD
-while : ; do
- if [[ -n $(find $dir/.repo -name $file_name) ]]; then
- MANIFEST_FILE=`find $dir/.repo -name $file_name`
- break
- fi
- dir=`dirname $dir`
- mountpoint -q $dir
- [ $? -eq 0 ] && break;
-done
-
-if [ ! -f $MANIFEST_FILE ]; then
- echo "No such file: $file_name"
- exit 1
-fi
-
-if [ -f $RTOS_SDK_MANIFEST_FILE ] && [ $MANIFEST_FILE -ot $RTOS_SDK_MANIFEST_FILE ]; then
+if [ -s $RTOS_SDK_MANIFEST_FILE ] && [ -s $kconfig_file ] && [ $RTOS_SDK_MANIFEST_FILE -ot $kconfig_file ]; then
exit 0
fi
-repo manifest -o $RTOS_SDK_MANIFEST_FILE
-sed -i '/rtos_sdk\//!d' $RTOS_SDK_MANIFEST_FILE
-
-
-if [ ! -f $cmake_file ]; then
- echo "CMakeLists.txt and Kconfig Generated"
-elif [ $RTOS_SDK_MANIFEST_FILE -nt $cmake_file ]; then
- echo "CMakeLists.txt and Kconfig Updated"
+# Generate manifest.xml
+repo manifest > $RTOS_SDK_MANIFEST_FILE
+if [ ! -f $RTOS_SDK_MANIFEST_FILE ]; then
+ echo "Faild to save $RTOS_SDK_MANIFEST_FILE"
+ exit 1
fi
+# Write the fixed content to CMakeLists.txt
cat <<EOF > $cmake_file
enable_language(C CXX ASM)
EOF
+# Clear Kconfig
cat <<EOF > $kconfig_file
EOF
-absolute_prj_dir=$dir
-if [[ $absolute_prj_dir == $PWD ]] ; then
+# filter manifest.xml of RTOS SDK
+sed -i '/rtos_sdk\//!d' $RTOS_SDK_MANIFEST_FILE
+# figure out the $relative_dir and its column
+pattern="path="
+i=0
+keyline=`grep 'path=".*build"' $RTOS_SDK_MANIFEST_FILE`
+for keyword in $keyline; do
+ let i++
+ if [[ $keyword == $pattern* ]]; then
+ repo_path=`echo ${keyword#*${pattern}} | sed 's/\"//g' | sed 's/\/>//g'`
+ relative_dir=`dirname $repo_path`
+ break;
+ fi
+done
+
+if [[ $relative_dir == . ]]; then
pattern="path="
else
- relative_prj_dir=`echo ${PWD#*${absolute_prj_dir}/}`
- pattern="path=\"${relative_prj_dir}/"
+ pattern="path=\"${relative_dir}/"
fi
+# sort manifest.xml of RTOS SDK
+sort -k $i $RTOS_SDK_MANIFEST_FILE -o $RTOS_SDK_MANIFEST_FILE
+
while IFS= read -r line
do
keyline=`echo "$line" | grep 'name=.* path='`