/
SoRusV
/
AquaController2
Обзор
Документация
Войти
/
SoRusV
/
AquaController2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
libraries/ArduinoJson/scripts/build-single-header.sh
53 строки
1 KB
Vteselkin
-add support libraries
29 окт 2020, 22:01
29 окт 2020, 22:01
b1654a8
Код
Авторство
О чём код?
#!/bin/bash TAG=$(git describe) RE_INCLUDE='^#include[[:space:]]*["<](.*)[">]' RE_EMPTY='^(#pragma[[:space:]]+once)?[[:space:]]*(//.*)?$' declare -A INCLUDED process() { local PARENT=$1 local FOLDER=$(dirname $1) local SHOW_COMMENT=$2 while IFS= read -r LINE; do if [[ $LINE =~ $RE_INCLUDE ]]; then local CHILD=${BASH_REMATCH[1]} pushd "$FOLDER" > /dev/null if [[ -e $CHILD ]]; then local CHILD_PATH=$(realpath $CHILD) if [[ ! ${INCLUDED[$CHILD_PATH]} ]]; then #echo "// $PARENT -> $CHILD" INCLUDED[$CHILD_PATH]=true process "$CHILD" false fi else if [[ ! ${INCLUDED[$CHILD]} ]]; then echo "$LINE" INCLUDED[$CHILD]=true fi fi popd > /dev/null elif [[ "${SHOW_COMMENT}" = "true" ]] ; then echo "$LINE" elif [[ ! $LINE =~ $RE_EMPTY ]]; then echo "$LINE" fi done < $PARENT } cd $(dirname $0)/../ INCLUDED=() process src/ArduinoJson.h true > ../ArduinoJson-$TAG.h g++ -x c++ -c -o ../smoketest.o - <<END #include "../ArduinoJson-$TAG.h" int main() {} END INCLUDED=() process src/ArduinoJson.hpp true > ../ArduinoJson-$TAG.hpp g++ -x c++ -c -o ../smoketest.o - <<END #include "../ArduinoJson-$TAG.hpp" int main() {} END