[Groonga-commit] groonga/groonga at 9180c4a [master] cmake: check compiler flag availability

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Mar 9 23:59:44 JST 2014


Kouhei Sutou	2014-03-09 23:59:44 +0900 (Sun, 09 Mar 2014)

  New Revision: 9180c4a2a6db82261f77c62b9e48246ee2aa0e6f
  https://github.com/groonga/groonga/commit/9180c4a2a6db82261f77c62b9e48246ee2aa0e6f

  Message:
    cmake: check compiler flag availability

  Modified files:
    CMakeLists.txt

  Modified: CMakeLists.txt (+50 -10)
===================================================================
--- CMakeLists.txt    2014-03-09 23:36:25 +0900 (ca18733)
+++ CMakeLists.txt    2014-03-09 23:59:44 +0900 (5a9f5a7)
@@ -35,6 +35,8 @@ string(REGEX REPLACE "(^.*=|\n)" "" GRN_VERSION "${GRN_VERSION}")
 include(CheckIncludeFile)
 include(CheckFunctionExists)
 include(CheckLibraryExists)
+include(CheckCCompilerFlag)
+include(CheckCXXCompilerFlag)
 include(FindPkgConfig)
 include(${CMAKE_CURRENT_SOURCE_DIR}/build/cmake_modules/ReadFileList.cmake)
 
@@ -108,17 +110,55 @@ set(GRN_RELATIVE_RUBY_SCRIPTS_DIR
 set(GRN_RUBY_SCRIPTS_DIR
   "${CMAKE_INSTALL_PREFIX}/${GRN_RELATIVE_RUBY_SCRIPTS_DIR}")
 
+macro(check_cflag flag)
+  set(checking_message "checking for C flag '${flag}' -")
+  check_c_compiler_flag(${flag} is_available)
+  if(${is_available})
+    message(STATUS "${checking_message} available")
+    set(GRN_C_COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS} ${flag}")
+  else()
+    message(STATUS "${checking_message} not available")
+  endif()
+endmacro()
+
+macro(check_cxxflag flag)
+  set(checking_message "checking for CXX flag '${flag}' - ")
+  check_cxx_compiler_flag(${flag} is_available)
+  if(${is_available})
+    message(STATUS "${checking_message} available")
+    set(GRN_C_COMPILE_FLAGS "${GRN_CXX_COMPILE_FLAGS} ${flag}")
+  else()
+    message(STATUS "${checking_message} not available")
+  endif()
+endmacro()
+
+macro(check_build_flag flag)
+  check_cflag(${flag})
+  check_cxxflag(${flag})
+endmacro()
+
 if(CMAKE_COMPILER_IS_GNUCXX)
-  set(GRN_NO_WARNING_COMPILE_FLAGS
-    "${GRN_NO_WARNING_COMPILE_FLAGS} -Wno-unused-but-set-variable")
-  set(GRN_NO_WARNING_COMPILE_FLAGS
-    "${GRN_NO_WARNING_COMPILE_FLAGS} -Wno-unused-parameter")
-  set(GRN_NO_WARNING_COMPILE_FLAGS
-    "${GRN_NO_WARNING_COMPILE_FLAGS} -Wno-sign-compare")
-  set(GRN_NO_WARNING_COMPILE_FLAGS
-    "${GRN_NO_WARNING_COMPILE_FLAGS} -Wno-missing-field-initializers")
-  set(GRN_C_COMPILE_FLAGS "${GRN_NO_WARNING_COMPILE_FLAGS} -Wno-pointer-sign")
-  set(GRN_CXX_COMPILE_FLAGS "${GRN_NO_WARNING_COMPILE_FLAGS} -fexceptions")
+  check_build_flag("-Wall")
+  check_build_flag("-Wextra")
+  check_build_flag("-Wno-unused-but-set-variable")
+  check_build_flag("-Wno-unused-parameter")
+  check_build_flag("-Wno-sign-compare")
+  check_cflag("-Wno-pointer-sign")
+  check_build_flag("-Wno-missing-field-initializers")
+  check_build_flag("-Wformat=2")
+  check_build_flag("-Wstrict-aliasing=2")
+  check_build_flag("-fno-strict-aliasing")
+  check_build_flag("-Wdisabled-optimization")
+  check_build_flag("-Wfloat-equal")
+  check_build_flag("-Wpointer-arith")
+  check_cflag("-Wdeclaration-after-statement")
+  check_cflag("-Wbad-function-cast")
+  check_build_flag("-Wcast-align")
+  check_build_flag("-Wredundant-decls")
+  check_build_flag("-Wwrite-strings")
+  check_cxxflag("-fexceptions")
+  check_cxxflag("-fimplicit-templates")
+  check_build_flag("-Wno-clobbered")
 endif()
 
 option(GRN_WITH_DEBUG "enable debug build." OFF)
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index