X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=6bb72303b4320024da0ca4d708bb1107ea7ddc2c;hb=d56edfc6b108b662a49e795b6af8df42ab6fb296;hp=7791b1b138daa601b888f1f59ffe1c1d445e95c3;hpb=3919e81ffabe47405d4894ec437af83b010f4d27;p=pulseview.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 7791b1b1..6bb72303 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,41 +151,41 @@ find_package(Threads REQUIRED) # Helper for checking for atomics function(check_working_cxx_atomics varname additional_lib) - include(CheckCXXSourceCompiles) - include(CMakePushCheckState) - cmake_push_check_state() - set(CMAKE_REQUIRED_FLAGS "-std=c++11") - set(CMAKE_REQUIRED_LIBRARIES "${additional_lib}") - set(CMAKE_REQUIRED_QUIET 1) - CHECK_CXX_SOURCE_COMPILES(" + include(CheckCXXSourceCompiles) + include(CMakePushCheckState) + cmake_push_check_state() + set(CMAKE_REQUIRED_FLAGS "-std=c++11") + set(CMAKE_REQUIRED_LIBRARIES "${additional_lib}") + set(CMAKE_REQUIRED_QUIET 1) + CHECK_CXX_SOURCE_COMPILES(" #include std::atomic x; int main() { - return std::atomic_fetch_add_explicit(&x, 1, std::memory_order_seq_cst); + return std::atomic_fetch_add_explicit(&x, 1, std::memory_order_seq_cst); } " ${varname}) - cmake_pop_check_state() + cmake_pop_check_state() endfunction(check_working_cxx_atomics) # First check if atomics work without the library. # If not, check if the library exists, and atomics work with it. check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB "") if(HAVE_CXX_ATOMICS_WITHOUT_LIB) - message(STATUS "Atomics provided by the C-library - yes") + message(STATUS "Atomics provided by the C-library - yes") else() - message(STATUS "Atomics provided by the C-library - no") - find_library(LIBATOMIC_LIBRARY NAMES atomic PATH_SUFFIXES lib) - if(LIBATOMIC_LIBRARY) - check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB "${LIBATOMIC_LIBRARY}") - if (HAVE_CXX_ATOMICS_WITH_LIB) - message(STATUS "Atomics provided by libatomic - yes") - else() - message(STATUS "Atomics provided by libatomic - no") - message(FATAL_ERROR "Compiler must support std::atomic!") - endif() - else() - message(FATAL_ERROR "Compiler appears to require libatomic, but cannot find it.") - endif() + message(STATUS "Atomics provided by the C-library - no") + find_library(LIBATOMIC_LIBRARY NAMES atomic PATH_SUFFIXES lib) + if(LIBATOMIC_LIBRARY) + check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB "${LIBATOMIC_LIBRARY}") + if (HAVE_CXX_ATOMICS_WITH_LIB) + message(STATUS "Atomics provided by libatomic - yes") + else() + message(STATUS "Atomics provided by libatomic - no") + message(FATAL_ERROR "Compiler must support std::atomic!") + endif() + else() + message(FATAL_ERROR "Compiler appears to require libatomic, but cannot find it.") + endif() endif() # Check availability of features which depend on library versions.