From c0dc475bcc485384f788c8164ff14a707a6e4fd4 Mon Sep 17 00:00:00 2001 From: Florian Fischer <florian.fl.fischer@fau.de> Date: Tue, 26 Jan 2021 22:26:44 +0100 Subject: [PATCH] [meson] include compare header only if available --- apps/WorkerSleepExample.cpp | 8 ++++++-- meson.build | 5 +++++ tests/AlarmFutureTest.cpp | 6 +++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/WorkerSleepExample.cpp b/apps/WorkerSleepExample.cpp index 3d1379de..481dba4a 100644 --- a/apps/WorkerSleepExample.cpp +++ b/apps/WorkerSleepExample.cpp @@ -1,7 +1,6 @@ // SPDX-License-Identifier: LGPL-3.0-or-later // Copyright © 2020 Florian Schmaus #include <chrono> // for milliseconds, operator+, hig... -#include <compare> // for operator<, strong_ordering #include <cstdlib> // for exit, EXIT_SUCCESS #include <iostream> // for operator<<, basic_ostream, endl #include <ratio> // for ratio @@ -12,7 +11,12 @@ #include "Fiber.hpp" // for Fiber #include "Runtime.hpp" // for Runtime #include "emper-common.h" // for UNUSED_ARG, workerid_t -#include "emper.hpp" // for spawn +#include "emper-config.h" +#include "emper.hpp" // for spawn + +#ifdef EMPER_HAS_COMPARE_H +#include <compare> // for operator>=, strong_ordering +#endif static unsigned int ITERATIONS = 10; diff --git a/meson.build b/meson.build index 8385425d..f2038dac 100644 --- a/meson.build +++ b/meson.build @@ -26,6 +26,11 @@ if option_urcu emper_dependencies += [liburcu_dep] endif +cpp_compiler = meson.get_compiler('cpp') +if cpp_compiler.has_header('compare') + conf_data.set('EMPER_HAS_COMPARE_H', true) +endif + conf_data.set('EMPER_WORKER_SLEEP', get_option('worker_sleep')) conf_data.set('EMPER_WORKER_WAKEUP_STRATEGY', get_option('worker_wakeup_strategy')) conf_data.set('EMPER_LOCKED_WS_QUEUE', get_option('locked_ws_queue')) diff --git a/tests/AlarmFutureTest.cpp b/tests/AlarmFutureTest.cpp index 11dcad1c..b14830a4 100644 --- a/tests/AlarmFutureTest.cpp +++ b/tests/AlarmFutureTest.cpp @@ -3,12 +3,16 @@ #include <cassert> // for assert #include <cerrno> // for ETIME #include <chrono> // for microseconds, duration_cast, operator- -#include <compare> // for operator>=, strong_ordering #include <cstdint> // for int32_t #include <cstdlib> // for exit, EXIT_SUCCESS +#include "emper-config.h" #include "io/Future.hpp" // for AlarmFuture +#ifdef EMPER_HAS_COMPARE_H +#include <compare> // for operator>=, strong_ordering +#endif + using emper::io::AlarmFuture; void emperTest() { -- GitLab