diff --git a/CMakeLists.txt b/CMakeLists.txt index 91317de37..b05230a12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ set(minLibtorrentVersion 1.2.11) set(minZlibVersion 1.2.11) # features (some are platform-specific) +include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19 include(FeatureSummary) include(FeatureOptionsSetup) feature_option(STACKTRACE "Enable stacktraces" ON) @@ -34,6 +35,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") "Install systemd service file to a directory manually overridable with Systemd_SERVICES_INSTALL_DIR" OFF "NOT GUI" OFF ) + if (STACKTRACE) + check_cxx_source_compiles( + "#include + int main(){return 0;}" + QBITTORRENT_HAS_EXECINFO_H + ) + if (NOT QBITTORRENT_HAS_EXECINFO_H) + message(FATAL_ERROR "execinfo.h header file not found.\n" + "Please either disable the STACKTRACE feature or use a libc that has this header file, such as glibc (GNU libc)." + ) + endif() + endif() elseif (MSVC) feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON) endif()