Mercurial > louis > kiibohd-controller
diff buildall.bash @ 57:a70deaf77afa
Adding initial FACOM template, and buildall.bash regression script.
author | Jacob Alexander <triplehaata@gmail.com> |
---|---|
date | Mon, 14 Jan 2013 21:31:50 -0500 |
parents | |
children | 0fdf103960c6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buildall.bash Mon Jan 14 21:31:50 2013 -0500 @@ -0,0 +1,60 @@ +#!/bin/bash +###| Builder Script |### +# +# Builds all permutations of modules +# This script is an attempt to maintain module sanity as new ones are added +# +# Fortunately, sweeping API changes don't happen much anymore...but just in case... +# +# Written by Jacob Alexander 2013 for the Kiibohd Controller +# Released into the Public Domain +# +### + +## TODO List ## +# - Complete non-Scan module permutations (will take extra work) +# - Add command line arguments +# - Add help flag for usage +# - Make sure the script is being run from the correct directory + + +main() { + ERROR="\e[5;1;31mERROR\e[0m:" + failCount=0 + + # Scan for list of Scan Modules + scanModules=$(ls Scan) + + # Prune out "invalid" modules (parent modules) + scanModules=${scanModules[@]//matrix/} + + # Create permutation directories + # Then run cmake, and run each build permutation + # Keeping track of how many builds failed/passed + for module in $scanModules; do + # Create directory, but do not error if it exists already + mkdir -p build/$module + cd build/$module + + # Make sure CMake has been run, and attempt to build + cmake -DScanModuleOverride=$module ../.. && make || let failCount++ + + # Cleanup, for the next build + cd - + done + + totalModules=$(echo $scanModules | wc -w) + if (( failCount > 0 )); then + echo -e "$ERROR $failCount/$totalModules failed" + else + echo -e "Build Success!" + fi +} + + +#| Main Script Entry +main "$@" + + +exit 0 +