51 lines
1.7 KiB
CMake
51 lines
1.7 KiB
CMake
# Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
if(MSVC)
|
|
|
|
# Support For C++11/14/17 Features (Modern C++)
|
|
# https://msdn.microsoft.com/en-us/library/hh567368.aspx
|
|
# MSVC_VERSION:
|
|
# https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html
|
|
|
|
if(NOT (MSVC_VERSION LESS 1600))
|
|
message(STATUS "Visual Studio >= 2010, MSVC >= 10.0")
|
|
else()
|
|
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
|
|
endif()
|
|
|
|
else()
|
|
|
|
set(CXX_FLAGS_EXTRA "")
|
|
|
|
include(CheckCXXCompilerFlag)
|
|
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
|
if(COMPILER_SUPPORTS_CXX11)
|
|
set(CXX_FLAGS_EXTRA "-std=c++11")
|
|
message(STATUS "Using flag -std=c++11")
|
|
elseif(COMPILER_SUPPORTS_CXX0X)
|
|
set(CXX_FLAGS_EXTRA "-std=c++0x")
|
|
message(STATUS "Using flag -std=c++0x")
|
|
else()
|
|
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
|
|
endif()
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAGS_EXTRA}")
|
|
|
|
# Ensure access this in sub directories
|
|
set(CXX_FLAGS_EXTRA "${CXX_FLAGS_EXTRA}" CACHE STRING "Value of the extra cxx flags.")
|
|
|
|
endif()
|