changeset 272:5b66d1da5377

Updating setup.cmake files to use Module hierarchy implicitly - Added AddModule CMake function which simplifies specifying module requirements
author Jacob Alexander <haata@kiibohd.com>
date Sun, 25 Jan 2015 17:53:48 -0800
parents e6c753528873
children 07060ac3c813
files Debug/cli/setup.cmake Debug/full/setup.cmake Debug/led/setup.cmake Debug/off/led.h Debug/off/print.h Debug/off/setup.cmake Debug/print/setup.cmake Lib/CMake/modules.cmake Macro/PartialMap/setup.cmake Output/pjrcUSB/setup.cmake Output/uartOut/arm/uart_serial.c Output/uartOut/setup.cmake Output/usbMuxUart/setup.cmake Scan/DPH/setup.cmake Scan/MD1/setup.cmake Scan/MatrixARM/setup.cmake
diffstat 16 files changed, 131 insertions(+), 355 deletions(-) [+]
line wrap: on
line diff
--- a/Debug/cli/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Debug/cli/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,31 +11,15 @@
 # Module C files
 #
 
-set( DEBUG_SRCS
+set ( Module_SRCS
 	cli.c
 )
 
 
 ###
-# Setup File Dependencies
-#
-
-
-###
-# Module Specific Options
-#
-
-
-###
-# Just in case, you only want this module and are using others as well
-#
-add_definitions( -I${HEAD_DIR}/Debug/off )
-
-
-###
 # Compiler Family Compatibility
 #
-set( DebugModuleCompatibility
+set ( ModuleCompatibility
 	arm
 	avr
 )
--- a/Debug/full/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Debug/full/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2011-2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -8,31 +8,18 @@
 
 
 ###
-# Module C files
+# Required Submodules
 #
 
-#| XXX Requires the ../ due to how the paths are constructed
-set( DEBUG_SRCS
-	../cli/cli.c
-	../led/led.c
-	../print/print.c
-)
-
-
-###
-# Module Specific Options
-#
-add_definitions(
-	-I${HEAD_DIR}/Debug/cli
-	-I${HEAD_DIR}/Debug/led
-	-I${HEAD_DIR}/Debug/print
-)
+AddModule ( Debug cli )
+AddModule ( Debug led )
+AddModule ( Debug print )
 
 
 ###
 # Compiler Family Compatibility
 #
-set( DebugModuleCompatibility
+set ( ModuleCompatibility
 	arm
 	avr
 )
--- a/Debug/led/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Debug/led/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,26 +11,15 @@
 # Module C files
 #
 
-set( DEBUG_SRCS
+set ( Module_SRCS
 	led.c
 )
 
 
 ###
-# Module Specific Options
-#
-
-
-###
-# Just in case, you only want this module and are using others as well
-#
-add_definitions( -I${HEAD_DIR}/Debug/off )
-
-
-###
 # Compiler Family Compatibility
 #
-set( DebugModuleCompatibility
+set ( ModuleCompatibility
 	arm
 	avr
 )
--- a/Debug/off/led.h	Sun Jan 25 12:49:23 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __led_h
-#define __led_h
-
-// ----- Disabler Defines -----
-#define init_errorLED()
-#define errorLED(on)
-
-#endif
-
--- a/Debug/off/print.h	Sun Jan 25 12:49:23 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef print_h__
-#define print_h__
-
-// ----- Disabler Defines -----
-
-#define dPrint(c)
-#define dPrintStr(c)
-#define dPrintStrs(...)
-#define dPrintStrNL(c)
-#define dPrintStrsNL(...)
-
-// Special Msg Constructs (Uses VT100 tags)
-#define dPrintMsg(colour_code_str,msg,...)
-#define printMsg(colour_code_str,msg,str)
-
-// Info Messages
-#define info_dPrint(...)
-#define info_print(str)
-
-// Warning Messages
-#define warn_dPrint(...)
-#define warn_print(str)
-
-// Error Messages
-#define erro_dPrint(...)
-#define erro_print(str)
-
-// Debug Messages
-#define dbug_dPrint(...)
-#define dbug_print(str)
-
-// Static String Printing
-#define print(s) _print(PSTR(s))
-
-// Output Functions
-#define _print(s)
-#define usb_debug_putstr(s)
-#define usb_debug_putstrs(s, ...)
-
-// String Functions
-#define hexToStr(hex, out)
-#define int8ToStr(in, out)
-#define int16ToStr(in, out)
-#define hexToStr_op(in, out, op)
-#define revsStr(in)
-#define lenStr(in)
-
-#endif
-
--- a/Debug/off/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-###| CMake Kiibohd Controller Debug Module |###
-#
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
-#
-# Released into the Public Domain
-#
-###
-
-
-###
-# Module C files
-#
-#| None!
-
-
-###
-# Module Specific Options
-#
-
-
-###
-# Compiler Family Compatibility
-#
-set( DebugModuleCompatibility
-	arm
-	avr
-)
-
--- a/Debug/print/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Debug/print/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,26 +11,15 @@
 # Module C files
 #
 
-set( DEBUG_SRCS
+set ( Module_SRCS
 	print.c
 )
 
 
 ###
-# Module Specific Options
-#
-
-
-###
-# Just in case, you only want this module and are using others as well
-#
-add_definitions( -I${HEAD_DIR}/Debug/off )
-
-
-###
 # Compiler Family Compatibility
 #
-set( DebugModuleCompatibility
+set ( ModuleCompatibility
 	arm
 	avr
 )
--- a/Lib/CMake/modules.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Lib/CMake/modules.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -24,6 +24,7 @@
 
 
 
+
 ###
 # Path Setup
 #
@@ -41,36 +42,16 @@
 # Module Check Function
 #
 
-#| Usage:
-#|  PathPrepend( ModulePath <ListOfFamiliesSupported> )
-#| Uses the ${COMPILER_FAMILY} variable
-function( ModuleCompatibility ModulePath )
-	foreach( mod_var ${ARGN} )
+function ( ModuleCompatibility ModulePath )
+	foreach ( mod_var ${ARGN} )
 		if ( ${mod_var} STREQUAL ${COMPILER_FAMILY} )
 			# Module found, no need to scan further
 			return()
 		endif ()
-	endforeach()
-
-	message( FATAL_ERROR "${ModulePath} does not support the ${COMPILER_FAMILY} family..." )
-endfunction()
-
-
-
-###
-# Module Configuration
-#
+	endforeach ()
 
-#| Additional options, usually define settings
-add_definitions()
-
-#| Include path for each of the modules
-add_definitions(
-	-I${HEAD_DIR}/${ScanModulePath}
-	-I${HEAD_DIR}/${MacroModulePath}
-	-I${HEAD_DIR}/${OutputModulePath}
-	-I${HEAD_DIR}/${DebugModulePath}
-)
+	message ( FATAL_ERROR "${ModulePath} does not support the ${COMPILER_FAMILY} family..." )
+endfunction ()
 
 
 
@@ -81,54 +62,86 @@
 #| Go through lists of sources and append paths
 #| Usage:
 #|  PathPrepend( OutputListOfSources <Prepend Path> <InputListOfSources> )
-macro( PathPrepend Output SourcesPath )
-	unset( tmpSource )
+macro ( PathPrepend Output SourcesPath )
+	unset ( tmpSource )
 
 	# Loop through items
-	foreach( item ${ARGN} )
+	foreach ( item ${ARGN} )
 		# Set the path
-		set( tmpSource ${tmpSource} "${SourcesPath}/${item}" )
-	endforeach()
+		set ( tmpSource ${tmpSource} "${SourcesPath}/${item}" )
+	endforeach ()
 
 	# Finalize by writing the new list back over the old one
-	set( ${Output} ${tmpSource} )
-endmacro()
+	set ( ${Output} ${tmpSource} )
+endmacro ()
+
 
 
-#| Scan Module
-include    (            "${ScanModulePath}/setup.cmake"  )
-PathPrepend(  SCAN_SRCS  ${ScanModulePath} ${SCAN_SRCS}  )
+###
+# Add Module Macro
+#
+# Optional Arg 1: Main Module Check, set to True/1 if adding a main module
+
+function ( AddModule ModuleType ModuleName )
+	# Module path
+	set ( ModulePath                 ${ModuleType}/${ModuleName} )
+	set ( ModuleFullPath ${HEAD_DIR}/${ModuleType}/${ModuleName} )
 
-#| Macro Module
-include    (           "${MacroModulePath}/setup.cmake"  )
-PathPrepend( MACRO_SRCS ${MacroModulePath} ${MACRO_SRCS} )
+	# Include setup.cmake file
+	include ( ${ModuleFullPath}/setup.cmake )
+
+	# Check if this is a main module add
+	foreach ( extraArg ${ARGN} )
+		# Make sure this isn't a submodule
+		if ( DEFINED SubModule )
+			message ( FATAL_ERROR
+			"The '${ModuleName}' module is not a stand-alone module, and requires further setup."
+			)
+		endif ()
+	endforeach ()
 
-#| Output Module
-include    (             "${OutputModulePath}/setup.cmake"   )
-PathPrepend( OUTPUT_SRCS  ${OutputModulePath} ${OUTPUT_SRCS} )
+	# PathPrepend to give proper paths to each of the source files
+	PathPrepend ( Module_SRCS ${ModulePath} ${Module_SRCS} )
+
+	# Check the current scope to see if a sub-module added some source files
+	set ( Module_SRCS ${${ModuleType}_SRCS} ${Module_SRCS} )
+
+	# Append each of the sources to each type of module srcs list
+	set ( ${ModuleType}_SRCS ${Module_SRCS} )
+
+	# Add .h files
+	add_definitions ( -I${ModuleFullPath} )
 
-#| Debugging Module
-include    (           "${DebugModulePath}/setup.cmake"  )
-PathPrepend( DEBUG_SRCS ${DebugModulePath} ${DEBUG_SRCS} )
+	# Check module compatibility
+	ModuleCompatibility( ${ModulePath} ${ModuleCompatibility} )
+
+	# Check if this is a main module add
+	foreach ( extraArg ${ARGN} )
+		# Display detected source files
+		if ( NOT DEFINED SubModule )
+			message ( STATUS "Detected ${ModuleType} Module Source Files:" )
+			message ( "${${ModuleType}_SRCS}" )
+		endif ()
+	endforeach ()
+
+	# Finally, add the sources to the parent scope (i.e. return)
+	set ( ${ModuleType}_SRCS ${${ModuleType}_SRCS} PARENT_SCOPE )
+endfunction ()
 
 
-#| Print list of all module sources
-message( STATUS "Detected Scan Module Source Files:" )
-message( "${SCAN_SRCS}" )
-message( STATUS "Detected Macro Module Source Files:" )
-message( "${MACRO_SRCS}" )
-message( STATUS "Detected Output Module Source Files:" )
-message( "${OUTPUT_SRCS}" )
-message( STATUS "Detected Debug Module Source Files:" )
-message( "${DEBUG_SRCS}" )
+#| Add main modules
+AddModule ( Scan   ${ScanModule}   1 )
+AddModule ( Macro  ${MacroModule}  1 )
+AddModule ( Output ${OutputModule} 1 )
+AddModule ( Debug  ${DebugModule}  1 )
 
 
 
 ###
 # CMake Module Checking
 #
-find_package( Git REQUIRED )
-find_package( Ctags ) # Optional
+find_package ( Git REQUIRED )
+find_package ( Ctags ) # Optional
 
 
 
@@ -220,10 +233,10 @@
 set( SRCS
 	${MAIN_SRCS}
 	${COMPILER_SRCS}
-	${SCAN_SRCS}
-	${MACRO_SRCS}
-	${OUTPUT_SRCS}
-	${DEBUG_SRCS}
+	${Scan_SRCS}
+	${Macro_SRCS}
+	${Output_SRCS}
+	${Debug_SRCS}
 )
 
 #| Directories to include by default
@@ -232,18 +245,6 @@
 
 
 ###
-# Module Compatibility Check
-#
-
-#| Check for whether the set modules are compatible with the specified compiler family
-ModuleCompatibility( ${ScanModulePath}   ${ScanModuleCompatibility}   )
-ModuleCompatibility( ${MacroModulePath}  ${MacroModuleCompatibility}  )
-ModuleCompatibility( ${OutputModulePath} ${OutputModuleCompatibility} )
-ModuleCompatibility( ${DebugModulePath}  ${DebugModuleCompatibility}  )
-
-
-
-###
 # ctag Generation
 #
 
--- a/Macro/PartialMap/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Macro/PartialMap/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Macro Module |###
 #
-# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,20 +11,15 @@
 # Module C files
 #
 
-set( MACRO_SRCS
+set ( Module_SRCS
 	macro.c
 )
 
 
 ###
-# Module Specific Options
-#
-
-
-###
 # Compiler Family Compatibility
 #
-set( MacroModuleCompatibility
+set ( ModuleCompatibility
 	arm
 	avr
 )
--- a/Output/pjrcUSB/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Output/pjrcUSB/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller USB Module |###
 #
-# Written by Jacob Alexander in 2011-2013 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,11 +11,10 @@
 # Module C files
 #
 
-
 #| AVR Compiler
 if ( ${COMPILER_FAMILY} MATCHES "avr" )
 
-	set( OUTPUT_SRCS
+	set ( Module_SRCS
 		output_com.c
 		avr/usb_keyboard_serial.c
 	)
@@ -23,7 +22,7 @@
 #| ARM Compiler
 elseif ( ${COMPILER_FAMILY} MATCHES "arm" )
 
-	set( OUTPUT_SRCS
+	set ( Module_SRCS
 		output_com.c
 		arm/usb_desc.c
 		arm/usb_dev.c
@@ -36,13 +35,9 @@
 
 
 ###
-# Module Specific Options
-#
-
-###
 # Compiler Family Compatibility
 #
-set( OutputModuleCompatibility
+set( ModuleCompatibility
 	arm
 	avr
 )
--- a/Output/uartOut/arm/uart_serial.c	Sun Jan 25 12:49:23 2015 -0800
+++ b/Output/uartOut/arm/uart_serial.c	Sun Jan 25 17:53:48 2015 -0800
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014 by Jacob Alexander
+/* Copyright (C) 2014-2015 by Jacob Alexander
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
--- a/Output/uartOut/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Output/uartOut/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller UART Output Module |###
 #
-# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -11,11 +11,10 @@
 # Module C files
 #
 
-
 #| AVR Compiler
 if ( ${COMPILER_FAMILY} MATCHES "avr" )
 
-	set( OUTPUT_SRCS
+	set ( Module_SRCS
 		output_com.c
 		avr/uart_serial.c
 	)
@@ -23,7 +22,7 @@
 #| ARM Compiler
 elseif ( ${COMPILER_FAMILY} MATCHES "arm" )
 
-	set( OUTPUT_SRCS
+	set ( Module_SRCS
 		output_com.c
 		arm/uart_serial.c
 	)
@@ -32,13 +31,9 @@
 
 
 ###
-# Module Specific Options
-#
-
-###
 # Compiler Family Compatibility
 #
-set( OutputModuleCompatibility
+set( ModuleCompatibility
 	arm
 #	avr # TODO
 )
--- a/Output/usbMuxUart/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Output/usbMuxUart/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Muxed UART and USB Output Module |###
 #
-# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -8,43 +8,26 @@
 
 
 ###
+# Required Submodules
+#
+
+AddModule ( Output pjrcUSB )
+AddModule ( Output uartOut )
+
+
+###
 # Module C files
 #
 
-
-#| AVR Compiler
-if ( ${COMPILER_FAMILY} MATCHES "avr" )
-
-	set( OUTPUT_SRCS
-	)
-
-#| ARM Compiler
-elseif ( ${COMPILER_FAMILY} MATCHES "arm" )
-
-	set( OUTPUT_SRCS
-		output_com.c
-		../pjrcUSB/arm/usb_desc.c
-		../pjrcUSB/arm/usb_dev.c
-		../pjrcUSB/arm/usb_keyboard.c
-		../pjrcUSB/arm/usb_mem.c
-		../pjrcUSB/arm/usb_serial.c
-		../uartOut/arm/uart_serial.c
-	)
-
-endif ()
-
-
-
-###
-# Module Specific Options
-#
-
+set( Module_SRCS
+	output_com.c
+)
 
 
 ###
 # Compiler Family Compatibility
 #
-set( OutputModuleCompatibility
+set( ModuleCompatibility
 	arm
 #	avr # TODO
 )
--- a/Scan/DPH/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Scan/DPH/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2013-2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2013-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -10,21 +10,15 @@
 ###
 # Module C files
 #
-
-set( SCAN_SRCS
+set ( Module_SRCS
 	scan_loop.c
 )
 
 
 ###
-# Module Specific Options
-#
-
-
-###
 # Compiler Family Compatibility
 #
-set( ScanModuleCompatibility
+set ( ModuleCompatibility
 	avr
 )
 
--- a/Scan/MD1/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Scan/MD1/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -8,27 +8,25 @@
 
 
 ###
+# Required Submodules
+#
+
+AddModule ( Scan MatrixARM )
+
+
+###
 # Module C files
 #
 
-set( SCAN_SRCS
+set ( Module_SRCS
 	scan_loop.c
-	../MatrixARM/matrix_scan.c
-)
-
-
-###
-# Module Specific Options
-#
-add_definitions(
-	-I${HEAD_DIR}/Scan/MatrixARM
 )
 
 
 ###
 # Compiler Family Compatibility
 #
-set( ScanModuleCompatibility
+set ( ModuleCompatibility
 	arm
 )
 
--- a/Scan/MatrixARM/setup.cmake	Sun Jan 25 12:49:23 2015 -0800
+++ b/Scan/MatrixARM/setup.cmake	Sun Jan 25 17:53:48 2015 -0800
@@ -1,36 +1,30 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
 ###
 
+
 ###
-# Warning, that this module is not meant to be built stand-alone
+# Sub-module flag, cannot be included stand-alone
 #
-message( FATAL_ERROR
-"The 'MatrixARM' module is not a stand-alone module, and requires further setup."
-)
+set ( SubModule 1 )
+
 
 ###
 # Module C files
 #
-
-set( SCAN_SRCS
+set ( Module_SRCS
 	matrix_scan.c
 )
 
 
 ###
-# Module Specific Options
-#
-
-
-###
 # Compiler Family Compatibility
 #
-set( ScanModuleCompatibility
+set ( ModuleCompatibility
 	arm
 )