Skip to content
Snippets Groups Projects
Commit 9968889c authored by Sebastian Meiling's avatar Sebastian Meiling
Browse files

tools/ci: enhance print_toolchain script

    - add generic command version printer
    - add cmake version
    - enhance output structure
parent 3d3166e7
No related branches found
No related tags found
No related merge requests found
#!/bin/sh #!/bin/sh
gcc_version() { get_cmd_version() {
local cc
if [ -z "$1" ]; then if [ -z "$1" ]; then
cc=gcc return
else
cc=$1-gcc
fi
local ver=
if command -v "$cc" 2>&1 >/dev/null; then
ver=$("$cc" --version | head -n 1)
fi fi
if [ -z "$ver" ]; then
ver=missing/error local cmd="$1"
if command -v "$cmd" 2>&1 >/dev/null; then
ver=$("$cmd" --version 2> /dev/null | head -n 1)
if [ -z "$ver" ]; then
ver="error"
fi
else
ver="missing"
fi fi
printf "%s" "$ver" printf "%s" "$ver"
} }
...@@ -24,83 +25,52 @@ get_define() { ...@@ -24,83 +25,52 @@ get_define() {
line=$(echo "$3" | "$cc" -x c -include "$2" -E -o - - 2>&1 | sed -e '/^[ ]*#/d' -e '/^[ ]*$/d') line=$(echo "$3" | "$cc" -x c -include "$2" -E -o - - 2>&1 | sed -e '/^[ ]*#/d' -e '/^[ ]*$/d')
fi fi
if [ -z "$line" ]; then if [ -z "$line" ]; then
line=missing/error line=missing
fi fi
printf "%s" "$line" printf "%s" "$line"
} }
newlib_version() { newlib_version() {
if [ -z "$1" ]; then if [ -z "$1" ]; then
cc=gcc printf "%s" "error"
else else
cc=$1-gcc local cc="$1"
printf "%s" "$(get_define "$cc" newlib.h _NEWLIB_VERSION)"
fi fi
printf "%s" "$(get_define "$cc" newlib.h _NEWLIB_VERSION)"
} }
avr_libc_version() { avr_libc_version() {
if [ -z "$1" ]; then if [ -z "$1" ]; then
cc=gcc printf "%s" "error"
else
cc=$1-gcc
fi
printf "%s (%s)" "$(get_define "$cc" avr/version.h __AVR_LIBC_VERSION_STRING__)" "$(get_define "$cc" avr/version.h __AVR_LIBC_DATE_STRING__)"
}
cppcheck_version() {
local cmd="cppcheck"
if command -v "$cmd" 2>&1 >/dev/null; then
ver=$("$cmd" --version | head -n 1)
else
ver="missing"
fi
printf "%s" "$ver"
}
spatch_version() {
local cmd="spatch"
if command -v "$cmd" 2>&1 >/dev/null; then
ver=$("$cmd" --version | head -n 1)
else else
ver="missing" local cc="$1"
printf "%s (%s)" "$(get_define "$cc" avr/version.h __AVR_LIBC_VERSION_STRING__)" "$(get_define "$cc" avr/version.h __AVR_LIBC_DATE_STRING__)"
fi fi
printf "%s" "$ver"
} }
git_version() { printf "%s\n" "Installed compiler toolchains "
local cmd="git" printf "%s\n" "-----------------------------"
if command -v "$cmd" 2>&1 >/dev/null; then printf "%21s: %s\n" "native gcc" "$(get_cmd_version gcc)"
ver=$("$cmd" --version | head -n 1) for p in arm-none-eabi avr mips-mti-elf msp430; do
else printf "%21s: %s\n" "$p-gcc" "$(get_cmd_version ${p}-gcc)"
ver="missing"
fi
printf "%s" "$ver"
}
printf "%s\n" "Installed toolchain versions"
printf "%s\n" "----------------------------"
VER=$(gcc --version | head -n 1)
if [ -n "$VER" ]; then
printf "%20s: %s\n" "native gcc" "$VER"
fi
for p in msp430 avr arm-none-eabi mips-mti-elf; do
printf "%20s: %s\n" "$p-gcc" "$(gcc_version "$p")"
done done
VER=$(clang --version | head -n 1) printf "%21s: %s\n" "clang" "$(get_cmd_version clang)"
if [ -n "$VER" ]; then printf "\n"
printf "%20s: %s\n" "clang" "$VER" printf "%s\n" "Installed compiler libs"
fi printf "%s\n" "-----------------------"
# platform specific newlib version
for p in arm-none-eabi mips-mti-elf; do for p in arm-none-eabi mips-mti-elf; do
printf "%20s: %s\n" "$p-newlib" "$(newlib_version "$p")" printf "%21s: %s\n" "$p-newlib" "$(newlib_version ${p}-gcc)"
done done
for p in avr; do # avr libc version
printf "%20s: %s\n" "$p-libc" "$(avr_libc_version "$p")" printf "%21s: %s\n" "avr-libc" "$(avr_libc_version avr-gcc)"
# tools
printf "\n"
printf "%s\n" "Installed development tools"
printf "%s\n" "---------------------------"
for c in cmake cppcheck git; do
printf "%21s: %s\n" "$c" "$(get_cmd_version $c)"
done done
printf "%20s: %s\n" "cppcheck" "$(cppcheck_version)" printf "%21s: %s\n" "coccinelle" "$(get_cmd_version spatch)"
printf "%20s: %s\n" "coccinelle" "$(spatch_version)"
printf "%20s: %s\n" "git" "$(git_version)"
exit 0 exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment