From a9c4e5a33f76e710c40f98da42128e2386c7766b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Wed, 26 Apr 2023 15:56:39 +0200 Subject: [PATCH] cmake: allow extra nuttx config options via PX4_EXTRA_NUTTX_CONFIG env var --- platforms/nuttx/NuttX/CMakeLists.txt | 14 +++++++++++++- platforms/nuttx/cmake/init.cmake | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/platforms/nuttx/NuttX/CMakeLists.txt b/platforms/nuttx/NuttX/CMakeLists.txt index 355abf0b23..f28ea9fdb4 100644 --- a/platforms/nuttx/NuttX/CMakeLists.txt +++ b/platforms/nuttx/NuttX/CMakeLists.txt @@ -40,11 +40,22 @@ set(APPS_DIR ${NUTTX_SRC_DIR}/apps) configure_file(${PX4_SOURCE_DIR}/platforms/nuttx/NuttX/Make.defs.in ${CMAKE_CURRENT_BINARY_DIR}/nuttx/Make.defs) +set(EXTRA_NUTTX_CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/extra_config_options) +file(WRITE ${EXTRA_NUTTX_CONFIG_FILE} "") +if(DEFINED ENV{PX4_EXTRA_NUTTX_CONFIG}) + message(STATUS "Adding extra nuttx config: $ENV{PX4_EXTRA_NUTTX_CONFIG}") + # Allow to specify extra options via 'export PX4_EXTRA_NUTTX_CONFIG="CONFIG_xy=y;CONFIG_z=y"' + foreach(OPTION $ENV{PX4_EXTRA_NUTTX_CONFIG}) + file(APPEND ${EXTRA_NUTTX_CONFIG_FILE} "${OPTION}\n") + endforeach () +endif() + + # inflate .config add_custom_command( OUTPUT ${NUTTX_DIR}/.config COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/nuttx/Make.defs ${NUTTX_DIR}/Make.defs - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NUTTX_DEFCONFIG} ${NUTTX_DIR}/.config + COMMAND cat ${NUTTX_DEFCONFIG} ${EXTRA_NUTTX_CONFIG_FILE} > ${NUTTX_DIR}/.config COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NUTTX_DEFCONFIG} ${NUTTX_DIR}/defconfig COMMAND ${NUTTX_SRC_DIR}/tools/px4_nuttx_make_olddefconfig.sh > ${CMAKE_CURRENT_BINARY_DIR}/nuttx_olddefconfig.log COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NUTTX_DIR}/.config ${CMAKE_CURRENT_BINARY_DIR}/nuttx/.config @@ -52,6 +63,7 @@ add_custom_command( ${NUTTX_DEFCONFIG} ${NUTTX_DIR}/defconfig ${CMAKE_CURRENT_BINARY_DIR}/nuttx/Make.defs + ${CMAKE_CURRENT_BINARY_DIR}/../defconfig_inflate_stamp WORKING_DIRECTORY ${NUTTX_DIR} #USES_TERMINAL ) diff --git a/platforms/nuttx/cmake/init.cmake b/platforms/nuttx/cmake/init.cmake index 37a81382a7..50dec4b082 100644 --- a/platforms/nuttx/cmake/init.cmake +++ b/platforms/nuttx/cmake/init.cmake @@ -77,6 +77,10 @@ execute_process( OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/nuttx_olddefconfig.log RESULT_VARIABLE ret ) +execute_process( + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/defconfig_inflate_stamp + WORKING_DIRECTORY ${NUTTX_DIR} +) execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NUTTX_DIR}/.config ${PX4_BINARY_DIR}/NuttX/nuttx/.config) ###############################################################################