mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-26 04:31:34 +08:00
CMake: use compile_features to set min C++ standard (#647)
This commit is contained in:
parent
f74c5322bd
commit
6ce88c25e5
@ -10,18 +10,11 @@ function(fuzz name)
|
|||||||
add_executable(${name}
|
add_executable(${name}
|
||||||
src/ftxui/component/${name}.cpp
|
src/ftxui/component/${name}.cpp
|
||||||
)
|
)
|
||||||
target_include_directories(${name}
|
target_include_directories(${name} PRIVATE src)
|
||||||
PRIVATE src
|
target_link_libraries(${name} PRIVATE component)
|
||||||
)
|
target_compile_options(${name} PRIVATE -fsanitize=fuzzer,address)
|
||||||
target_link_libraries(${name}
|
target_link_libraries(${name} PRIVATE -fsanitize=fuzzer,address)
|
||||||
PRIVATE component
|
target_compile_features(${name} PRIVATE cxx_std_17)
|
||||||
)
|
|
||||||
target_compile_options(${name}
|
|
||||||
PRIVATE -fsanitize=fuzzer,address
|
|
||||||
)
|
|
||||||
target_link_libraries(${name}
|
|
||||||
PRIVATE -fsanitize=fuzzer,address
|
|
||||||
)
|
|
||||||
endfunction(fuzz)
|
endfunction(fuzz)
|
||||||
|
|
||||||
fuzz(terminal_input_parser_test_fuzzer)
|
fuzz(terminal_input_parser_test_fuzzer)
|
||||||
|
@ -43,19 +43,7 @@ function(ftxui_set_options library)
|
|||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
)
|
)
|
||||||
|
|
||||||
# Play nicely if we are being consumed by another project
|
target_compile_features(${library} PUBLIC cxx_std_17)
|
||||||
# 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
|
|
||||||
)
|
|
||||||
|
|
||||||
# Force Microsoft Visual Studio to decode sources files in UTF-8. This applies
|
# Force Microsoft Visual Studio to decode sources files in UTF-8. This applies
|
||||||
# to the library and the library users.
|
# to the library and the library users.
|
||||||
|
@ -57,8 +57,12 @@ target_link_libraries(ftxui-tests
|
|||||||
target_include_directories(ftxui-tests
|
target_include_directories(ftxui-tests
|
||||||
PRIVATE src
|
PRIVATE src
|
||||||
)
|
)
|
||||||
ftxui_set_options(ftxui-tests)
|
target_compile_features(ftxui-tests PRIVATE cxx_std_20)
|
||||||
target_compile_features(ftxui-tests PUBLIC cxx_std_20)
|
|
||||||
|
if (FTXUI_MICROSOFT_TERMINAL_FALLBACK)
|
||||||
|
target_compile_definitions(ftxui-tests
|
||||||
|
PRIVATE "FTXUI_MICROSOFT_TERMINAL_FALLBACK")
|
||||||
|
endif()
|
||||||
|
|
||||||
include(GoogleTest)
|
include(GoogleTest)
|
||||||
gtest_discover_tests(ftxui-tests
|
gtest_discover_tests(ftxui-tests
|
||||||
|
@ -8,9 +8,7 @@ function(example name)
|
|||||||
target_link_libraries(ftxui_example_${name} PUBLIC ${DIRECTORY_LIB})
|
target_link_libraries(ftxui_example_${name} PUBLIC ${DIRECTORY_LIB})
|
||||||
file(RELATIVE_PATH dir ${EXAMPLES_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
file(RELATIVE_PATH dir ${EXAMPLES_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
set_property(GLOBAL APPEND PROPERTY FTXUI::EXAMPLES ${dir}/${name})
|
set_property(GLOBAL APPEND PROPERTY FTXUI::EXAMPLES ${dir}/${name})
|
||||||
set_target_properties(ftxui_example_${name} PROPERTIES
|
target_compile_features(ftxui_example_${name} PRIVATE cxx_std_17)
|
||||||
CXX_STANDARD 20
|
|
||||||
)
|
|
||||||
endfunction(example)
|
endfunction(example)
|
||||||
|
|
||||||
add_subdirectory(component)
|
add_subdirectory(component)
|
||||||
|
Loading…
Reference in New Issue
Block a user