From a04431a3125de160ca082b27ee31fa1e1037cea9 Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Wed, 16 Jun 2021 11:33:31 +0200 Subject: [BUILD] Add check for stdatomic.h support --- cmake/FindStdatomic.cmake | 14 ++++++++++++++ src/fuse/CMakeLists.txt | 4 ++++ src/server/CMakeLists.txt | 1 + src/shared/CMakeLists.txt | 4 ++++ 4 files changed, 23 insertions(+) create mode 100644 cmake/FindStdatomic.cmake diff --git a/cmake/FindStdatomic.cmake b/cmake/FindStdatomic.cmake new file mode 100644 index 0000000..d7ee9b8 --- /dev/null +++ b/cmake/FindStdatomic.cmake @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Copyright (C) 2021 Manuel Bentele +# + +find_file(Stdatomic_INCLUDE_FILE + NAMES stdatomic.h + HINTS ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Stdatomic + FOUND_VAR Stdatomic_FOUND + REQUIRED_VARS Stdatomic_INCLUDE_FILE + FAIL_MESSAGE "Compiler does not support atomic operations!") diff --git a/src/fuse/CMakeLists.txt b/src/fuse/CMakeLists.txt index e4c8de9..be062f0 100644 --- a/src/fuse/CMakeLists.txt +++ b/src/fuse/CMakeLists.txt @@ -6,6 +6,10 @@ project(dnbd3-fuse find_package(Fuse REQUIRED) +# find atomic library required by dnbd3-fuse +find_package(Stdatomic REQUIRED) +find_package(Libatomic REQUIRED) + # add compile option to enable enhanced POSIX pthread features add_definitions(-D_GNU_SOURCE) diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index 1db5f06..9a1e1c4 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -11,6 +11,7 @@ if(NOT JANSSON_FOUND) endif(NOT JANSSON_FOUND) # find atomic library required by the dnbd3-server +find_package(Stdatomic REQUIRED) find_package(Libatomic REQUIRED) # add compile option to enable enhanced POSIX features diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index b280b77..a1bd49a 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -4,6 +4,10 @@ cmake_minimum_required(VERSION 3.10) project(dnbd3-shared LANGUAGES C) +# find atomic library required by dnbd3-shared +find_package(Stdatomic REQUIRED) +find_package(Libatomic REQUIRED) + # add compile option to get POLLRDHUP support for signals add_definitions(-D_GNU_SOURCE) -- cgit v1.2.3-55-g7522