- 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 filesimple
### | |||||
# 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 | # Build Targets | ||||
# | # |
-I${HEAD_DIR}/Debug/print | -I${HEAD_DIR}/Debug/print | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( DebugModuleCompatibility | |||||
arm | |||||
avr | |||||
) | |||||
# | # | ||||
add_definitions( -I${HEAD_DIR}/Debug/off ) | add_definitions( -I${HEAD_DIR}/Debug/off ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( DebugModuleCompatibility | |||||
arm | |||||
avr | |||||
) | |||||
# Module Specific Options | # Module Specific Options | ||||
# | # | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( DebugModuleCompatibility | |||||
arm | |||||
avr | |||||
) | |||||
*/ | */ | ||||
// Function Aliases | // 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 dPrintStrs(...) usb_debug_putstrs(__VA_ARGS__, "\0\0\0") // Convenience Variadic Macro | ||||
#define dPrintStrNL(c) dPrintStrs (c, NL) // Appends New Line 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 | #define dPrintStrsNL(...) usb_debug_putstrs(__VA_ARGS__, NL, "\0\0\0") // Appends New Line Macro |
# | # | ||||
add_definitions( -I${HEAD_DIR}/Debug/off ) | 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 C files | ||||
# | # | ||||
# Module Specific Options | # Module Specific Options | ||||
# | # | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( MacroModuleCompatibility | |||||
avr | |||||
) | |||||
# Module Specific Options | # Module Specific Options | ||||
# | # | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( MacroModuleCompatibility | |||||
arm | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=betkb_DefaultMap | #-DKEYINDEX_MASK=betkb_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=budkeypad_DefaultMap | -DKEYINDEX_MASK=budkeypad_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=epsonqx10_DefaultMap | #-DKEYINDEX_MASK=epsonqx10_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=facom6684_DefaultMap | #-DKEYINDEX_MASK=facom6684_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=hp150_DefaultMap | #-DKEYINDEX_MASK=hp150_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=heathzenith_ColemakMap | #-DKEYINDEX_MASK=heathzenith_ColemakMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=ibmconv_ColemakMap | -DKEYINDEX_MASK=ibmconv_ColemakMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=kaypro1_DefaultMap | -DKEYINDEX_MASK=kaypro1_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=facom6684_DefaultMap | -DKEYINDEX_MASK=facom6684_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
arm | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=microswitch8304_DefaultMap | #-DKEYINDEX_MASK=microswitch8304_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=skm67001_ColemakMap | -DKEYINDEX_MASK=skm67001_ColemakMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
-DKEYINDEX_MASK=sonynews_DefaultMap | -DKEYINDEX_MASK=sonynews_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=sonyoas3400_DefaultMap | #-DKEYINDEX_MASK=sonyoas3400_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=tandy1000_DefaultMap | #-DKEYINDEX_MASK=tandy1000_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK=univacf3w9_DefaultMap | #-DKEYINDEX_MASK=univacf3w9_DefaultMap | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
#-DKEYINDEX_MASK= | #-DKEYINDEX_MASK= | ||||
) | ) | ||||
### | |||||
# Compiler Family Compatibility | |||||
# | |||||
set( ScanModuleCompatibility | |||||
avr | |||||
) | |||||
# Module Specific Options | # 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 | # Module Configuration |