diff options
| author | Bart Ribbers <[email protected]> | 2023-08-09 14:07:46 +0200 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2023-08-11 08:45:13 +0000 |
| commit | 32a5f1c041d00cdd0246cf7e764a447588f30f3a (patch) | |
| tree | 8bf3dd90c4bf15bfe1540d715b8984bf66ed426b | |
| parent | 521f4937d55ff611ebe46fcbbe162eb2d9d175ad (diff) | |
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.
| -rw-r--r-- | CMakeLists.txt | 17 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a0b97c63..0a655babb 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 5a481e39f..fa7de5cc2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -213,6 +213,8 @@ target_link_libraries( KF6::KCMUtils KF6::MoreTools + + ${FTS_LIB} ) if(HAVE_BALOO) |
