Skip to content

Commit a02c50a

Browse files
committed
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).
1 parent 2c9f833 commit a02c50a

File tree

3 files changed

+29
-27
lines changed

3 files changed

+29
-27
lines changed

cmake/common.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include("ggml/cmake/common.cmake")
2+
13
function(llama_add_compile_flags)
24
if (LLAMA_FATAL_WARNINGS)
35
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")

ggml/cmake/common.cmake

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
function(ggml_get_flags CCID CCVER)
2+
set(C_FLAGS "")
3+
set(CXX_FLAGS "")
4+
5+
if (CCID MATCHES "Clang")
6+
set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
7+
set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
8+
9+
if (
10+
(CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
11+
(CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
12+
)
13+
list(APPEND C_FLAGS -Wdouble-promotion)
14+
endif()
15+
elseif (CCID STREQUAL "GNU")
16+
set(C_FLAGS -Wdouble-promotion)
17+
set(CXX_FLAGS -Wno-array-bounds)
18+
19+
if (CCVER VERSION_GREATER_EQUAL 8.1.0)
20+
list(APPEND CXX_FLAGS -Wextra-semi)
21+
endif()
22+
endif()
23+
24+
set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
25+
set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
26+
endfunction()

ggml/src/CMakeLists.txt

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
include(CheckCXXCompilerFlag)
2+
include("../cmake/common.cmake")
23

34
add_compile_definitions(GGML_SCHED_MAX_COPIES=${GGML_SCHED_MAX_COPIES})
45

@@ -24,33 +25,6 @@ if (NOT MSVC)
2425
endif()
2526
endif()
2627

27-
function(ggml_get_flags CCID CCVER)
28-
set(C_FLAGS "")
29-
set(CXX_FLAGS "")
30-
31-
if (CCID MATCHES "Clang")
32-
set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
33-
set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
34-
35-
if (
36-
(CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
37-
(CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
38-
)
39-
list(APPEND C_FLAGS -Wdouble-promotion)
40-
endif()
41-
elseif (CCID STREQUAL "GNU")
42-
set(C_FLAGS -Wdouble-promotion)
43-
set(CXX_FLAGS -Wno-array-bounds)
44-
45-
if (CCVER VERSION_GREATER_EQUAL 8.1.0)
46-
list(APPEND CXX_FLAGS -Wextra-semi)
47-
endif()
48-
endif()
49-
50-
set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
51-
set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
52-
endfunction()
53-
5428
if (GGML_FATAL_WARNINGS)
5529
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
5630
list(APPEND C_FLAGS -Werror)

0 commit comments

Comments
 (0)