# The following lines of boilerplate have to be in your project's # CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.16) # target_compile_options(${COMPONENT_LIB} PRIVATE -std=c++23) # Define the path to your .env file set(ENV_FILE "${CMAKE_SOURCE_DIR}/.env") # Check if the .env file exists if(EXISTS ${ENV_FILE}) # Read the .env file line by line file(STRINGS ${ENV_FILE} ENV_VARS) foreach(VAR ${ENV_VARS}) # Use regex to extract the key and value if (VAR MATCHES "([^=]+)=(.*)") set(ENV{${CMAKE_MATCH_1}} ${CMAKE_MATCH_2}) message(STATUS "Loaded environment variable from .env: ${CMAKE_MATCH_1}") endif() endforeach() else() message(STATUS ".env file not found at ${ENV_FILE}") endif() # If build-time WiFi environment variables were loaded above, expose them # as compile-time definitions so C++ can use them. if(DEFINED ENV{WIFI_SSID}) add_compile_definitions(BUILD_WIFI_SSID="$ENV{WIFI_SSID}") message(STATUS "Added BUILD_WIFI_SSID compile definition") else() message(STATUS "WIFI_SSID not defined; skipping BUILD_WIFI_SSID compile definition") endif() if(DEFINED ENV{WIFI_PASSWORD}) add_compile_definitions(BUILD_WIFI_PASSWORD="$ENV{WIFI_PASSWORD}") message(STATUS "Added BUILD_WIFI_PASSWORD compile definition") else() message(STATUS "WIFI_PASSWORD not defined; skipping BUILD_WIFI_PASSWORD compile definition") endif() include($ENV{IDF_PATH}/tools/cmake/project.cmake) # "Trim" the build. Include the minimal set of components, main, and anything it depends on. idf_build_set_property(MINIMAL_BUILD ON) project(ink-board)