27集 ESP32 AIchat cmake编译解密-《MCU嵌入式AI开发笔记》

27集 ESP32 AIchat cmake编译解密-《MCU嵌入式AI开发笔记》

我们这集讲解学习cmake编译流程。
为了更好的理解,

我们要先了解几个cmake的内部变量:

CMAKE_SOURCE_DIR:整个CMake工程最顶层的CMakeLists.txt文件所在路径。
CMAKE_CURRENT_SOURCE_DIR:当前CMakeLists.txt文件所在路径。
CMAKE_CURRENT_LIST_DIR:当前*.cmake文件所在路径。
CMAKE_BINARY_DIR: 构建目录的顶层路径。
CMAKE_CURRENT_BINARY_DIR:构建当前CMakeLists.txt文件所在路径。
CMAKE_INSTALL_PREFIX:执行make install命令时安装的根目录的路径。
CMAKE_MODULE_PATH:find_package的module模式时,Find.cmake文件所在路径。
CMAKE_PREFIX_PATH: CMake的环境变量,存放CMake的搜索路径列表,可提供给find_package(), find_program(), find_library(), find_file(), 和find_path()等函数使用。

他会遍历工程目录的CMakeLists.txt文件。

先看最上层ai-chat目录下的CMakeLists.txt:

在这里插入图片描述
这里面引入
include( E N V A D F P A T H / C M a k e L i s t s . t x t ) i n c l u d e ( ENV{ADF_PATH}/CMakeLists.txt) include( ENVADFPATH/CMakeLists.txt)include(ENV{IDF_PATH}/tools/cmake/project.cmake)

也就执行了d:\Espressif\esp-adf\CMakeLists.txt

在这里插入图片描述
这里面遍历了WORKING_DIRECTORY,和EXTRA_COMPONENT_DIRS
之后执行:

d:\ESP-IDF\tools\cmake\project.cmake

来进行编译。
这里又遍历SDKCONFIG,${CMAKE_SOURCE_DIR}/sdkconfig,根据SDKCONFIG来遍历get_filename_component。
这里面SDKconfig里面设置了预编译的宏
在这里插入图片描述

get_filename_component这个会遍历D:\workspace\esp-idf\ai_chat\components\目录下的components,写入components变量中,以便在cmake后续进行遍历编译。
之后会执行
include( ∗ ∗ C M A K E C U R R E N T L I S T D I R ∗ ∗ / t a r g e t s . c m a k e ) 之后 i n c l u d e ( {** CMAKE_CURRENT_LIST_DIR**}/targets.cmake) 之后 include( CMAKECURRENTLISTDIR/targets.cmake)之后include({CMAKE_CURRENT_LIST_DIR}/idf.cmake)
之后
set(IDFTOOL P Y T H O N " {PYTHON} " PYTHON"{IDF_PATH}/tools/idf.py")
之后会逐个遍历。

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柔贝特三哥

你的鼓励是我坚持创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值