mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 13:38:14 +08:00 
			
		
		
		
	CMake: use compile_features to set min C++ standard (#647)
This commit is contained in:
		@@ -14,10 +14,7 @@ function(fuzz source)
 | 
				
			|||||||
  target_link_libraries(${name} PRIVATE component)
 | 
					  target_link_libraries(${name} PRIVATE component)
 | 
				
			||||||
  target_compile_options(${name} PRIVATE -fsanitize=fuzzer,address)
 | 
					  target_compile_options(${name} PRIVATE -fsanitize=fuzzer,address)
 | 
				
			||||||
  target_link_libraries(${name} PRIVATE -fsanitize=fuzzer,address)
 | 
					  target_link_libraries(${name} PRIVATE -fsanitize=fuzzer,address)
 | 
				
			||||||
  set_target_properties(${name} PROPERTIES
 | 
					  target_compile_features(${name} PRIVATE cxx_std_17)
 | 
				
			||||||
    CXX_STANDARD 20
 | 
					 | 
				
			||||||
    CXX_EXTENSIONS OFF
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
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,10 +57,7 @@ target_link_libraries(ftxui-tests
 | 
				
			|||||||
target_include_directories(ftxui-tests
 | 
					target_include_directories(ftxui-tests
 | 
				
			||||||
  PRIVATE src
 | 
					  PRIVATE src
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
set_target_properties(ftxui-tests PROPERTIES
 | 
					target_compile_features(ftxui-tests PRIVATE cxx_std_20)
 | 
				
			||||||
  CXX_STANDARD 20
 | 
					 | 
				
			||||||
  CXX_EXTENSIONS OFF
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (FTXUI_MICROSOFT_TERMINAL_FALLBACK)
 | 
					if (FTXUI_MICROSOFT_TERMINAL_FALLBACK)
 | 
				
			||||||
  target_compile_definitions(ftxui-tests
 | 
					  target_compile_definitions(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 17
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
endfunction(example)
 | 
					endfunction(example)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(component)
 | 
					add_subdirectory(component)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user