]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Bootloader/CMakeLists.txt
Adding jump to bootloader key
[kiibohd-controller.git] / Bootloader / CMakeLists.txt
index b8cb8a013195821a6887c986480c755d68544c11..2e12cf82edd000438aeadb1f1c9fa1a6c759736a 100644 (file)
 #| You _MUST_ clean the build directory if you change this value
 #|
 set( CHIP
-       "mk20dx128vlf5"    # McHCK    mk20dx128vlf5
+       "mk20dx128vlf5"    # McHCK       mk20dx128vlf5
+#      "mk20dx256vlh7"    # Kiibohd-dfu mk20dx256vlh7
+       CACHE STRING "Chip"
 )
 
 
+
+###
+# Compiler Selection
+#
+
+#| *** EXPERIMENTAL ***
+#| Stick with gcc unless you know what you're doing
+#| Currently only arm is supported with clang
+set( COMPILER
+       "gcc"   # arm-none-eabi-gcc / avr-gcc - Default
+#       "clang" # arm-none-eabi
+       CACHE STRING "Compiler Type"
+)
+
+
+
 ###
 # Bootloader Configuration
 #
@@ -51,6 +69,14 @@ set( SRCS
        usb.c
 )
 
+# Only compile in if necessary
+if( CHIP STREQUAL "mk20dx256vlh7" )
+       set( SRCS ${SRCS}
+               debug.c
+       )
+endif()
+
+
 message( STATUS "Bootloader Source Files:" )
 message( "${SRCS}" )
 
@@ -65,7 +91,10 @@ endforeach()
 ###
 # Directory Includes
 #
-include_directories( ${CMAKE_SOURCE_DIR}/../Lib )
+include_directories (
+       ${CMAKE_SOURCE_DIR}/../Lib
+       ${CMAKE_SOURCE_DIR}
+)
 
 
 
@@ -112,6 +141,19 @@ endif()
 
 
 
+###
+# Disable -Wl,-search_paths_first for OSX (not supported by arm-none-eabi-gcc)
+#
+
+if ( APPLE )
+       string ( REPLACE "-Wl,-search_paths_first" "" CMAKE_C_LINK_FLAGS ${CMAKE_C_LINK_FLAGS} )
+       string ( REPLACE "-Wl,-search_paths_first" "" CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} )
+
+       message ( AUTHOR_WARNING "Bootloader binary may not fit on device (must be less than 4096 bytes). Macports arm-none-eabi-gcc 4.7.3 doesn't seem to work properly with -flto. However, even disabling it doesn't shrink the binary enough... 4.9.1 is known to work on Arch Linux." )
+endif ()
+
+
+
 ###
 # Build Targets
 #