--- /dev/null
+###| CMAKE Kiibohd Controller Bootloader |###
+#
+# Jacob Alexander 2011-2014
+# Due to this file's usefulness:
+#
+# Released into the Public Domain
+#
+# This bootloader is based upon the MCHCK dfu-usb bootloader.
+# DO NOT USE with Teensy based microcontrollers.
+#
+###
+
+
+
+###
+# Chip Selection
+#
+
+#| You _MUST_ set this to match the microcontroller you are trying to compile for
+#| You _MUST_ clean the build directory if you change this value
+#|
+set( CHIP
+ "mk20dx128vlf5" # McHCK mk20dx128vlf5
+)
+
+
+###
+# Bootloader Configuration
+#
+set ( BOOTLOADER 1 )
+
+
+
+###
+# Compiler Intialization
+#
+set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/../Lib/CMake )
+include( initialize )
+
+
+
+##
+# Source Defines
+#
+set( SRCS
+ main.c
+ dfu.c
+ dfu.desc.c
+ flash.c
+ kinetis.c
+ usb.c
+)
+
+message( STATUS "Bootloader Source Files:" )
+message( "${SRCS}" )
+
+#| Add Lib sources to main list
+foreach( SRC_FILE ${COMPILER_SRCS} )
+ set( SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/../${SRC_FILE} )
+endforeach()
+
+
+
+
+###
+# Directory Includes
+#
+include_directories( ${CMAKE_SOURCE_DIR}/../Lib )
+
+
+
+###
+# Project Description
+#
+
+#| Project
+project( kiibohd_bootloader )
+
+#| Target Name (output name)
+set( TARGET kiibohd_bootloader )
+
+#| General Settings
+cmake_minimum_required( VERSION 2.8 )
+
+
+
+###
+# Generate Header Files
+#
+configure_file( _buildvars.h buildvars.h )
+include_directories( ${CMAKE_BINARY_DIR} )
+
+
+
+###
+# CMake Module Checking
+#
+find_package( Git REQUIRED )
+find_package( Ctags ) # Optional
+
+
+
+###
+# ctag Generation
+#
+if( CTAGS_EXECUTABLE )
+ # Generate the ctags
+ execute_process( COMMAND ctags ${SRCS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+endif()
+
+
+
+###
+# Build Targets
+#
+
+#| Create the .ELF file
+set( TARGET_ELF ${TARGET}.elf )
+add_executable( ${TARGET_ELF} ${SRCS} )
+
+
+#| .ELF Properties
+set_target_properties( ${TARGET_ELF} PROPERTIES
+ LINK_FLAGS ${LINKER_FLAGS}
+ SUFFIX "" # XXX Force Windows to keep the .exe off
+)
+
+
+#| Convert the .ELF into a .bin to load onto the McHCK
+set( TARGET_BIN ${TARGET}.bin )
+add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} ${BIN_FLAGS} ${TARGET_ELF} ${TARGET_BIN}
+ COMMENT "Creating binary file to load: ${TARGET_BIN}"
+)
+
+
+#| Generate the Extended .LSS
+set( TARGET_LSS ${TARGET}.lss )
+add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_OBJDUMP} ${LSS_FLAGS} ${TARGET_ELF} > ${TARGET_LSS}
+ COMMENT "Creating Extended Listing: ${TARGET_LSS}"
+)
+
+
+#| Generate the Symbol Table .SYM
+set( TARGET_SYM ${TARGET}.sym )
+add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_NM} -n ${TARGET_ELF} > ${TARGET_SYM}
+ COMMENT "Creating Symbol Table: ${TARGET_SYM}"
+)
+
+
+#| Compiler Selection Record
+add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_SOURCE_DIR}/../Lib/CMake/writer compiler ${COMPILER_FAMILY}
+)
+
+
+
+###
+# Size Information
+#
+
+#| After Changes Size Information
+add_custom_target( SizeAfter ALL
+ COMMAND ${CMAKE_SOURCE_DIR}/../Lib/CMake/sizeCalculator ${CMAKE_SIZE} ram ${TARGET_ELF} ${SIZE_RAM} " SRAM"
+ COMMAND ${CMAKE_SOURCE_DIR}/../Lib/CMake/sizeCalculator ${CMAKE_SIZE} flash ${TARGET_ELF} ${SIZE_FLASH} "Flash"
+ DEPENDS ${TARGET_ELF}
+ COMMENT "Chip usage for ${CHIP}"
+)
+