Files
bizhang_-obav/src/firmware/nuttx/CMakeLists.txt

109 lines
2.6 KiB
CMake
Raw Normal View History

2015-09-08 15:18:59 -04:00
px4_nuttx_generate_builtin_commands(
OUT builtin_commands.c
MODULE_LIST
${module_libraries}
2015-09-12 01:53:01 -04:00
${config_extra_builtin_cmds}
)
2015-09-08 15:18:59 -04:00
# add executable
add_executable(firmware_nuttx
2015-09-19 17:57:54 -04:00
builtin_commands.c)
2015-09-08 15:18:59 -04:00
set(nuttx_export_dir ${CMAKE_BINARY_DIR}/${BOARD}/NuttX/nuttx-export)
2015-09-12 05:26:31 -04:00
set(link_libs
2015-09-19 17:57:54 -04:00
romfs apps nuttx m gcc
2015-09-08 15:18:59 -04:00
)
2015-09-12 05:26:31 -04:00
if(NOT ${BOARD} STREQUAL "sim")
list(APPEND link_libs nosys)
set(main_link_flags
"-T${nuttx_export_dir}/build/ld.script"
"-Wl,-Map=${CMAKE_BINARY_DIR}/${BOARD}/main.map"
)
px4_join(OUT main_link_flags LIST ${main_link_flags} GLUE " ")
set_target_properties(firmware_nuttx PROPERTIES LINK_FLAGS ${main_link_flags})
endif()
2015-09-08 15:18:59 -04:00
target_link_libraries(firmware_nuttx
-Wl,--start-group
${module_libraries}
2015-09-12 05:26:31 -04:00
${config_extra_libs}
${link_libs}
2015-09-08 15:18:59 -04:00
-Wl,--end-group)
add_custom_target(check_weak
2015-09-12 05:26:31 -04:00
COMMAND ${NM} firmware_nuttx | ${GREP} " w " | cat
DEPENDS firmware_nuttx
2015-09-12 05:26:31 -04:00
VERBATIM
)
2015-09-12 05:26:31 -04:00
if(NOT ${BOARD} STREQUAL "sim")
2015-10-24 10:57:46 -04:00
px4_nuttx_add_romfs(OUT romfs
ROOT ROMFS/px4fmu_common
EXTRAS ${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}.bin
)
add_dependencies(romfs fw_io)
2015-09-12 05:26:31 -04:00
set(fw_file
${CMAKE_CURRENT_BINARY_DIR}/${OS}-${BOARD}-${LABEL}.px4)
2015-09-08 15:18:59 -04:00
2015-09-12 05:26:31 -04:00
px4_nuttx_add_firmware(OUT ${fw_file}
BOARD ${BOARD}
EXE ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
2015-10-06 14:10:31 -04:00
PARAM_XML ${CMAKE_BINARY_DIR}/parameters.xml
AIRFRAMES_XML ${CMAKE_BINARY_DIR}/airframes.xml
2015-09-12 05:26:31 -04:00
)
2015-09-12 05:26:31 -04:00
configure_file(gdbinit.in .gdbinit)
add_custom_target(debug
2015-10-06 12:10:23 -04:00
COMMAND ${GDB} ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
add_custom_target(debug_tui
2015-09-19 10:39:54 -04:00
COMMAND ${GDBTUI} ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
2015-10-06 12:10:23 -04:00
add_custom_target(debug_ddd
COMMAND ${DDD} --debugger ${GDB} ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
2015-09-19 10:39:54 -04:00
add_custom_target(debug_io
2015-10-06 12:10:23 -04:00
COMMAND ${GDB}
${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}
2015-10-06 12:10:23 -04:00
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
add_custom_target(debug_io_tui
2015-09-19 10:39:54 -04:00
COMMAND ${GDBTUI}
${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}
2015-09-12 05:26:31 -04:00
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
2015-10-06 12:10:23 -04:00
add_custom_target(debug_io_ddd
COMMAND ${DDD} --debugger ${GDB}
${CMAKE_BINARY_DIR}/src/modules/px4iofirmware/${config_io_board}
2015-10-06 12:10:23 -04:00
DEPENDS firmware_nuttx
${CMAKE_CURRENT_BINARY_DIR}/.gdbinit
)
2015-09-12 05:26:31 -04:00
px4_add_upload(OUT upload OS ${OS} BOARD ${BOARD}
BUNDLE ${fw_file})
endif()
2015-09-11 06:38:39 -04:00
install(FILES ${fw_file} DESTINATION .)
2015-09-08 15:18:59 -04:00
# vim: set noet ft=cmake fenc=utf-8 ff=unix :