From 14763a8b316626d49fc3fe79fdf575a94c85b4de Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Sat, 1 Aug 2020 08:58:36 +0900 Subject: [PATCH] Fixed #905. Added compiler version cheking for atomic test for older compilers on cmake. --- CMakeLists.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f7d761a..f78e5576 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,8 +115,11 @@ IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND AND NOT "${MSGPACK_FUZZ_REGRESS OPTION (MSGPACK_GEN_COVERAGE "Enable running gcov to get a test coverage report." OFF) ENDIF () -INCLUDE (CheckCXXSourceCompiles) -CHECK_CXX_SOURCE_COMPILES (" + +IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.1) + INCLUDE (CheckCXXSourceCompiles) + CHECK_CXX_SOURCE_COMPILES (" #include int atomic_sub(int i) { return __gnu_cxx::__exchange_and_add(&i, -1) - 1; } int atomic_add(int i) { return __gnu_cxx::__exchange_and_add(&i, 1) + 1; } @@ -125,7 +128,11 @@ int main(int argc, char * argv[]) atomic_sub(1); atomic_add(1); } -" MSGPACK_ENABLE_GCC_CXX_ATOMIC) +" + MSGPACK_ENABLE_GCC_CXX_ATOMIC) + ENDIF () +ENDIF () + INCLUDE (Files.cmake)