###
+###
+# CMake Custom Modules Path
+#
+
+set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/Lib/CMake/" )
+
+
###
# Module Overrides (Used in the buildall.bash script)
+###
+# CMake Module Checking
+#
+find_package( Git REQUIRED )
+find_package( Ctags ) # Optional
+
+
+
###
# Generate USB Defines
#
###
-# CMake Module Checking
+# ctag Generation
#
-find_package( Git REQUIRED )
+
+if( CTAGS_EXECUTABLE )
+ # Populate list of directories for ctags to parse
+ # NOTE: Doesn't support dots in the folder names...
+ foreach( filename ${SRCS} )
+ string( REGEX REPLACE "/[a-zA-Z0-9_-]+.c$" "" pathglob ${filename} )
+ file( GLOB filenames "${pathglob}/*.c" )
+ set( CTAG_PATHS ${CTAG_PATHS} ${filenames} )
+ file( GLOB filenames "${pathglob}/*.h" )
+ set( CTAG_PATHS ${CTAG_PATHS} ${filenames} )
+ endforeach()
+
+ # Generate the ctags
+ execute_process( COMMAND ctags ${CTAG_PATHS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+endif()
+
###
)
+#| Convert the .ELF into a .bin to load onto the McHCK
+if( DEFINED DFU )
+ set( TARGET_BIN ${TARGET}.dfu.bin )
+ add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} ${BIN_FLAGS} ${TARGET_ELF} ${TARGET_BIN}
+ COMMENT "Creating dfu binary file: ${TARGET_BIN}"
+ )
+endif()
+
+
#| Convert the .ELF into a .HEX to load onto the Teensy
-set( TARGET_HEX ${TARGET}.hex )
-add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
- COMMAND ${CMAKE_OBJCOPY} ${HEX_FLAGS} ${TARGET_ELF} ${TARGET_HEX}
- COMMENT "Creating load file for Flash: ${TARGET_HEX}"
-)
+if ( DEFINED TEENSY )
+ set( TARGET_HEX ${TARGET}.teensy.hex )
+ add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} ${HEX_FLAGS} ${TARGET_ELF} ${TARGET_HEX}
+ COMMENT "Creating iHex file to load: ${TARGET_HEX}"
+ )
+endif()
#| Generate the Extended .LSS
)
+#| 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} ${FORMAT} ${TARGET_ELF} ${SIZE_RAM} " SRAM"
- COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ${FORMAT} ${TARGET_HEX} ${SIZE_FLASH} "Flash"
+ 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}"
)