62 lines
1.8 KiB
Diff
62 lines
1.8 KiB
Diff
From 32a5f1c041d00cdd0246cf7e764a447588f30f3a Mon Sep 17 00:00:00 2001
|
|
From: Bart Ribbers <bribbers@disroot.org>
|
|
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 62c70ba79..b8cda5c82 100644
|
|
--- a/src/CMakeLists.txt
|
|
+++ b/src/CMakeLists.txt
|
|
@@ -210,6 +210,8 @@ target_link_libraries(
|
|
KF5::WindowSystem
|
|
KF5::WidgetsAddons
|
|
KF5::Codecs
|
|
+
|
|
+ ${FTS_LIB}
|
|
)
|
|
|
|
if(HAVE_BALOO)
|