Browse Source

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.
Brian Gianforcaro 4 years ago
parent
commit
b970dbf2af
1 changed files with 3 additions and 0 deletions
  1. 3 0
      Kernel/CMakeLists.txt

+ 3 - 0
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)