From db1733aa07e05c794eaf7dfbbe6b12938523a341 Mon Sep 17 00:00:00 2001 From: YoungSoo Shin Date: Wed, 27 Aug 2025 10:51:24 +0900 Subject: [PATCH] Add dependency and check npm is exist Signed-off-by: YoungSoo Shin --- main/CMakeLists.txt | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index f4efbd2..eae474b 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -2,6 +2,12 @@ set(WEB_APP_SOURCE_DIR ${CMAKE_SOURCE_DIR}/page) set(GZ_OUTPUT_FILE ${WEB_APP_SOURCE_DIR}/dist/index.html.gz) +# Check npm is available +find_program(NPM_EXECUTABLE npm) +if(NOT NPM_EXECUTABLE) + message(FATAL_ERROR "npm not found! Please install Node.js and npm.") +endif() + # Register the component. Now, CMake knows how GZ_OUTPUT_FILE is generated # and can correctly handle the dependency for embedding. idf_component_register(SRC_DIRS "app" "nconfig" "wifi" "indicator" "system" "service" "ina226" @@ -16,9 +22,23 @@ add_custom_command( COMMAND npm install COMMAND npm run build WORKING_DIRECTORY ${WEB_APP_SOURCE_DIR} - # Re-run the build if package.json or vite.config.js changes - DEPENDS ${WEB_APP_SOURCE_DIR}/index.html ${WEB_APP_SOURCE_DIR}/src/main.js ${WEB_APP_SOURCE_DIR}/src/style.css - COMMENT "Building Node.js project to produce ${GZ_OUTPUT_FILE}" + # Re-run the build if any of these files change + DEPENDS + ${WEB_APP_SOURCE_DIR}/package.json + ${WEB_APP_SOURCE_DIR}/vite.config.js + ${WEB_APP_SOURCE_DIR}/index.html + ${WEB_APP_SOURCE_DIR}/src/api.js + ${WEB_APP_SOURCE_DIR}/src/chart.js + ${WEB_APP_SOURCE_DIR}/src/dom.js + ${WEB_APP_SOURCE_DIR}/src/events.js + ${WEB_APP_SOURCE_DIR}/src/main.js + ${WEB_APP_SOURCE_DIR}/src/style.css + ${WEB_APP_SOURCE_DIR}/src/terminal.js + ${WEB_APP_SOURCE_DIR}/src/ui.js + ${WEB_APP_SOURCE_DIR}/src/utils.js + ${WEB_APP_SOURCE_DIR}/src/websocket.js + + COMMENT "Building Node.js project (npm install && npm run build)" VERBATIM )