2011-09-29 06:25:51 +00:00
###| CMAKE Kiibohd Controller Source Configurator |###
#
# Written by Jacob Alexander in 2011 for the Kiibohd Controller
#
# Released into the Public Domain
#
###
###
# Project Modules
#
2011-09-29 22:30:24 +00:00
#| Note: This is the only section you probably want to modify
2011-09-29 06:25:51 +00:00
#| Each module is defined by it's own folder (e.g. Scan/Matrix represents the "Matrix" module)
#| All of the modules must be specified, as they generate the sources list of files to compile
#| Any modifications to this file will cause a complete rebuild of the project
#| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones
##| Deals with acquiring the keypress information and turning it into a key index
2011-12-19 03:02:56 +00:00
set ( ScanModule "BudKeypad" )
2011-09-29 06:25:51 +00:00
##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code
2011-11-03 07:09:10 +00:00
set ( MacroModule "buffer" )
2011-09-29 06:25:51 +00:00
##| Sends the current list of usb key codes through USB HID
set ( USBModule "pjrc" )
##| Debugging source to use, each module has it's own set of defines that it sets
2011-09-30 05:22:19 +00:00
set ( DebugModule "full" )
2011-09-29 06:25:51 +00:00
2011-09-29 22:30:24 +00:00
2011-09-29 06:25:51 +00:00
###
# Path Setup
#
set ( ScanModulePath "Scan/${ScanModule}" )
set ( MacroModulePath "Macro/${MacroModule}" )
set ( USBModulePath "USB/${USBModule}" )
set ( DebugModulePath "Debug/${DebugModule}" )
2011-09-29 22:30:24 +00:00
#| Top-level directory adjustment
set ( HEAD_DIR "${PROJECT_SOURCE_DIR}" )
2011-09-29 06:25:51 +00:00
###
# Module Configuration
#
#| Additional options, usually define settings
add_definitions ( )
2011-09-29 22:30:24 +00:00
#| Include path for each of the modules
add_definitions (
- I $ { H E A D _ D I R } / $ { S c a n M o d u l e P a t h }
- I $ { H E A D _ D I R } / $ { M a c r o M o d u l e P a t h }
- I $ { H E A D _ D I R } / $ { U S B M o d u l e P a t h }
- I $ { H E A D _ D I R } / $ { D e b u g M o d u l e P a t h }
)
2011-09-29 06:25:51 +00:00
###
# Module Processing
#
#| Go through lists of sources and append paths
#| Usage:
#| PathPrepend( OutputListOfSources <Prepend Path> <InputListOfSources> )
macro ( PathPrepend Output SourcesPath )
unset ( tmpSource )
# Loop through items
foreach ( item ${ ARGN } )
2011-11-13 10:04:44 +00:00
# Set the path
2011-09-29 06:25:51 +00:00
set ( tmpSource ${ tmpSource } "${SourcesPath}/${item}" )
endforeach ( item )
# Finalize by writing the new list back over the old one
set ( ${ Output } ${ tmpSource } )
endmacro ( PathPrepend )
#| Scan Module
2011-09-29 22:30:24 +00:00
include ( "${ScanModulePath}/setup.cmake" )
PathPrepend ( SCAN_SRCS ${ ScanModulePath } ${ SCAN_SRCS } )
2011-09-29 06:25:51 +00:00
#| Macro Module
2011-09-29 22:30:24 +00:00
include ( "${MacroModulePath}/setup.cmake" )
2011-09-29 06:25:51 +00:00
PathPrepend ( MACRO_SRCS ${ MacroModulePath } ${ MACRO_SRCS } )
#| USB Module
2011-09-29 22:30:24 +00:00
include ( "${USBModulePath}/setup.cmake" )
PathPrepend ( USB_SRCS ${ USBModulePath } ${ USB_SRCS } )
2011-09-29 06:25:51 +00:00
#| Debugging Module
2011-09-29 22:30:24 +00:00
include ( "${DebugModulePath}/setup.cmake" )
2011-09-29 06:25:51 +00:00
PathPrepend ( DEBUG_SRCS ${ DebugModulePath } ${ DEBUG_SRCS } )
#| Print list of all module sources
2011-10-01 07:54:18 +00:00
message ( STATUS "Detected Scan Module Source Files:" )
message ( "${SCAN_SRCS}" )
message ( STATUS "Detected Macro Module Source Files:" )
message ( "${MACRO_SRCS}" )
message ( STATUS "Detected USB Module Source Files:" )
message ( "${USB_SRCS}" )
message ( STATUS "Detected Debug Module Source Files:" )
message ( "${DEBUG_SRCS}" )
2011-09-29 06:25:51 +00:00