#!/bin/sh

set -e

gen_automatic_includes() {

    vfull=`git describe --tags 2>/dev/null |echo v0.10.3`
    vmajor=`echo $vfull|sed 's/^v//g'|awk -F. '{print $1}'`
    vminor=`echo $vfull|awk -F. '{print $2}'`
    vpatch=`echo $vfull|sed 's/-.*//g'|awk -F. '{print $3}'`
    vstab=`echo $vfull|awk -F- '{print $2}'`
    if [ "$vstab" = "" ]; then
        vstab_number=1
    else
        vstab_number=0
    fi
    vnumeric=`printf %06d%05d%05d%01d $vmajor $vminor $vpatch $vstab_number`

    sed -e "s/@MK_VERSION_FULL@/$vfull/g"                                      \
        -e "s/@MK_VERSION_MAJOR@/$vmajor/g"                                    \
        -e "s/@MK_VERSION_MINOR@/$vminor/g"                                    \
        -e "s/@MK_VERSION_PATCH@/$vpatch/g"                                    \
        -e "s/@MK_VERSION_STABLE@/$vstab_number/g"                             \
        -e "s/@MK_VERSION_NUMERIC@/$vnumeric/g"                                \
        include/measurement_kit/common/version.h.in                            \
        > include/measurement_kit/common/version.h

    for name in $(ls include/measurement_kit/); do
        if [ ! -d include/measurement_kit/$name ]; then
            continue
        fi
        hh=include/measurement_kit/$name.hpp
        echo "// File autogenerated by \`$0\`, do not edit"                > $hh
        echo "#ifndef MEASUREMENT_KIT_$(echo $name|tr 'a-z' 'A-Z')_HPP"   >> $hh
        echo "#define MEASUREMENT_KIT_$(echo $name|tr 'a-z' 'A-Z')_HPP"   >> $hh
        for nn in $(ls include/measurement_kit/$name/|grep -v '\.in$'); do
            if [ ! -f include/measurement_kit/$name/$nn ]; then
                continue
            fi
            echo "#include <measurement_kit/$name/$nn>"                   >> $hh
        done
        echo "#endif"                                                     >> $hh
    done
}

gen_automatic_includes
