mirror of
https://github.com/nasa/fpp.git
synced 2025-12-12 15:59:33 -06:00
49 lines
1.7 KiB
Bash
Executable File
49 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Compile ref C++ files, to check them for validity
|
|
# ----------------------------------------------------------------------
|
|
|
|
fprime_gcc=../../../../scripts/fprime-gcc
|
|
export FPRIME_GCC_FLAGS="-I../fprime"
|
|
|
|
echo "generating C++"
|
|
fpp-to-cpp -d ../fprime/Fw -p `dirname $PWD`/fprime `cat deps.txt`
|
|
for dir in Cmd Log Prm Time Tlm
|
|
do
|
|
mv ../fprime/Fw/$dir*.hpp ../fprime/Fw/$dir*.cpp ../fprime/Fw/$dir
|
|
done
|
|
mv ../fprime/Fw/Param*.hpp ../fprime/Fw/Param*.cpp ../fprime/Fw/Prm
|
|
|
|
# Find all guards used in generated component base class files
|
|
guards=`grep '#if FW_' *ComponentAc.hpp *ComponentAc.cpp | cut -f 2 -d ' ' | sort -u | sed 's/^/-D/g'`
|
|
# All guards set to 1
|
|
guards_on=`echo $guards | sed 's/ /\n/g' | sed 's/$/=1/g'`
|
|
# All guards set to 0
|
|
guards_off=`echo $guards | sed 's/ /\n/g' | sed 's/$/=0/g'`
|
|
# All guards except FW_PORT_SERIALIZATION set to 0
|
|
guards_off_serial_on=`echo $guards_off | sed 's/0$/1/g'`
|
|
|
|
for file in `find . -name '*Ac.ref.cpp'`
|
|
do
|
|
base=`echo $file | sed 's;\.cpp;;'`
|
|
dest_base=`echo $base | sed 's;\(.*Ac\).*;\1;'`
|
|
cp $base.hpp $dest_base.hpp
|
|
cp $base.cpp $dest_base.cpp
|
|
|
|
echo "compiling $file with default guards"
|
|
$fprime_gcc -I../../.. -c $dest_base.cpp -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter
|
|
|
|
g=`echo $guards_on`
|
|
echo "compiling $file with $g"
|
|
$fprime_gcc -I../../.. -c $dest_base.cpp $g -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter
|
|
|
|
g=`echo $guards_off`
|
|
if grep -q static_assert $base.hpp
|
|
then
|
|
g=$guards_off_serial_on
|
|
fi
|
|
echo "compiling $file with $g"
|
|
$fprime_gcc -I../../.. -c $dest_base.cpp $g -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter
|
|
done
|