- 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
+###
+# 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
#
-I${HEAD_DIR}/Debug/print
)
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+ arm
+ avr
+)
+
#
add_definitions( -I${HEAD_DIR}/Debug/off )
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+ arm
+ avr
+)
+
# Module Specific Options
#
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+ arm
+ avr
+)
+
*/
// 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
#
add_definitions( -I${HEAD_DIR}/Debug/off )
+
+###
+# Compiler Family Compatibility
+#
+set( DebugModuleCompatibility
+ arm
+ avr
+)
+
###
+###
+# 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
#
# Module Specific Options
#
+
+###
+# Compiler Family Compatibility
+#
+set( MacroModuleCompatibility
+ avr
+)
+
# Module Specific Options
#
+
+###
+# Compiler Family Compatibility
+#
+set( MacroModuleCompatibility
+ arm
+ avr
+)
+
#-DKEYINDEX_MASK=betkb_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=budkeypad_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=epsonqx10_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=facom6684_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=hp150_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=heathzenith_ColemakMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=ibmconv_ColemakMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=kaypro1_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=facom6684_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ arm
+ avr
+)
+
#-DKEYINDEX_MASK=microswitch8304_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=skm67001_ColemakMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
-DKEYINDEX_MASK=sonynews_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=sonyoas3400_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=tandy1000_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=univacf3w9_DefaultMap
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
#-DKEYINDEX_MASK=
)
+
+###
+# Compiler Family Compatibility
+#
+set( ScanModuleCompatibility
+ avr
+)
+
# Module Specific Options
#
+###
+# Compiler Family Compatibility
+#
+set( USBModuleCompatibility
+ arm
+ avr
+)
+
+###
+# 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