inherit cmake_sysroot

# do_install_append_class-cross does not work so hack
do_install_prepend_class-native() {
    no_staging_check=true
}

do_install_prepend_class-nativesdk() {
    no_staging_check=true
}

do_install_append() {
    # avoid strange prefixing seen often
    old_dir=`pwd`
    cd ${D}
    if grep -qr 'usr\/\/usr' ; then
        bbfatal 'usr//usr found - check sources for PREFIX or better CMAKE_INSTALL_PREFIX!'
    fi
    cd $old_dir

    # check for staging links in non native recipes
    # TBD: -> oe-core (1st part - genarated sources - should work with autotools too)
    if [ x = x$no_staging_check ] ; then
        error=
        # check for genarated sources
        for f in `find ${B} -name '*.h' -o -name '*.cpp'` ; do
            if grep -q 'recipe-sysroot' $f ; then
                bbwarn "$f contains links to build sysroot!"
                error=true
            fi
        done

        # check installed cmake files
        for f in `find ${D} -name '*.cmake'` ; do
            if grep -q 'recipe-sysroot' "$f" ; then
                bbwarn "$f contains links to build host sysroot!"
                error=true
            fi

        done

        if [ x != x$error ] ; then
            bbfatal "One or more files contain links to build host sysroot ${STAGING_DIR}"
        fi
    fi
}

do_populate_sysroot[postfuncs] += "do_sysroot_cmake_sanity "

# check sysroot cmake files for links not relative and not to sysroots

do_sysroot_cmake_sanity() {
    error=
    for f in `cat ${CMAKEINSTALLED}` ; do
        if grep -q ';${libdir}' "$f" ; then
            bbwarn "$f contains links to ${libdir}!"
            error=true
        fi
        if grep -q '\"${libdir}/lib' "$f" ; then
            bbwarn "$f contains links to ${libdir}!"
            error=true
        fi
        if grep -q ';${includedir}' "$f" ; then
            bbwarn "$f contains links to ${includedir}!"
            error=true
        fi
        if grep -q '\"${includedir}' "$f" ; then
            bbwarn "$f contains links to ${includedir}!"
            error=true
        fi
    done
    if [ x != x$error ] ; then
        bbfatal "One or more files in sysroot contain links to ${prefix}"
    fi
}
