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
+