forked from philippe44/squeezelite-esp32
-
Notifications
You must be signed in to change notification settings - Fork 115
/
generate_debug_scripts.cmake
69 lines (51 loc) · 2.46 KB
/
generate_debug_scripts.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function(___output_debug_target bin_name )
file(TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" cm_build_dir)
if( "${bin_name}" STREQUAL "_" )
set(debug_file "dbg_project" )
else()
set(debug_file "dbg_${bin_name}" )
endif()
set(flash_debug_file "${CMAKE_BINARY_DIR}/flash_${debug_file}" )
set(debug_file "${CMAKE_BINARY_DIR}/${debug_file}")
set(flash_args_file "${cm_build_dir}/flash_project_args" )
set(line_prefix "mon program_esp32 ${cm_build_dir}/" )
file(READ ${flash_args_file} flash_args)
list(APPEND dbg_cmds "target remote :3333")
list(APPEND dbg_cmds "mon reset halt")
list(APPEND dbg_cmds "flushregs")
list(APPEND dbg_cmds "set remote hardware-watchpoint-limit 2")
STRING(REGEX REPLACE "\n" ";" SPLIT "${flash_args}")
foreach(flash_arg_line ${SPLIT})
string(REGEX MATCH "^(0[xX][^ ]*)[ ]*([^ ]*)" out_matches "${flash_arg_line}")
if( ${CMAKE_MATCH_COUNT} GREATER 0 )
set(found_offset "${CMAKE_MATCH_1}")
set(found_bin "${CMAKE_MATCH_2}")
if( ( "${found_bin}" MATCHES "${bin_name}" ) OR ( "${bin_name}" STREQUAL "_" ) )
list(APPEND flash_dbg_cmds "${line_prefix}${found_bin} ${found_offset}")
endif()
if( ( "${bin_name}" MATCHES "recovery" ) AND ( "${found_bin}" MATCHES "ota_data_initial" ) )
# reset OTADATA to force reloading recovery
list(APPEND flash_dbg_cmds "${line_prefix}${found_bin} ${found_offset}")
endif()
if( ( "${found_bin}" MATCHES "${bin_name}" ) AND NOT ( "${bin_name}" STREQUAL "_" ) )
list(APPEND dbg_cmds "mon esp32 appimage_offset ${found_offset}")
endif()
endif()
endforeach()
list(APPEND full_dbg_cmds "${dbg_cmds}")
list(APPEND full_dbg_cmds "${dbg_cmds_end}")
list(APPEND full_flash_dbg_cmds "${dbg_cmds}")
list(APPEND full_flash_dbg_cmds "${flash_dbg_cmds}")
list(APPEND full_flash_dbg_cmds "${dbg_cmds_end}")
STRING(REGEX REPLACE ";" "\n" dbg_cmds_end "${dbg_cmds_end}")
STRING(REGEX REPLACE ";" "\n" full_dbg_cmds "${full_dbg_cmds}")
STRING(REGEX REPLACE ";" "\n" full_flash_dbg_cmds "${full_flash_dbg_cmds}")
# message("Writing: ${debug_file} with ${full_dbg_cmds}")
file(WRITE "${debug_file}" "${full_dbg_cmds}")
# message("Writing: ${flash_debug_file} with : ${full_flash_dbg_cmds}")
file(WRITE "${flash_debug_file}" "${full_flash_dbg_cmds}")
endfunction()
message("Generating debug script files")
___output_debug_target("_")
___output_debug_target("squeezelite")
___output_debug_target("recovery")