Require CMake 3.10 and use CMAKE_CXX_STANDARD

Removes the need to add -std= flags manually. CMake 3.10 is available
in Ubuntu 18.04, which is the oldest LTS version we support.
This commit is contained in:
Léo Lam 2019-05-04 23:54:25 +02:00
parent ab9ece9bca
commit 9133e8f1be
3 changed files with 5 additions and 16 deletions

View File

@ -1,7 +1,7 @@
######################################## ########################################
# General setup # General setup
# #
cmake_minimum_required(VERSION 3.5.0) cmake_minimum_required(VERSION 3.10)
set(CMAKE_OSX_ARCHITECTURES "x86_64") set(CMAKE_OSX_ARCHITECTURES "x86_64")
# Minimum OS X version. # Minimum OS X version.
# This is inserted into the Info.plist as well. # This is inserted into the Info.plist as well.

View File

@ -60,6 +60,7 @@ android {
externalNativeBuild { externalNativeBuild {
cmake { cmake {
path "../../../CMakeLists.txt" path "../../../CMakeLists.txt"
version "3.10.2"
} }
} }

View File

@ -9,21 +9,9 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_STANDARD 17)
# enable the latest C++ standard feature set, set(CMAKE_CXX_STANDARD_REQUIRED ON)
# and also disable MSVC specific extensions set(CMAKE_CXX_EXTENSIONS OFF)
# to be even more standards compliant.
check_and_add_flag(CPPLATEST /std:c++latest)
check_and_add_flag(STANDARD_COMPLIANCE /permissive-)
else()
# Enable C++17
# CMAKE_CXX_STANDARD cannot be used because it requires cmake 3.8+.
check_and_add_flag(CXX17 -std=c++17)
if(NOT FLAG_CXX_CXX17)
# Fall back to -std=c++1z
check_and_add_flag(CXX1Z -std=c++1z)
endif()
endif()
# These aren't actually needed for C11/C++11 # These aren't actually needed for C11/C++11
# but some dependencies require them (LLVM, libav). # but some dependencies require them (LLVM, libav).