1- cmake_minimum_required (VERSION 3.1 )
1+ cmake_minimum_required (VERSION 2.8.10 )
22project (brpc C CXX)
33
4- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
5- #message(FATAL_ERROR "GCC is too old, please install a newer version supporting C++11")
4+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
5+ # require at least gcc 4.8
6+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
7+ message (FATAL_ERROR "GCC is too old, please install a newer version supporting C++11" )
8+ endif ()
9+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
10+ # require at least clang 3.3
11+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3)
12+ message (FATAL_ERROR "Clang is too old, please install a newer version supporting C++11" )
13+ endif ()
14+ else ()
15+ message (WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC." )
616endif ()
717
818option (WITH_GLOG "With glog" OFF )
919option (BRPC_DEBUG "With debug symbol" ON )
10- option (BUILD_EXAMPLE "Whether building examples" OFF )
20+ option (BUILD_EXAMPLE "Whether building examples" ON )
1121option (BUILD_UNIT_TESTS "Whether building unit tests" OFF )
1222
1323if (WITH_GLOG)
@@ -30,8 +40,7 @@ execute_process(
3040 COMMAND bash -c "grep \" namespace [_A-Za-z0-9]\\ + {\" ${GFLAGS_INCLUDE_PATH} /gflags/gflags_declare.h | head -1 | awk '{print $2}' | tr -d '\n '"
3141 OUTPUT_VARIABLE GFLAGS_NS
3242)
33- # STREQUAL not works. Use MATCHES as workaround
34- if (${GFLAGS_NS} MATCHES ".*GFLAGS_NAMESPACE.*" )
43+ if (${GFLAGS_NS} STREQUAL "GFLAGS_NAMESPACE" )
3544 execute_process (
3645 COMMAND bash -c "grep \" #define GFLAGS_NAMESPACE [_A-Za-z0-9]\\ +\" ${GFLAGS_INCLUDE_PATH} /gflags/gflags_declare.h | head -1 | awk '{print $3}' | tr -d '\n '"
3746 OUTPUT_VARIABLE GFLAGS_NS
@@ -63,15 +72,6 @@ if(NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))
6372 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-aligned-new" )
6473endif ()
6574
66- #find_package(Threads REQUIRED)
67-
68- #find_path(GFLAGS_HEADER NAMES gflags/gflags.h)
69- #find_library(GFLAGS_LIB NAMES gflags)
70- #find_package(gflags REQUIRED)
71-
72- #find_path(THREADS_HEADER NAMES pthread.h)
73- #find_library(THREADS_LIB NAMES pthread)
74-
7575find_path (PROTOBUF_HEADER NAMES google/protobuf/stubs/common.h)
7676find_library (PROTOBUF_LIB NAMES protobuf)
7777
@@ -91,7 +91,6 @@ include_directories(
9191 ${PROTOBUF_HEADER}
9292 ${LEVELDB_HEADER}
9393 ${THREAD_HEADER}
94- #${THREADS_HEADER}
9594 )
9695
9796# for *.so
0 commit comments