Skip to content

Commit 5e62d02

Browse files
zdenopstweil
authored andcommitted
cmake: using c++ standard for g++
1 parent b9a31ec commit 5e62d02

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

CMakeLists.txt

+12-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
###############################################################################
1010

11-
cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
11+
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
1212

1313
# In-source builds are disabled.
1414
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
@@ -88,13 +88,22 @@ endif()
8888

8989
# Check for C++ standard to use
9090
get_property(known_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES)
91-
if(cxx_std_17 IN_LIST known_features)
91+
if (cxx_std_17 IN_LIST known_features)
9292
set(CMAKE_CXX_STANDARD 17)
93-
elseif(cxx_std_14 IN_LIST known_features)
93+
elseif (cxx_std_14 IN_LIST known_features)
9494
set(CMAKE_CXX_STANDARD 14)
9595
else() # minimum required standard
9696
set(CMAKE_CXX_STANDARD 11)
9797
endif()
98+
99+
# workaround for bad info in CMAKE_CXX_KNOWN_FEATURES for g++ 4.8.4
100+
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
101+
set(CMAKE_CXX_STANDARD 11)
102+
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL "6.1.0")
103+
set(CMAKE_CXX_STANDARD 14)
104+
endif()
105+
endif()
106+
98107
set(CMAKE_CXX_STANDARD_REQUIRED ON)
99108
set(CMAKE_CXX_EXTENSIONS OFF)
100109

@@ -131,9 +140,6 @@ if (CYGWIN)
131140
endif()
132141

133142
if (UNIX)
134-
# Hack for old cmake / compiler in Ubuntu Trusty.
135-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11")
136-
137143
if (NOT ANDROID)
138144
set(LIB_pthread pthread)
139145
endif()

0 commit comments

Comments
 (0)