b1dec67823
In situations where `ls` colors directories incorrectly, the `$module` variable contains unprintable characters. This causes directories to be impossible to `cd` into normally, and is generally a pain.
62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env 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 mod in $scanModules; do
|
|
module=$(tr -dc "[:print:]" <<< "$mod")
|
|
# 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 - > /dev/null
|
|
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
|
|
|