mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-28 08:31:25 +00:00 
			
		
		
		
	 374101fd74
			
		
	
	374101fd74
	
	
	
		
			
			* cmake: Factor out compiler flag function from ggml llama.cpps's build requires it, too, and we may want to make use of it without add_subdirectory(ggml). * cmake: Enable building against system ggml This facilitates package maintenance for Linux distributions, where the libggml library most likely will be shipped as an individual package upon which a llama.cpp package depends.
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| include("ggml/cmake/common.cmake")
 | |
| 
 | |
| function(llama_add_compile_flags)
 | |
|     if (LLAMA_FATAL_WARNINGS)
 | |
|         if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
 | |
|             list(APPEND C_FLAGS   -Werror)
 | |
|             list(APPEND CXX_FLAGS -Werror)
 | |
|         elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
 | |
|             add_compile_options(/WX)
 | |
|         endif()
 | |
|     endif()
 | |
| 
 | |
|     if (LLAMA_ALL_WARNINGS)
 | |
|         if (NOT MSVC)
 | |
|             list(APPEND C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes
 | |
|                                 -Werror=implicit-int -Werror=implicit-function-declaration)
 | |
| 
 | |
|             list(APPEND CXX_FLAGS -Wmissing-declarations -Wmissing-noreturn)
 | |
| 
 | |
|             list(APPEND WARNING_FLAGS -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function)
 | |
| 
 | |
|             list(APPEND C_FLAGS   ${WARNING_FLAGS})
 | |
|             list(APPEND CXX_FLAGS ${WARNING_FLAGS})
 | |
| 
 | |
|             ggml_get_flags(${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})
 | |
| 
 | |
|             add_compile_options("$<$<COMPILE_LANGUAGE:C>:${C_FLAGS};${GF_C_FLAGS}>"
 | |
|                                 "$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAGS};${GF_CXX_FLAGS}>")
 | |
|         else()
 | |
|             # todo : msvc
 | |
|             set(C_FLAGS   "" PARENT_SCOPE)
 | |
|             set(CXX_FLAGS "" PARENT_SCOPE)
 | |
|         endif()
 | |
|     endif()
 | |
| endfunction()
 |