From 137e455f03da93b5737ab82fc46efeed95f421f5 Mon Sep 17 00:00:00 2001 From: FranciscoPombal Date: Sun, 6 Dec 2020 19:17:58 +0000 Subject: [PATCH] CMake: detect required header for STACKTRACE feature musl does not provide execinfo.h, so our current stacktrace-related code cannot be used with it. --- CMakeLists.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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()