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