# HG changeset patch # User Jacob Alexander # Date 1359587629 18000 # Node ID 8a344117d8518f9136fa0884ee600793ca5f9366 # Parent 23600aaa5e1547588cae20267aee3a1875632517 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 diff -r 23600aaa5e15 -r 8a344117d851 CMakeLists.txt --- 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 # diff -r 23600aaa5e15 -r 8a344117d851 Debug/full/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Debug/led/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Debug/off/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Debug/print/print.h --- 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 diff -r 23600aaa5e15 -r 8a344117d851 Debug/print/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Macro/basic/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Macro/buffer/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/BETKB/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/BudKeypad/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/EpsonQX-10/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/FACOM6684/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/HP150/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/HeathZenith/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/IBMConvertible/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/Kaypro1/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/MBC-55X/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/MicroSwitch8304/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/SKM67001/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/SonyNEWS/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/SonyOA-S3400/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/Tandy1000/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/UnivacF3W9/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 Scan/matrix/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 USB/pjrc/setup.cmake --- 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 +) + diff -r 23600aaa5e15 -r 8a344117d851 setup.cmake --- 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 ) +#| 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