]> git.proxmox.com Git - ceph.git/blame - ceph/src/fmt/support/cmake/cxx14.cmake
bump version to 18.2.2-pve1
[ceph.git] / ceph / src / fmt / support / cmake / cxx14.cmake
CommitLineData
11fdf7f2
TL
1# C++14 feature support detection
2
11fdf7f2 3include(CheckCXXCompilerFlag)
1e59de90
TL
4function (fmt_check_cxx_compiler_flag flag result)
5 if (NOT MSVC)
6 check_cxx_compiler_flag("${flag}" ${result})
7 endif ()
8endfunction ()
11fdf7f2 9
9f95a23c 10if (NOT CMAKE_CXX_STANDARD)
11fdf7f2
TL
11 set(CMAKE_CXX_STANDARD 11)
12endif()
9f95a23c 13message(STATUS "CXX_STANDARD: ${CMAKE_CXX_STANDARD}")
11fdf7f2
TL
14
15if (CMAKE_CXX_STANDARD EQUAL 20)
1e59de90
TL
16 fmt_check_cxx_compiler_flag(-std=c++20 has_std_20_flag)
17 fmt_check_cxx_compiler_flag(-std=c++2a has_std_2a_flag)
11fdf7f2
TL
18
19 if (has_std_20_flag)
20 set(CXX_STANDARD_FLAG -std=c++20)
21 elseif (has_std_2a_flag)
22 set(CXX_STANDARD_FLAG -std=c++2a)
23 endif ()
1e59de90 24
11fdf7f2 25elseif (CMAKE_CXX_STANDARD EQUAL 17)
1e59de90
TL
26 fmt_check_cxx_compiler_flag(-std=c++17 has_std_17_flag)
27 fmt_check_cxx_compiler_flag(-std=c++1z has_std_1z_flag)
11fdf7f2
TL
28
29 if (has_std_17_flag)
30 set(CXX_STANDARD_FLAG -std=c++17)
31 elseif (has_std_1z_flag)
32 set(CXX_STANDARD_FLAG -std=c++1z)
33 endif ()
1e59de90 34
11fdf7f2 35elseif (CMAKE_CXX_STANDARD EQUAL 14)
1e59de90
TL
36 fmt_check_cxx_compiler_flag(-std=c++14 has_std_14_flag)
37 fmt_check_cxx_compiler_flag(-std=c++1y has_std_1y_flag)
11fdf7f2
TL
38
39 if (has_std_14_flag)
40 set(CXX_STANDARD_FLAG -std=c++14)
41 elseif (has_std_1y_flag)
42 set(CXX_STANDARD_FLAG -std=c++1y)
43 endif ()
1e59de90 44
11fdf7f2 45elseif (CMAKE_CXX_STANDARD EQUAL 11)
1e59de90
TL
46 fmt_check_cxx_compiler_flag(-std=c++11 has_std_11_flag)
47 fmt_check_cxx_compiler_flag(-std=c++0x has_std_0x_flag)
11fdf7f2
TL
48
49 if (has_std_11_flag)
50 set(CXX_STANDARD_FLAG -std=c++11)
51 elseif (has_std_0x_flag)
52 set(CXX_STANDARD_FLAG -std=c++0x)
53 endif ()
54endif ()