47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| echo "add _cplusplus tools"
 | |
| 
 | |
| _cpp_head="\n#ifdef __cplusplus\nextern \"C\" {\n#endif"
 | |
| _cpp_tail="\n#ifdef __cplusplus\n}\n#endif\n"
 | |
| 
 | |
| FILES=`find ./ -name "*.h" | grep -v "dtest" | grep -v "rom" | \
 | |
|     grep -v "inc/hw/reg/" | grep -v "mfgtool" | grep -v "dbglogparser_tool" | \
 | |
|     grep -v "import" | grep -v "deprecated_definitions.h" | 
 | |
|     grep -v "iot_config.h" | grep -v "encoding.h"`
 | |
| for file in ${FILES}
 | |
| do
 | |
|     file_name=${file##*/}
 | |
| 
 | |
|     # if define _cplusplus
 | |
|     is_cpp=`grep "_cplusplus" $file -r`
 | |
|     if [ "$is_cpp" != "" ]; then
 | |
|         echo "[INFO]"$file" is defined by _cplusplus"
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     # get cpp header insert line number
 | |
|     head_line=`grep -n "#include" ./$file | tail -1 | cut -d ":" -f 1`
 | |
|     if [ "$head_line" == "" ]; then
 | |
|         head_line=`grep -n "#ifndef\ .*_H" ./$file | tail -1 | cut -d ":" -f 1`
 | |
|         if [ "$head_line" == "" ]; then
 | |
|             echo "[ERROR]"$file" is unexpected head format"
 | |
|             continue
 | |
|         fi
 | |
|         head_line=`expr $((head_line)) + 1`
 | |
|     fi
 | |
|     # insert _cplusplus head
 | |
|     sed -i "${head_line}a\\$_cpp_head" ./$file
 | |
| 
 | |
|     # get cpp tail insert line number
 | |
|     tail_line=`grep -n "#endif" ./$file | tail -1 | cut -d ":" -f 1`
 | |
|     tail_line=`expr $((tail_line)) - 1`
 | |
|     if [ "$tail_line" == "" ]; then
 | |
|         echo "[ERROR]"$file" is unexpected tail format"
 | |
|     fi
 | |
|     echo "file: "$file",head: "$head_line", tail: "$tail_line
 | |
|     # insert _cplusplus tail
 | |
|     sed -i "${tail_line}a\\$_cpp_tail" ./$file
 | |
|     #echo $file
 | |
| done
 | |
| 
 |