From 32a5f1c041d00cdd0246cf7e764a447588f30f3a Mon Sep 17 00:00:00 2001 From: Bart Ribbers Date: Wed, 9 Aug 2023 14:07:46 +0200 Subject: [PATCH] Fix musl build by using fts_* from external library musl does not support fts. There is however a standalone package that can be used, but it must be linked against. This commit adds a check that makes sure to link to the external library if it is required. --- CMakeLists.txt | 17 +++++++++++++++++ src/CMakeLists.txt | 2 ++ 2 files changed, 19 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a0b97c635..0a655babb3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,8 @@ include(GenerateExportHeader) include(FeatureSummary) include(ECMQtDeclareLoggingCategory) include(ECMDeprecationSettings) +include(CheckIncludeFiles) +include(CheckLibraryExists) ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h" @@ -150,6 +152,21 @@ else() set(HAVE_TERMINAL TRUE) endif() +# Compatibility with platforms without native fts (e.g. musl) +check_include_files("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H) +if(HAVE_FTS_H) + check_function_exists(fts_open HAVE_FTS_OPEN) + if(NOT HAVE_FTS_OPEN) + check_library_exists(fts fts_open "" HAVE_LIB_FTS) + endif() +endif() + +if(HAVE_LIB_FTS) + set(FTS_LIB fts) +else() + set(FTS_LIB "") +endif() + add_subdirectory(src) add_subdirectory(doc) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5a481e39ff..fa7de5cc23 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -213,6 +213,8 @@ target_link_libraries( KF5::WindowSystem KF5::WidgetsAddons KF5::Codecs + + ${FTS_LIB} ) if(HAVE_BALOO) -- GitLab