| From 461d00fcd5c5842b9a56f7462d55d46bf21163cc Mon Sep 17 00:00:00 2001 |
| From: Patrick Williams <patrick@stwcx.xyz> |
| Date: Fri, 1 Dec 2023 11:19:02 -0600 |
| Subject: [PATCH] Handle build with older versions of GCC |
| |
| Older versions of GCC (prior to 9.1) did not put the `std::filesystem` |
| support directly into libstdcpp, but in a separate `libstdc++fs`. Add |
| meson logic to detect if an extra linker flag is necessary. |
| |
| Fixes #223. |
| |
| Tested on AlmaLinux 8 which uses GCC-8. |
| |
| Signed-off-by: Patrick Williams <patrick@stwcx.xyz> |
| Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/278] |
| --- |
| meson.build | 14 ++++++++++++++ |
| 1 file changed, 14 insertions(+) |
| |
| diff --git a/meson.build b/meson.build |
| index ecc012f..93acd40 100644 |
| --- a/meson.build |
| +++ b/meson.build |
| @@ -11,6 +11,7 @@ config = configuration_data() |
| i18n = import('i18n') |
| |
| cc = meson.get_compiler('c') |
| +cxx = meson.get_compiler('cpp') |
| |
| ############################################################################### |
| # Project configuration |
| @@ -46,6 +47,19 @@ if not xdgmime_found |
| ''') |
| endif |
| |
| +############################################################################### |
| +# Check if GCC needs -lstdc++fs (before 9.1) |
| + |
| +if not cxx.links(''' |
| + #include <filesystem> |
| + int main() { |
| + return std::filesystem::is_directory( |
| + std::filesystem::status("/tmp")) ? 0 : 1; |
| + } |
| + ''', name: 'std++fs-check') |
| + add_project_link_arguments('-lstdc++fs', language : 'cpp') |
| +endif |
| + |
| ############################################################################### |
| # Dependencies |
| |
| -- |
| 2.41.0 |
| |