Browse Source

CMake: detect required header for STACKTRACE feature

musl does not provide execinfo.h, so our current stacktrace-related
code cannot be used with it.
adaptive-webui-19844
FranciscoPombal 4 years ago
parent
commit
137e455f03
  1. 13
      CMakeLists.txt

13
CMakeLists.txt

@ -19,6 +19,7 @@ set(minLibtorrentVersion 1.2.11) @@ -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") @@ -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 <execinfo.h>
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()

Loading…
Cancel
Save