1# - memusage: Name of command for memusage 2# In this implementation `sizeac` is used 3set_property(TARGET bintools PROPERTY memusage_command "${CMAKE_SIZE}") 4set_property(TARGET bintools PROPERTY memusage_flag "-gq") 5set_property(TARGET bintools PROPERTY memusage_infile "") 6 7 8# List of format the tool supports for converting, for example, 9# GNU tools uses objectcopy, which supports the following: ihex, srec, binary 10set_property(TARGET bintools PROPERTY elfconvert_formats ihex srec binary) 11 12# MWDT toolchain does not support all options in a single command 13# Therefore a CMake script is used, so that multiple commands can be executed 14# successively. 15set_property(TARGET bintools PROPERTY elfconvert_command ${CMAKE_COMMAND}) 16 17set_property(TARGET bintools PROPERTY elfconvert_flag 18 -DELF2HEX=${CMAKE_ELF2HEX} 19 -DELF2BIN=${CMAKE_ELF2BIN} 20 -DSTRIP=${CMAKE_STRIP} 21 -DOBJCOPY=${CMAKE_OBJCOPY} 22) 23 24set_property(TARGET bintools PROPERTY elfconvert_flag_final 25 -P ${CMAKE_CURRENT_LIST_DIR}/elfconvert_command.cmake) 26 27set_property(TARGET bintools PROPERTY elfconvert_flag_strip_all "-DSTRIP_ALL=True") 28set_property(TARGET bintools PROPERTY elfconvert_flag_strip_debug "-DSTRIP_DEBUG=True") 29set_property(TARGET bintools PROPERTY elfconvert_flag_strip_unneeded "-DSTRIP_UNNEEDED=True") 30 31set_property(TARGET bintools PROPERTY elfconvert_flag_intarget "-DINTARGET=") 32set_property(TARGET bintools PROPERTY elfconvert_flag_outtarget "-DOUTTARGET=") 33 34set_property(TARGET bintools PROPERTY elfconvert_flag_section_remove "-DREMOVE_SECTION=") 35set_property(TARGET bintools PROPERTY elfconvert_flag_section_only "-DONLY_SECTION=") 36 37# mwdt doesn't handle rename, consider adjusting abstraction. 38set_property(TARGET bintools PROPERTY elfconvert_flag_section_rename "-DRENAME_SECTION=") 39 40set_property(TARGET bintools PROPERTY elfconvert_flag_gapfill "-DGAP_FILL=") 41set_property(TARGET bintools PROPERTY elfconvert_flag_srec_len "-DSREC_LEN=") 42 43set_property(TARGET bintools PROPERTY elfconvert_flag_infile "-DINFILE=") 44set_property(TARGET bintools PROPERTY elfconvert_flag_outfile "-DOUTFILE=") 45 46# - disassembly : Name of command for disassembly of files 47# In this implementation `elfdumpac` is used 48# disassembly_flag : -T 49# disassembly_flag_final : empty 50# disassembly_flag_inline_source : -S 51# disassembly_flag_no_aliases : empty 52# disassembly_flag_all : empty 53# disassembly_flag_infile : empty 54# disassembly_flag_outfile : '>' 55set_property(TARGET bintools PROPERTY disassembly_command ${CMAKE_OBJDUMP}) 56set_property(TARGET bintools PROPERTY disassembly_flag -T) 57set_property(TARGET bintools PROPERTY disassembly_flag_final "") 58set_property(TARGET bintools PROPERTY disassembly_flag_inline_source -S) 59set_property(TARGET bintools PROPERTY disassembly_flag_no_aliases "") 60set_property(TARGET bintools PROPERTY disassembly_flag_all "") # No support for all ? 61 62set_property(TARGET bintools PROPERTY disassembly_flag_infile "") 63set_property(TARGET bintools PROPERTY disassembly_flag_outfile > ) 64 65# 66# - readelf : Name of command for reading elf files. 67# In this implementation `elfdumpac ` is used 68# readelf_flag : empty 69# readelf_flag_final : empty 70# readelf_flag_headers : -qshp 71# readelf_flag_infile : empty 72# readelf_flag_outfile : '>' 73 74# This is using elfdumpac from mwdt. 75set_property(TARGET bintools PROPERTY readelf_command ${CMAKE_READELF}) 76 77set_property(TARGET bintools PROPERTY readelf_flag "") 78set_property(TARGET bintools PROPERTY readelf_flag_final "") 79set_property(TARGET bintools PROPERTY readelf_flag_headers -qshp) 80 81set_property(TARGET bintools PROPERTY readelf_flag_infile "") 82set_property(TARGET bintools PROPERTY readelf_flag_outfile > ) 83 84# 85# - strip: Name of command for stripping symbols 86# In this implementation `stripac` is used 87# strip_flag : empty 88# strip_flag_final : empty 89# strip_flag_all : -qls 90# strip_flag_debug : -ql 91# strip_flag_dwo : empty 92# strip_flag_infile : empty 93# strip_flag_outfile : -o 94 95# This is using strip from bintools. 96set_property(TARGET bintools PROPERTY strip_command ${CMAKE_STRIP}) 97 98# Any flag the strip command requires for processing 99set_property(TARGET bintools PROPERTY strip_flag "") 100set_property(TARGET bintools PROPERTY strip_flag_final "") 101 102set_property(TARGET bintools PROPERTY strip_flag_all -qls) 103set_property(TARGET bintools PROPERTY strip_flag_debug -ql) 104 105set_property(TARGET bintools PROPERTY strip_flag_infile "") 106set_property(TARGET bintools PROPERTY strip_flag_outfile -o ) 107 108# list symbols in a binary 109set_property(TARGET bintools PROPERTY symbols_command ${CMAKE_NM}) 110# flags are set to be as close to gnu nm format as possible 111set_property(TARGET bintools PROPERTY symbols_flag "-xhpqgn") 112set_property(TARGET bintools PROPERTY symbols_final "") 113set_property(TARGET bintools PROPERTY symbols_infile "") 114set_property(TARGET bintools PROPERTY symbols_outfile ">;" ) 115