[build] add cmake option for generating .map files (#9006)

This adds the CMake option `OT_LINKER_MAP` which will generate `.map`
files for any executables built when the option is `ON`.
This commit is contained in:
Mason Tran
2023-04-28 13:39:59 -07:00
committed by GitHub
parent 2952d2389f
commit f3701b746a
9 changed files with 74 additions and 1 deletions
+2
View File
@@ -34,6 +34,8 @@ option(OT_FTD "enable FTD" ON)
option(OT_MTD "enable MTD" ON)
option(OT_RCP "enable RCP" ON)
option(OT_LINKER_MAP "generate .map files for example apps" ON)
message(STATUS OT_APP_CLI=${OT_APP_CLI})
message(STATUS OT_APP_NCP=${OT_APP_NCP})
message(STATUS OT_APP_RCP=${OT_APP_RCP})
+8
View File
@@ -48,5 +48,13 @@ target_link_libraries(ot-cli-ftd PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-cli-ftd PRIVATE -Wl,-map,ot-cli-ftd.map)
else()
target_link_libraries(ot-cli-ftd PRIVATE -Wl,-Map=ot-cli-ftd.map)
endif()
endif()
install(TARGETS ot-cli-ftd
DESTINATION bin)
+8
View File
@@ -48,5 +48,13 @@ target_link_libraries(ot-cli-mtd PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-cli-mtd PRIVATE -Wl,-map,ot-cli-mtd.map)
else()
target_link_libraries(ot-cli-mtd PRIVATE -Wl,-Map=ot-cli-mtd.map)
endif()
endif()
install(TARGETS ot-cli-mtd
DESTINATION bin)
+8
View File
@@ -52,6 +52,14 @@ target_link_libraries(ot-cli-radio PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-cli-radio PRIVATE -Wl,-map,ot-cli-radio.map)
else()
target_link_libraries(ot-cli-radio PRIVATE -Wl,-Map=ot-cli-radio.map)
endif()
endif()
install(TARGETS ot-cli-radio
DESTINATION bin
)
+8
View File
@@ -48,4 +48,12 @@ target_link_libraries(ot-ncp-ftd PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-ncp-ftd PRIVATE -Wl,-map,ot-ncp-ftd.map)
else()
target_link_libraries(ot-ncp-ftd PRIVATE -Wl,-Map=ot-ncp-ftd.map)
endif()
endif()
install(TARGETS ot-ncp-ftd DESTINATION bin)
+8
View File
@@ -48,4 +48,12 @@ target_link_libraries(ot-ncp-mtd PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-ncp-mtd PRIVATE -Wl,-map,ot-ncp-mtd.map)
else()
target_link_libraries(ot-ncp-mtd PRIVATE -Wl,-Map=ot-ncp-mtd.map)
endif()
endif()
install(TARGETS ot-ncp-mtd DESTINATION bin)
+8
View File
@@ -47,4 +47,12 @@ target_link_libraries(ot-rcp PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-rcp PRIVATE -Wl,-map,ot-rcp.map)
else()
target_link_libraries(ot-rcp PRIVATE -Wl,-Map=ot-rcp.map)
endif()
endif()
install(TARGETS ot-rcp DESTINATION bin)
+8 -1
View File
@@ -43,7 +43,7 @@ target_compile_options(ot-cli PRIVATE
${OT_CFLAGS}
)
target_link_libraries(ot-cli
target_link_libraries(ot-cli PRIVATE
openthread-cli-ftd
openthread-posix
openthread-ftd
@@ -57,6 +57,13 @@ target_link_libraries(ot-cli
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-cli PRIVATE -Wl,-map,ot-cli.map)
else()
target_link_libraries(ot-cli PRIVATE -Wl,-Map=ot-cli.map)
endif()
endif()
install(TARGETS ot-cli DESTINATION bin)
+16
View File
@@ -49,6 +49,14 @@ target_link_libraries(ot-daemon PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-daemon PRIVATE -Wl,-map,ot-daemon.map)
else()
target_link_libraries(ot-daemon PRIVATE -Wl,-Map=ot-daemon.map)
endif()
endif()
add_executable(ot-ctl
client.cpp
)
@@ -68,6 +76,14 @@ target_link_libraries(ot-ctl PRIVATE
ot-config
)
if(OT_LINKER_MAP)
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
target_link_libraries(ot-ctl PRIVATE -Wl,-map,ot-ctl.map)
else()
target_link_libraries(ot-ctl PRIVATE -Wl,-Map=ot-ctl.map)
endif()
endif()
target_include_directories(ot-ctl PRIVATE ${COMMON_INCLUDES})
install(TARGETS ot-daemon