changeset 71:8a344117d851

Adding module compatibility check to CMake build scripts. - All modules have a default avr compatibilty right now (since that is what they were developed on) - As modules get tested and added, arm support has to be turned on in the respective setup.cmake file
author Jacob Alexander <triplehaata@gmail.com>
date Wed, 30 Jan 2013 18:13:49 -0500
parents 23600aaa5e15
children 4c2712f25157
files CMakeLists.txt Debug/full/setup.cmake Debug/led/setup.cmake Debug/off/setup.cmake Debug/print/print.h Debug/print/setup.cmake Macro/basic/setup.cmake Macro/buffer/setup.cmake Scan/BETKB/setup.cmake Scan/BudKeypad/setup.cmake Scan/EpsonQX-10/setup.cmake Scan/FACOM6684/setup.cmake Scan/HP150/setup.cmake Scan/HeathZenith/setup.cmake Scan/IBMConvertible/setup.cmake Scan/Kaypro1/setup.cmake Scan/MBC-55X/setup.cmake Scan/MicroSwitch8304/setup.cmake Scan/SKM67001/setup.cmake Scan/SonyNEWS/setup.cmake Scan/SonyOA-S3400/setup.cmake Scan/Tandy1000/setup.cmake Scan/UnivacF3W9/setup.cmake Scan/matrix/setup.cmake USB/pjrc/setup.cmake setup.cmake
diffstat 26 files changed, 234 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Sun Jan 27 01:47:52 2013 -0500
+++ b/CMakeLists.txt	Wed Jan 30 18:13:49 2013 -0500
@@ -77,6 +77,18 @@
 
 
 ###
+# Module Compatibility Check
+#
+
+#| Check for whether the set modules are compatible with the specified compiler family
+ModuleCompatibility( ${ScanModulePath}  ${ScanModuleCompatibility}  )
+ModuleCompatibility( ${MacroModulePath} ${MacroModuleCompatibility} )
+ModuleCompatibility( ${USBModulePath}   ${USBModuleCompatibility}   )
+ModuleCompatibility( ${DebugModulePath} ${DebugModuleCompatibility} )
+
+
+
+###
 # Build Targets
 #
 
--- a/Debug/full/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Debug/full/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -33,3 +33,12 @@
 	-I${HEAD_DIR}/Debug/print
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+	arm
+	avr
+)
+
--- a/Debug/led/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Debug/led/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -32,3 +32,12 @@
 #
 add_definitions( -I${HEAD_DIR}/Debug/off )
 
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+	arm
+	avr
+)
+
--- a/Debug/off/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Debug/off/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -17,3 +17,12 @@
 # Module Specific Options
 #
 
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+	arm
+	avr
+)
+
--- a/Debug/print/print.h	Sun Jan 27 01:47:52 2013 -0500
+++ b/Debug/print/print.h	Wed Jan 30 18:13:49 2013 -0500
@@ -50,12 +50,8 @@
  */
 
 // Function Aliases
-#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
-#define dPrint(c)         usb_debug_putchar(c)
-#elif defined(_mk20dx128_) // ARM
-#define dPrint(c)         usb_debug_putstr (c)
-#endif
-#define dPrintStr(c)      usb_debug_putstr (c)
+#define dPrint(c)         usb_debug_putstr(c)
+#define dPrintStr(c)      usb_debug_putstr(c)
 #define dPrintStrs(...)   usb_debug_putstrs(__VA_ARGS__, "\0\0\0")      // Convenience Variadic Macro
 #define dPrintStrNL(c)    dPrintStrs       (c, NL)                      // Appends New Line Macro
 #define dPrintStrsNL(...) usb_debug_putstrs(__VA_ARGS__, NL, "\0\0\0")  // Appends New Line Macro
--- a/Debug/print/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Debug/print/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -32,3 +32,12 @@
 #
 add_definitions( -I${HEAD_DIR}/Debug/off )
 
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+	arm
+	avr
+)
+
--- a/Macro/basic/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Macro/basic/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -8,6 +8,17 @@
 
 
 ###
+# Warning, module has known speed issues on non-matrix designs
+# Has not been tested in a long time
+#
+message( AUTHOR_WARNING
+"The 'basic' macro module was originally designed for matrix scanning designs,
+it was found not to be scalable with NKRO keyboard converters.
+It has also not been tested in a long time, use at your own risk."
+)
+
+
+###
 # Module C files
 #
 
@@ -20,3 +31,11 @@
 # Module Specific Options
 #
 
+
+###
+# Compiler Family Compatibility
+#
+set( MacroModuleCompatibility
+	avr
+)
+
--- a/Macro/buffer/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Macro/buffer/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -20,3 +20,12 @@
 # Module Specific Options
 #
 
+
+###
+# Compiler Family Compatibility
+#
+set( MacroModuleCompatibility
+	arm
+	avr
+)
+
--- a/Scan/BETKB/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/BETKB/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	#-DKEYINDEX_MASK=betkb_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/BudKeypad/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/BudKeypad/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -33,3 +33,11 @@
 	-DKEYINDEX_MASK=budkeypad_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/EpsonQX-10/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/EpsonQX-10/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	#-DKEYINDEX_MASK=epsonqx10_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/FACOM6684/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/FACOM6684/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	#-DKEYINDEX_MASK=facom6684_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/HP150/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/HP150/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	#-DKEYINDEX_MASK=hp150_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/HeathZenith/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/HeathZenith/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -33,3 +33,11 @@
 	#-DKEYINDEX_MASK=heathzenith_ColemakMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/IBMConvertible/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/IBMConvertible/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -33,3 +33,11 @@
 	-DKEYINDEX_MASK=ibmconv_ColemakMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/Kaypro1/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/Kaypro1/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -28,3 +28,11 @@
 	-DKEYINDEX_MASK=kaypro1_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/MBC-55X/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/MBC-55X/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,12 @@
 	-DKEYINDEX_MASK=facom6684_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	arm
+	avr
+)
+
--- a/Scan/MicroSwitch8304/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/MicroSwitch8304/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	#-DKEYINDEX_MASK=microswitch8304_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/SKM67001/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/SKM67001/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -33,3 +33,11 @@
 	-DKEYINDEX_MASK=skm67001_ColemakMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/SonyNEWS/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/SonyNEWS/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -46,3 +46,11 @@
 	-DKEYINDEX_MASK=sonynews_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/SonyOA-S3400/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/SonyOA-S3400/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -45,3 +45,11 @@
 	#-DKEYINDEX_MASK=sonyoas3400_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/Tandy1000/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/Tandy1000/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -28,3 +28,11 @@
 	#-DKEYINDEX_MASK=tandy1000_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/UnivacF3W9/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/UnivacF3W9/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -44,3 +44,11 @@
 	#-DKEYINDEX_MASK=univacf3w9_DefaultMap
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/Scan/matrix/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/Scan/matrix/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -34,3 +34,11 @@
 	#-DKEYINDEX_MASK=
 )
 
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+	avr
+)
+
--- a/USB/pjrc/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/USB/pjrc/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -39,3 +39,11 @@
 # Module Specific Options
 #
 
+###
+# Compiler Family Compatibility
+#
+set( USBModuleCompatibility
+	arm
+	avr
+)
+
--- a/setup.cmake	Sun Jan 27 01:47:52 2013 -0500
+++ b/setup.cmake	Wed Jan 30 18:13:49 2013 -0500
@@ -56,6 +56,25 @@
 
 
 
+###
+# Module Check Function
+#
+
+#| Usage:
+#|  PathPrepend( ModulePath <ListOfFamiliesSupported> )
+#| Uses the ${COMPILER_FAMILY} variable
+function( ModuleCompatibility ModulePath )
+	foreach( mod_var ${ARGN} )
+		if ( ${mod_var} STREQUAL ${COMPILER_FAMILY} )
+			# Module found, no need to scan further
+			return()
+		endif ( ${mod_var} STREQUAL ${COMPILER_FAMILY} )
+	endforeach( mod_var ${ARGN} )
+
+	message( FATAL_ERROR "${ModulePath} does not support the ${COMPILER_FAMILY} family..." )
+endfunction( ModuleCompatibility ModulePath )
+
+
 
 ###
 # Module Configuration