mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	cmake : make CUDA flags more similar to the Makefile (#3420)
* cmake : fix misuse of cxx_flags * cmake : make CUDA flags more similar to the Makefile * cmake : fix MSVC build
This commit is contained in:
		| @@ -343,8 +343,9 @@ if (LLAMA_MPI) | |||||||
|         set(GGML_SOURCES_MPI ggml-mpi.c ggml-mpi.h) |         set(GGML_SOURCES_MPI ggml-mpi.c ggml-mpi.h) | ||||||
|         add_compile_definitions(GGML_USE_MPI) |         add_compile_definitions(GGML_USE_MPI) | ||||||
|         add_compile_definitions(${MPI_C_COMPILE_DEFINITIONS}) |         add_compile_definitions(${MPI_C_COMPILE_DEFINITIONS}) | ||||||
|         set(cxx_flags ${cxx_flags} -Wno-cast-qual) |         if (NOT MSVC) | ||||||
|         set(c_flags   ${c_flags}   -Wno-cast-qual) |             add_compile_options(-Wno-cast-qual) | ||||||
|  |         endif() | ||||||
|         set(LLAMA_EXTRA_LIBS     ${LLAMA_EXTRA_LIBS}     ${MPI_C_LIBRARIES}) |         set(LLAMA_EXTRA_LIBS     ${LLAMA_EXTRA_LIBS}     ${MPI_C_LIBRARIES}) | ||||||
|         set(LLAMA_EXTRA_INCLUDES ${LLAMA_EXTRA_INCLUDES} ${MPI_C_INCLUDE_DIRS}) |         set(LLAMA_EXTRA_INCLUDES ${LLAMA_EXTRA_INCLUDES} ${MPI_C_INCLUDE_DIRS}) | ||||||
|         # Even if you're only using the C header, C++ programs may bring in MPI |         # Even if you're only using the C header, C++ programs may bring in MPI | ||||||
| @@ -418,10 +419,11 @@ if (LLAMA_ALL_WARNINGS) | |||||||
|         set(c_flags -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int |         set(c_flags -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int | ||||||
|             -Werror=implicit-function-declaration) |             -Werror=implicit-function-declaration) | ||||||
|         set(cxx_flags -Wmissing-declarations -Wmissing-noreturn) |         set(cxx_flags -Wmissing-declarations -Wmissing-noreturn) | ||||||
|  |         set(host_cxx_flags "") | ||||||
|  |  | ||||||
|         if (CMAKE_C_COMPILER_ID MATCHES "Clang") |         if (CMAKE_C_COMPILER_ID MATCHES "Clang") | ||||||
|             set(warning_flags ${warning_flags} -Wunreachable-code-break -Wunreachable-code-return) |             set(warning_flags ${warning_flags} -Wunreachable-code-break -Wunreachable-code-return) | ||||||
|             set(cxx_flags ${cxx_flags} -Wmissing-prototypes -Wextra-semi) |             set(host_cxx_flags ${host_cxx_flags} -Wmissing-prototypes -Wextra-semi) | ||||||
|  |  | ||||||
|             if ( |             if ( | ||||||
|                 (CMAKE_C_COMPILER_ID STREQUAL "Clang"      AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 3.8.0) OR |                 (CMAKE_C_COMPILER_ID STREQUAL "Clang"      AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 3.8.0) OR | ||||||
| @@ -431,27 +433,38 @@ if (LLAMA_ALL_WARNINGS) | |||||||
|             endif() |             endif() | ||||||
|         elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU") |         elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU") | ||||||
|             set(c_flags ${c_flags} -Wdouble-promotion) |             set(c_flags ${c_flags} -Wdouble-promotion) | ||||||
|             set(cxx_flags ${cxx_flags} -Wno-array-bounds) |             set(host_cxx_flags ${host_cxx_flags} -Wno-array-bounds) | ||||||
|  |  | ||||||
|             if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.1.0) |             if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.1.0) | ||||||
|                 set(cxx_flags ${cxx_flags} -Wno-format-truncation) |                 set(host_cxx_flags ${host_cxx_flags} -Wno-format-truncation) | ||||||
|             endif() |             endif() | ||||||
|             if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.1.0) |             if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.1.0) | ||||||
|                 set(cxx_flags ${cxx_flags} -Wextra-semi) |                 set(host_cxx_flags ${host_cxx_flags} -Wextra-semi) | ||||||
|             endif() |             endif() | ||||||
|         endif() |         endif() | ||||||
|     else() |     else() | ||||||
|         # todo : msvc |         # todo : msvc | ||||||
|     endif() |     endif() | ||||||
|  |  | ||||||
|     add_compile_options( |     set(c_flags   ${c_flags}   ${warning_flags}) | ||||||
|             ${warning_flags} |     set(cxx_flags ${cxx_flags} ${warning_flags}) | ||||||
|             "$<$<COMPILE_LANGUAGE:C>:${c_flags}>" |     add_compile_options("$<$<COMPILE_LANGUAGE:C>:${c_flags}>" | ||||||
|             "$<$<COMPILE_LANGUAGE:CXX>:${cxx_flags}>" |                         "$<$<COMPILE_LANGUAGE:CXX>:${cxx_flags} ${host_cxx_flags}>") | ||||||
|     ) |  | ||||||
|  |  | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | if (NOT MSVC) | ||||||
|  |     set(cuda_flags -Wno-pedantic) | ||||||
|  | endif() | ||||||
|  | set(cuda_flags ${cxx_flags} -use_fast_math ${cuda_flags}) | ||||||
|  |  | ||||||
|  | list(JOIN host_cxx_flags " " cuda_host_flags)  # pass host compiler flags as a single argument | ||||||
|  | if (NOT cuda_host_flags STREQUAL "") | ||||||
|  |     set(cuda_flags ${cuda_flags} -Xcompiler ${cuda_host_flags}) | ||||||
|  | endif() | ||||||
|  |  | ||||||
|  | add_compile_options("$<$<COMPILE_LANGUAGE:CUDA>:${cuda_flags}>") | ||||||
|  |  | ||||||
| if (WIN32) | if (WIN32) | ||||||
|     add_compile_definitions(_CRT_SECURE_NO_WARNINGS) |     add_compile_definitions(_CRT_SECURE_NO_WARNINGS) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 cebtenzzre
					cebtenzzre