Newer
Older
ESP32-RetroPlay / main / CMakeLists.txt
# main/CMakeLists.txt

# This command finds all .c files in the current directory (main/)
# and recursively in all its subdirectories
file(GLOB_RECURSE COMPONENT_SRCS "*.c")

# Define the base include directory (the current directory of this CMakeLists.txt)
set(COMPONENT_INCLUDE_DIRS_BASE "${CMAKE_CURRENT_SOURCE_DIR}")

# Find all subdirectories within the current directory.
# This ensures that only actual directories are added, not files.
# 'RELATIVE' ensures the paths are relative, which is often cleaner,
# but can also use 'ABSOLUTE' if preferred for debugging.
file(GLOB_RECURSE SUB_DIRS_FOUND LIST_DIRECTORIES true FOLLOW_SYMLINKS "${CMAKE_CURRENT_SOURCE_DIR}/*/")

# Combine the base directory and all found subdirectories for INCLUDE_DIRS
# Ensure to filter out any non-directory results if GLOB_RECURSE sometimes yields them
# (though LIST_DIRECTORIES true should prevent this for "*/" pattern)
# For robustness, we can explicitly add each subdirectory
set(COMPONENT_INCLUDE_DIRS "${COMPONENT_INCLUDE_DIRS_BASE}") # Start with current directory

foreach(subdir ${SUB_DIRS_FOUND})
    if(IS_DIRECTORY "${subdir}")
        list(APPEND COMPONENT_INCLUDE_DIRS "${subdir}")
    endif()
endforeach()


idf_component_register(SRCS "${COMPONENT_SRCS}"
                       INCLUDE_DIRS "${COMPONENT_INCLUDE_DIRS}")