Kiibohd Controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

build.cmake 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. ###| CMAKE Kiibohd Controller Source Configurator |###
  2. #
  3. # Written by Jacob Alexander in 2011-2014 for the Kiibohd Controller
  4. #
  5. # Released into the Public Domain
  6. #
  7. ###
  8. ###
  9. # Build Targets
  10. #
  11. #| Create the .ELF file
  12. set( TARGET_ELF ${TARGET}.elf )
  13. add_executable( ${TARGET_ELF} ${SRCS} generatedKeymap.h )
  14. #| .ELF Properties
  15. set_target_properties( ${TARGET_ELF} PROPERTIES
  16. LINK_FLAGS ${LINKER_FLAGS}
  17. SUFFIX "" # XXX Force Windows to keep the .exe off
  18. )
  19. #| Convert the .ELF into a .bin to load onto the McHCK
  20. if( DEFINED DFU )
  21. set( TARGET_BIN ${TARGET}.dfu.bin )
  22. add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
  23. COMMAND ${CMAKE_OBJCOPY} ${BIN_FLAGS} ${TARGET_ELF} ${TARGET_BIN}
  24. COMMENT "Creating dfu binary file: ${TARGET_BIN}"
  25. )
  26. endif()
  27. #| Convert the .ELF into a .HEX to load onto the Teensy
  28. if ( DEFINED TEENSY )
  29. set( TARGET_HEX ${TARGET}.teensy.hex )
  30. add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
  31. COMMAND ${CMAKE_OBJCOPY} ${HEX_FLAGS} ${TARGET_ELF} ${TARGET_HEX}
  32. COMMENT "Creating iHex file to load: ${TARGET_HEX}"
  33. )
  34. endif()
  35. #| Generate the Extended .LSS
  36. set( TARGET_LSS ${TARGET}.lss )
  37. add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
  38. COMMAND ${CMAKE_OBJDUMP} ${LSS_FLAGS} ${TARGET_ELF} > ${TARGET_LSS}
  39. COMMENT "Creating Extended Listing: ${TARGET_LSS}"
  40. )
  41. #| Generate the Symbol Table .SYM
  42. set( TARGET_SYM ${TARGET}.sym )
  43. add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
  44. COMMAND ${CMAKE_NM} -n ${TARGET_ELF} > ${TARGET_SYM}
  45. COMMENT "Creating Symbol Table: ${TARGET_SYM}"
  46. )
  47. #| Compiler Selection Record
  48. add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
  49. COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/writer compiler ${COMPILER_FAMILY}
  50. )
  51. ###
  52. # Size Information
  53. #
  54. #| After Changes Size Information
  55. add_custom_target( SizeAfter ALL
  56. COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ram ${TARGET_ELF} ${SIZE_RAM} " SRAM"
  57. COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} flash ${TARGET_ELF} ${SIZE_FLASH} "Flash"
  58. DEPENDS ${TARGET_ELF}
  59. COMMENT "Chip usage for ${CHIP}"
  60. )