From b970dbf2afae63e4bfd33656cd6c2f038a561382 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Tue, 27 Apr 2021 00:30:33 -0700 Subject: [PATCH] Build: Provide the user with a nice message after Toolchain upgrade Lots of people are confused by the error message you get when the Toolchain is behind/messed up: 'initializer-list: No such file or directory' Before this error can happen, catch the problem at CMake configure time, and provide them with an actionable error message. --- Kernel/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 2445bf1111..79e2ced26a 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -351,6 +351,9 @@ file(GENERATE OUTPUT linker.ld INPUT linker.ld) if (${CMAKE_HOST_SYSTEM_NAME} MATCHES SerenityOS) include_directories(/usr/local/include/c++/${GCC_VERSION}/) else() + if (NOT EXISTS ${TOOLCHAIN_ROOT}/Kernel/${SERENITY_ARCH}-pc-serenity/include/c++/${GCC_VERSION}/) + message(SEND_ERROR "Toolchain version ${GCC_VERSION} appears to be missing! Please run: Meta/serenity.sh rebuild-toolchain") + endif() include_directories(${TOOLCHAIN_ROOT}/Kernel/${SERENITY_ARCH}-pc-serenity/include/c++/${GCC_VERSION}/) include_directories(${TOOLCHAIN_ROOT}/Kernel/${SERENITY_ARCH}-pc-serenity/include/c++/${GCC_VERSION}/${SERENITY_ARCH}-pc-serenity/) link_directories(${TOOLCHAIN_ROOT}/Kernel/${SERENITY_ARCH}-pc-serenity/lib)