|
8 | 8 | #
|
9 | 9 | ###############################################################################
|
10 | 10 |
|
11 |
| -cmake_minimum_required(VERSION 3.3 FATAL_ERROR) |
| 11 | +cmake_minimum_required(VERSION 3.8 FATAL_ERROR) |
12 | 12 |
|
13 | 13 | # In-source builds are disabled.
|
14 | 14 | if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
|
@@ -88,13 +88,22 @@ endif()
|
88 | 88 |
|
89 | 89 | # Check for C++ standard to use
|
90 | 90 | 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) |
92 | 92 | set(CMAKE_CXX_STANDARD 17)
|
93 |
| -elseif(cxx_std_14 IN_LIST known_features) |
| 93 | +elseif (cxx_std_14 IN_LIST known_features) |
94 | 94 | set(CMAKE_CXX_STANDARD 14)
|
95 | 95 | else() # minimum required standard
|
96 | 96 | set(CMAKE_CXX_STANDARD 11)
|
97 | 97 | 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 | + |
98 | 107 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
99 | 108 | set(CMAKE_CXX_EXTENSIONS OFF)
|
100 | 109 |
|
@@ -131,9 +140,6 @@ if (CYGWIN)
|
131 | 140 | endif()
|
132 | 141 |
|
133 | 142 | if (UNIX)
|
134 |
| - # Hack for old cmake / compiler in Ubuntu Trusty. |
135 |
| - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11") |
136 |
| - |
137 | 143 | if (NOT ANDROID)
|
138 | 144 | set(LIB_pthread pthread)
|
139 | 145 | endif()
|
|
0 commit comments