# ESP-IDF 目标构建(esp32s3)。宿主机构建走的是 host/CMakeLists.txt,两者互不引用。 # 构建:PowerShell 里 # & D:\Users\35138\esp\v5.4\esp-idf\export.ps1 ; idf.py build cmake_minimum_required(VERSION 3.16) # C2:镜像头里的版本号(esp_app_desc_t.version)取 phonerail.h 的 PHONERAIL_FW_VERSION。 # 不设的话 IDF 用 `git describe`(形如 `79c9f8b-dirty`),OTA 回滚后 status 的 `ota.bad` # 报出来的就是它 —— 对不上任何一个固件版本。 file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/main/phonerail.h" _fw_ver_line REGEX "^#define PHONERAIL_FW_VERSION \"[^\"]+\"") string(REGEX MATCH "\"([^\"]+)\"" _ "${_fw_ver_line}") if(NOT CMAKE_MATCH_1) message(FATAL_ERROR "main/phonerail.h 里找不到 PHONERAIL_FW_VERSION") endif() set(PROJECT_VER "${CMAKE_MATCH_1}") include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(phonerail)