From 81e79d9a65c63b166a6f442af455b4afaf2aee01 Mon Sep 17 00:00:00 2001 From: trns1997 Date: Fri, 26 Sep 2025 21:23:15 +0200 Subject: [PATCH] cmake: pass exclusion list to nuttx_add_subdirectory Introduce support in CMake to ignore specific directories added by `nuttx_add_subdirectory()`. This provides more flexibility for build configuration and allows excluding unwanted or optional components. * Improves modularity of project configuration. Signed-off-by: trns1997 --- cmake/nuttx_add_subdirectory.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmake/nuttx_add_subdirectory.cmake b/cmake/nuttx_add_subdirectory.cmake index 378edada38..4d5f4bb76c 100644 --- a/cmake/nuttx_add_subdirectory.cmake +++ b/cmake/nuttx_add_subdirectory.cmake @@ -21,6 +21,14 @@ # ############################################################################## function(nuttx_add_subdirectory) + # Parse arguments: EXCLUDE can be a list of directories + set(options) + set(oneValueArgs) + set(multiValueArgs EXCLUDE) + cmake_parse_arguments(NUTTX "${options}" "${oneValueArgs}" + "${multiValueArgs}" ${ARGN}) + + # Find all subdirs that have a CMakeLists.txt file( GLOB subdir LIST_DIRECTORIES false @@ -29,6 +37,14 @@ function(nuttx_add_subdirectory) foreach(dir ${subdir}) get_filename_component(dir ${dir} DIRECTORY) + + # Skip excluded directories + list(FIND NUTTX_EXCLUDE ${dir} _skip_index) + if(_skip_index GREATER -1) + message(STATUS "nuttx_add_subdirectory: Skipping ${dir}") + continue() + endif() + add_subdirectory(${dir}) endforeach() endfunction()