Преглед изворни кода

Fix gh-2795, noreturn specific to newer compilers

Renato Golin пре 13 година
родитељ
комит
a7860842f1
2 измењених фајлова са 16 додато и 1 уклоњено
  1. 11 0
      cmake_modules/commonSetup.cmake
  2. 5 1
      tools/start-stop-daemon/CMakeLists.txt

+ 11 - 0
cmake_modules/commonSetup.cmake

@@ -155,6 +155,9 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
      set (CMAKE_COMPILER_IS_CLANGXX 1)
     endif()
+    if ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+     set (CMAKE_COMPILER_IS_CLANG 1)
+    endif()
     if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
       message ("${CMAKE_CXX_COMPILER_ID}")
       SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frtti -fPIC -fmessage-length=0 -Wformat -Wformat-security -Wformat-nonliteral -pthread")
@@ -175,6 +178,14 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     endif ()
   endif ()
 
+  if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
+    execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE CMAKE_C_COMPILER_VERSION)
+  endif ()
+
+  if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE CMAKE_CXX_COMPILER_VERSION)
+  endif ()
+
   macro(HPCC_ADD_EXECUTABLE target)
     add_executable(${target} ${ARGN})
   endmacro(HPCC_ADD_EXECUTABLE target)

+ 5 - 1
tools/start-stop-daemon/CMakeLists.txt

@@ -17,7 +17,11 @@
 
 project(start-stop-daemon)
 
-add_definitions( -Wno-noreturn )
+if (CMAKE_COMPILER_IS_GNUCC)
+  if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.1)
+    add_definitions( -Wno-noreturn )
+  endif ()
+endif ()
 
 set( SRC start-stop-daemon.c )
 set( HEADER macros.h )