# - memusage: Name of command for memusage # In this implementation `sizeac` is used set_property(TARGET bintools PROPERTY memusage_command "${CMAKE_SIZE}") set_property(TARGET bintools PROPERTY memusage_flag "-gq") set_property(TARGET bintools PROPERTY memusage_infile "") # List of format the tool supports for converting, for example, # GNU tools uses objectcopy, which supports the following: ihex, srec, binary set_property(TARGET bintools PROPERTY elfconvert_formats ihex srec binary) # MWDT toolchain does not support all options in a single command # Therefore a CMake script is used, so that multiple commands can be executed # successively. set_property(TARGET bintools PROPERTY elfconvert_command ${CMAKE_COMMAND}) set_property(TARGET bintools PROPERTY elfconvert_flag -DELF2HEX=${CMAKE_ELF2HEX} -DELF2BIN=${CMAKE_ELF2BIN} -DSTRIP=${CMAKE_STRIP} -DOBJCOPY=${CMAKE_OBJCOPY} ) set_property(TARGET bintools PROPERTY elfconvert_flag_final -P ${CMAKE_CURRENT_LIST_DIR}/elfconvert_command.cmake) set_property(TARGET bintools PROPERTY elfconvert_flag_strip_all "-DSTRIP_ALL=True") set_property(TARGET bintools PROPERTY elfconvert_flag_strip_debug "-DSTRIP_DEBUG=True") set_property(TARGET bintools PROPERTY elfconvert_flag_intarget "-DINTARGET=") set_property(TARGET bintools PROPERTY elfconvert_flag_outtarget "-DOUTTARGET=") set_property(TARGET bintools PROPERTY elfconvert_flag_section_remove "-DREMOVE_SECTION=") set_property(TARGET bintools PROPERTY elfconvert_flag_section_only "-DONLY_SECTION=") # mwdt doesn't handle rename, consider adjusting abstraction. set_property(TARGET bintools PROPERTY elfconvert_flag_section_rename "-DRENAME_SECTION=") set_property(TARGET bintools PROPERTY elfconvert_flag_gapfill "-DGAP_FILL=") set_property(TARGET bintools PROPERTY elfconvert_flag_srec_len "-DSREC_LEN=") set_property(TARGET bintools PROPERTY elfconvert_flag_infile "-DINFILE=") set_property(TARGET bintools PROPERTY elfconvert_flag_outfile "-DOUTFILE=") # - disassembly : Name of command for disassembly of files # In this implementation `elfdumpac` is used # disassembly_flag : -T # disassembly_flag_final : empty # disassembly_flag_inline_source : -S # disassembly_flag_all : empty # disassembly_flag_infile : empty # disassembly_flag_outfile : '>' set_property(TARGET bintools PROPERTY disassembly_command ${CMAKE_OBJDUMP}) set_property(TARGET bintools PROPERTY disassembly_flag -T) set_property(TARGET bintools PROPERTY disassembly_flag_final "") set_property(TARGET bintools PROPERTY disassembly_flag_inline_source -S) set_property(TARGET bintools PROPERTY disassembly_flag_all "") # No support for all ? set_property(TARGET bintools PROPERTY disassembly_flag_infile "") set_property(TARGET bintools PROPERTY disassembly_flag_outfile > ) # # - readelf : Name of command for reading elf files. # In this implementation `elfdumpac ` is used # readelf_flag : empty # readelf_flag_final : empty # readelf_flag_headers : -qshp # readelf_flag_infile : empty # readelf_flag_outfile : '>' # This is using elfdumpac from mwdt. set_property(TARGET bintools PROPERTY readelf_command ${CMAKE_READELF}) set_property(TARGET bintools PROPERTY readelf_flag "") set_property(TARGET bintools PROPERTY readelf_flag_final "") set_property(TARGET bintools PROPERTY readelf_flag_headers -qshp) set_property(TARGET bintools PROPERTY readelf_flag_infile "") set_property(TARGET bintools PROPERTY readelf_flag_outfile > ) # # - strip: Name of command for stripping symbols # In this implementation `stripac` is used # strip_flag : empty # strip_flag_final : empty # strip_flag_all : -qls # strip_flag_debug : -ql # strip_flag_dwo : empty # strip_flag_infile : empty # strip_flag_outfile : -o # This is using strip from bintools. set_property(TARGET bintools PROPERTY strip_command ${CMAKE_STRIP}) # Any flag the strip command requires for processing set_property(TARGET bintools PROPERTY strip_flag "") set_property(TARGET bintools PROPERTY strip_flag_final "") set_property(TARGET bintools PROPERTY strip_flag_all -qls) set_property(TARGET bintools PROPERTY strip_flag_debug -ql) set_property(TARGET bintools PROPERTY strip_flag_infile "") set_property(TARGET bintools PROPERTY strip_flag_outfile -o ) # list symbols in a binary set_property(TARGET bintools PROPERTY symbols_command ${CMAKE_NM}) # flags are set to be as close to gnu nm format as possible set_property(TARGET bintools PROPERTY symbols_flag "-xhpqgn") set_property(TARGET bintools PROPERTY symbols_final "") set_property(TARGET bintools PROPERTY symbols_infile "") set_property(TARGET bintools PROPERTY symbols_outfile ">;" )