27 lines
		
	
	
		
			760 B
		
	
	
	
		
			CMake
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			760 B
		
	
	
	
		
			CMake
		
	
	
	
| include(CheckLinkerFlag OPTIONAL)
 | |
| 
 | |
| if (COMMAND check_linker_flag)
 | |
|   macro(llvm_check_linker_flag)
 | |
|     check_linker_flag(${ARGN})
 | |
|   endmacro()
 | |
| else()
 | |
|   # Until the minimum CMAKE version is 3.18
 | |
| 
 | |
|   include(CheckCXXCompilerFlag)
 | |
|   include(CMakePushCheckState)
 | |
| 
 | |
|   # cmake builtin compatible, except we assume lang is C or CXX
 | |
|   function(llvm_check_linker_flag lang flag out_var)
 | |
|     cmake_push_check_state()
 | |
|     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${flag}")
 | |
|     if("${lang}" STREQUAL "C")
 | |
|       check_c_compiler_flag("" ${out_var})
 | |
|     elseif("${lang}" STREQUAL "CXX")
 | |
|       check_cxx_compiler_flag("" ${out_var})
 | |
|     else()
 | |
|       message(FATAL_ERROR "\"${lang}\" is not C or CXX")
 | |
|     endif()
 | |
|     cmake_pop_check_state()
 | |
|   endfunction()
 | |
| endif()
 |