mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-03 09:22:01 +00:00 
			
		
		
		
	* 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()
 |