diff --git a/cmake/ftxui_fuzzer.cmake b/cmake/ftxui_fuzzer.cmake index 8d92f7bfb58dad283caa566798430f0128111829..cb77554ced2f6b451bfcad83bb8781c5fb9e282b 100644 --- a/cmake/ftxui_fuzzer.cmake +++ b/cmake/ftxui_fuzzer.cmake @@ -14,10 +14,7 @@ function(fuzz source) target_link_libraries(${name} PRIVATE component) target_compile_options(${name} PRIVATE -fsanitize=fuzzer,address) target_link_libraries(${name} PRIVATE -fsanitize=fuzzer,address) - set_target_properties(${name} PROPERTIES - CXX_STANDARD 20 - CXX_EXTENSIONS OFF - ) + target_compile_features(${name} PRIVATE cxx_std_17) endfunction(fuzz) fuzz(terminal_input_parser_test_fuzzer) diff --git a/cmake/ftxui_set_options.cmake b/cmake/ftxui_set_options.cmake index 8b95dab210e19f7d8343b8190f49f7a41dfa4cbd..40a88e1e3c9c23a1facd4c83dfb2e82af47baace 100644 --- a/cmake/ftxui_set_options.cmake +++ b/cmake/ftxui_set_options.cmake @@ -43,19 +43,7 @@ function(ftxui_set_options library) $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> ) - # Play nicely if we are being consumed by another project - # and use their CMAKE_CXX_STANDARD. Otherwise, fall back to 17 - # C++17 is used. We require fold expression at least. - if (DEFINED CMAKE_CXX_STANDARD) - set(CXX_STANDARD ${CMAKE_CXX_STANDARD}) - else() - set(CXX_STANDARD 17) - endif() - - set_target_properties(${library} PROPERTIES - CXX_STANDARD ${CXX_STANDARD} - CXX_EXTENSIONS OFF - ) + target_compile_features(${library} PUBLIC cxx_std_17) # Force Microsoft Visual Studio to decode sources files in UTF-8. This applies # to the library and the library users. diff --git a/cmake/ftxui_test.cmake b/cmake/ftxui_test.cmake index fbbbbfa2b525fc8002c98dcb4cdccba71e1ce8ca..88eb3c8cae62144c20410cd9e79a34495a018b9c 100644 --- a/cmake/ftxui_test.cmake +++ b/cmake/ftxui_test.cmake @@ -57,10 +57,7 @@ target_link_libraries(ftxui-tests target_include_directories(ftxui-tests PRIVATE src ) -set_target_properties(ftxui-tests PROPERTIES - CXX_STANDARD 20 - CXX_EXTENSIONS OFF -) +target_compile_features(ftxui-tests PRIVATE cxx_std_20) if (FTXUI_MICROSOFT_TERMINAL_FALLBACK) target_compile_definitions(ftxui-tests diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 4660a6b495f0e8d6c921fae11e5ce8db5f5336d8..330559fc6bc575ccb875483d62493b9a01d81c04 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -8,9 +8,7 @@ function(example name) target_link_libraries(ftxui_example_${name} PUBLIC ${DIRECTORY_LIB}) file(RELATIVE_PATH dir ${EXAMPLES_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) set_property(GLOBAL APPEND PROPERTY FTXUI::EXAMPLES ${dir}/${name}) - set_target_properties(ftxui_example_${name} PROPERTIES - CXX_STANDARD 17 - ) + target_compile_features(ftxui_example_${name} PRIVATE cxx_std_17) endfunction(example) add_subdirectory(component)