7 changed files with 78 additions and 40 deletions
@ -0,0 +1,32 @@
|
||||
|
||||
include(CheckCXXSourceCompiles) |
||||
include(CompileCheck) |
||||
|
||||
set(_HAS_CXX11 0) |
||||
|
||||
function(enable_cxx11) |
||||
if(MSVC) |
||||
set(_HAS_CXX11 1 PARENT_SCOPE) |
||||
else() |
||||
add_cxxflag("-std=c++11") |
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE) |
||||
if(FLAG_FOUND OR NOT CMAKE_COMPILER_IS_GNUCXX) |
||||
set(_HAS_CXX11 1 PARENT_SCOPE) |
||||
endif() |
||||
endif() |
||||
endfunction(enable_cxx11) |
||||
|
||||
function(check_cxx11 CHECK RESULTVAR) |
||||
if(${_HAS_CXX11}) |
||||
string(REGEX REPLACE "[^a-zA-Z0-9_][^a-zA-Z0-9_]*" "-" check "${CHECK}") |
||||
set(file "${CMAKE_MODULE_PATH}/check-cxx11-${check}.cpp") |
||||
check_compile(result "${file}" "${CHECK}" "C++11 feature") |
||||
if("${result}" STREQUAL "") |
||||
set(${RESULTVAR} OFF PARENT_SCOPE) |
||||
else() |
||||
set(${RESULTVAR} ON PARENT_SCOPE) |
||||
endif() |
||||
else() |
||||
set(${RESULTVAR} OFF PARENT_SCOPE) |
||||
endif() |
||||
endfunction() |
||||
@ -0,0 +1,6 @@
|
||||
#include <codecvt> |
||||
|
||||
int main() { |
||||
std::codecvt_utf8_utf16<wchar_t> codecvt; |
||||
return 0; |
||||
} |
||||
@ -0,0 +1,6 @@
|
||||
#include <memory> |
||||
|
||||
int main() { |
||||
std::unique_ptr<char> ptr(new char); |
||||
return !ptr; |
||||
} |
||||
Loading…
Reference in new issue