set(LLAMA_STANDALONE OFF)
endif()
+option(LLAMA_USE_SYSTEM_GGML "Use system libggml" OFF)
+
if (EMSCRIPTEN)
set(BUILD_SHARED_LIBS_DEFAULT OFF)
# 3rd-party
#
-if (NOT TARGET ggml)
+if (LLAMA_USE_SYSTEM_GGML)
+ message(STATUS "Using system-provided libggml, skipping ggml build")
+ find_package(ggml REQUIRED)
+ add_library(ggml ALIAS ggml::ggml)
+endif()
+
+if (NOT TARGET ggml AND NOT LLAMA_USE_SYSTEM_GGML)
add_subdirectory(ggml)
# ... otherwise assume ggml is added by a parent CMakeLists.txt
endif()
+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")
--- /dev/null
+function(ggml_get_flags CCID CCVER)
+ set(C_FLAGS "")
+ set(CXX_FLAGS "")
+
+ if (CCID MATCHES "Clang")
+ set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
+ set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
+
+ if (
+ (CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
+ (CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
+ )
+ list(APPEND C_FLAGS -Wdouble-promotion)
+ endif()
+ elseif (CCID STREQUAL "GNU")
+ set(C_FLAGS -Wdouble-promotion)
+ set(CXX_FLAGS -Wno-array-bounds)
+
+ if (CCVER VERSION_GREATER_EQUAL 8.1.0)
+ list(APPEND CXX_FLAGS -Wextra-semi)
+ endif()
+ endif()
+
+ set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
+ set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
+endfunction()
include(CheckCXXCompilerFlag)
+include("../cmake/common.cmake")
add_compile_definitions(GGML_SCHED_MAX_COPIES=${GGML_SCHED_MAX_COPIES})
endif()
endif()
-function(ggml_get_flags CCID CCVER)
- set(C_FLAGS "")
- set(CXX_FLAGS "")
-
- if (CCID MATCHES "Clang")
- set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
- set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
-
- if (
- (CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
- (CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
- )
- list(APPEND C_FLAGS -Wdouble-promotion)
- endif()
- elseif (CCID STREQUAL "GNU")
- set(C_FLAGS -Wdouble-promotion)
- set(CXX_FLAGS -Wno-array-bounds)
-
- if (CCVER VERSION_GREATER_EQUAL 8.1.0)
- list(APPEND CXX_FLAGS -Wextra-semi)
- endif()
- endif()
-
- set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
- set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
-endfunction()
-
if (GGML_FATAL_WARNINGS)
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
list(APPEND C_FLAGS -Werror)