diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c6693b0..70db1c5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,6 +12,7 @@ jobs: build: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: node: [feedc0de, comred] steps: diff --git a/CMakeLists.txt b/CMakeLists.txt index fc32b4d..3d9b204 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,23 @@ cmake_minimum_required(VERSION 3.16.3) +if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sdkconfig) + message(FATAL_ERROR "sdkconfig not found (please run ./switchconf.sh)") +endif() + +if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/config.cmake) + message(FATAL_ERROR "config.cmake not found (please run ./switchconf.sh)") +endif() + +file(READ_SYMLINK ${CMAKE_CURRENT_SOURCE_DIR}/sdkconfig result) +if (result STREQUAL "") + message(FATAL_ERROR "sdkconfig is not a symlink (please run ./switchconf.sh)") +endif() + +file(READ_SYMLINK ${CMAKE_CURRENT_SOURCE_DIR}/config.cmake result) +if (result STREQUAL "") + message(FATAL_ERROR "config.cmake is not a symlink (please run ./switchconf.sh)") +endif() + include(config.cmake) include($ENV{IDF_PATH}/tools/cmake/project.cmake) @@ -8,3 +26,14 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) project(${BOBBY_APP_NAME}) + +set(expected_build_folder "${CMAKE_CURRENT_SOURCE_DIR}/build") +file(READ_SYMLINK "${expected_build_folder}" expected_build_folder_resolved) +if(NOT IS_ABSOLUTE "${expected_build_folder_resolved}") + get_filename_component(dir "${linkname}" DIRECTORY) + set(expected_build_folder_resolved "${dir}/${expected_build_folder_resolved}") +endif() + +if (NOT PROJECT_BINARY_DIR STREQUAL "${expected_build_folder}" AND NOT PROJECT_BINARY_DIR STREQUAL "${expected_build_folder_resolved}") + message(FATAL_ERROR "building in ${PROJECT_BINARY_DIR} is not supported, you have to build in ${expected_build_folder} or ${expected_build_folder_resolved} (please run ./switchconf.sh)") +endif() diff --git a/switchconf.sh b/switchconf.sh index e03a068..5a028fb 100755 --- a/switchconf.sh +++ b/switchconf.sh @@ -1,6 +1,12 @@ #!/bin/bash -VALID_CONFIGS=(feedc0de comred mick peter greyhash) +VALID_CONFIGS=( + "feedc0de" + "comred" + "mick" + "peter" + "greyhash" +) print_usage() { echo "usage: ./switchconf.sh ${VALID_CONFIGS[@]}"