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