{getToc} $title={Índice}
Introdução
No desenvolvimento de projetos com o ESP-IDF (Espressif IoT Development Framework), a organização e padronização dos diretórios são essenciais para garantir uma estrutura clara e eficiente. Este artigo descreve uma abordagem para modificar a estrutura padrão de diretórios do ESP-IDF, facilitando a adição de novos componentes e mantendo a organização do projeto.
Diretório Padrão de Projetos com ESP-IDF
Por padrão, o ESP-IDF usa uma estrutura de diretórios bem definida:
- main: Contém o código principal do aplicativo.
- components: Contém os componentes reutilizáveis do projeto.
Esta estrutura é simples e funciona bem para muitos casos. No entanto, quando se trabalha em projetos maiores ou quando a empresa requer uma padronização específica, pode ser necessário alterar esses nomes de diretórios.
Como Modificar os Nomes de Diretório do Seu Projeto
Para adaptar a estrutura de diretórios às necessidades da sua empresa, você pode renomear os diretórios e atualizar o arquivo CMakeLists.txt para refletir essas mudanças. A seguir, apresentamos uma solução para alterar os nomes das pastas de main para custom_applications e de components para custom_components.
1. Renomeando os Diretórios
Renomeie os diretórios no seu projeto para os novos nomes desejados:
- main -> custom_applications
- components -> custom_components
2. Atualizando o CMakeLists.txt
Modifique o arquivo CMakeLists.txt na pasta custom_applications (anteriormente main) para tornar a inclusão de componentes mais dinâmica. O código atualizado é o seguinte:
cmake_minimum_required(VERSION 3.16)
file(GLOB COMPONENT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../custom_components/*")
set(PRIV_REQUIRES "")
foreach(component_dir ${COMPONENT_DIRS})
if(IS_DIRECTORY "${component_dir}")
get_filename_component(component_name ${component_dir} NAME)
list(APPEND PRIV_REQUIRES ${component_name})
endif()
endforeach()
message(STATUS "PRIV_REQUIRES: ${PRIV_REQUIRES}")
INCLUDE_DIRS "."
PRIV_REQUIRES ${PRIV_REQUIRES})
```
Este script percorre o diretório custom_components
e adiciona automaticamente todos os componentes encontrados em PRIV_REQUIRES
, eliminando a necessidade de adicionar componentes manualmente a cada novo projeto.
3. Atualizando o CMakeLists.txt
da Raiz
Além das alterações na pasta custom_applications, atualize o CMakeLists.txt da raiz do projeto para incluir os novos diretórios:
cmake_minimum_required(VERSION 3.16)
list(APPEND EXTRA_COMPONENT_DIRS "${CMAKE_CURRENT_LIST_DIR}/custom_components")
list(APPEND EXTRA_COMPONENT_DIRS "${CMAKE_CURRENT_LIST_DIR}/custom_applications")
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(project_name)
```
Atenção: Ao alterar seu projeto, apague a pastabuild
antes de recompilar, caso já tenha feito alguma compilação anterior. As dependênciasPRIV_REQUIRES
ouREQUIRES
dos seus componentes não podem ter a palavramain
. Substitua-a pelo novo nome, se necessário.
Conclusão
Estas modificações permitem uma maior flexibilidade e automação no processo de desenvolvimento com ESP-IDF. Com a adição dinâmica de componentes e a padronização dos diretórios, o processo de configuração e manutenção de projetos se torna mais eficiente. Experimente essas alterações e adapte-as conforme necessário para atender às necessidades específicas do seu projeto.
Referência
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#rename-main