diff --git a/CMakeLists.txt b/CMakeLists.txt index 33b762edbe62d0c7adb622f1d4c3a6da01da2e33..3159722c543f7c58d882ba6f9f19b489847e9fb8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,10 +10,6 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -# C++20, at least we try -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - # Pthread ftw set(THREADS_PREFER_PTHREAD_FLAG ON) @@ -76,6 +72,23 @@ target_precompile_headers(Vivy PRIVATE <QIcon> ) +# Set Vivy's needed C++ features +target_compile_features(Vivy PRIVATE + cxx_std_20 + cxx_auto_type + cxx_deleted_functions + cxx_explicit_conversions + cxx_final + cxx_inline_namespaces + cxx_lambdas + cxx_noexcept + cxx_nonstatic_member_init + cxx_nullptr + cxx_override + cxx_range_for + cxx_strong_enums +) + # More options and warnings target_compile_options(Vivy PRIVATE -Wall -Wextra -Wshadow -pedantic @@ -91,7 +104,9 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") -Wno-unused-private-field # Skip the unused private fields for now -fopenmp # We do OpenMP here ) - target_link_libraries(Vivy PRIVATE -fopenmp) + target_link_libraries(Vivy PRIVATE + -fopenmp + ) elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") target_compile_options(Vivy PRIVATE -fopenmp) target_link_libraries(Vivy PRIVATE -fopenmp)