Skip to content

Commit 2bab7e1

Browse files
committed
Add to CMakeLists.txt
1 parent fe61460 commit 2bab7e1

File tree

1 file changed

+37
-27
lines changed

1 file changed

+37
-27
lines changed

CMakeLists.txt

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,56 +5,57 @@ set(CMAKE_CXX_STANDARD 20)
55
set(CMAKE_CXX_STANDARD_REQUIRED true)
66
set(CMAKE_C_STANDARD 11)
77

8-
if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
8+
if(NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
99
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
1010
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
1111
endif()
1212

13-
option(LLAMA_ALL_WARNINGS "llama: enable all compiler warnings" ON)
14-
option(LLAMA_ALL_WARNINGS_3RD_PARTY "llama: enable all compiler warnings in 3rd party libs" OFF)
13+
option(LLAMA_ALL_WARNINGS "llama: enable all compiler warnings" ON)
14+
option(LLAMA_ALL_WARNINGS_3RD_PARTY "llama: enable all compiler warnings in 3rd party libs" OFF)
1515

16-
option(LLAMA_SANITIZE_THREAD "llama: enable thread sanitizer" OFF)
17-
option(LLAMA_SANITIZE_ADDRESS "llama: enable address sanitizer" OFF)
18-
option(LLAMA_SANITIZE_UNDEFINED "llama: enable undefined sanitizer" OFF)
16+
option(LLAMA_SANITIZE_THREAD "llama: enable thread sanitizer" OFF)
17+
option(LLAMA_SANITIZE_ADDRESS "llama: enable address sanitizer" OFF)
18+
option(LLAMA_SANITIZE_UNDEFINED "llama: enable undefined sanitizer" OFF)
1919

20-
if (APPLE)
21-
option(LLAMA_NO_ACCELERATE "llama: disable Accelerate framework" OFF)
22-
option(LLAMA_NO_AVX "llama: disable AVX" OFF)
23-
option(LLAMA_NO_AVX2 "llama: disable AVX2" OFF)
24-
option(LLAMA_NO_FMA "llama: disable FMA" OFF)
20+
if(APPLE)
21+
option(LLAMA_NO_ACCELERATE "llama: disable Accelerate framework" OFF)
22+
option(LLAMA_NO_AVX "llama: disable AVX" OFF)
23+
option(LLAMA_NO_AVX2 "llama: disable AVX2" OFF)
24+
option(LLAMA_NO_FMA "llama: disable FMA" OFF)
2525
endif()
2626

27-
if (NOT MSVC)
28-
if (LLAMA_SANITIZE_THREAD)
29-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
27+
if(NOT MSVC)
28+
if(LLAMA_SANITIZE_THREAD)
29+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
3030
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
3131
endif()
3232

33-
if (LLAMA_SANITIZE_ADDRESS)
33+
if(LLAMA_SANITIZE_ADDRESS)
3434
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
3535
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
3636
endif()
3737

38-
if (LLAMA_SANITIZE_UNDEFINED)
38+
if(LLAMA_SANITIZE_UNDEFINED)
3939
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
4040
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
4141
endif()
4242
endif()
4343

44-
if (APPLE AND NOT LLAMA_NO_ACCELERATE)
44+
if(APPLE AND NOT LLAMA_NO_ACCELERATE)
4545
find_library(ACCELERATE_FRAMEWORK Accelerate)
46-
if (ACCELERATE_FRAMEWORK)
46+
47+
if(ACCELERATE_FRAMEWORK)
4748
message(STATUS "Accelerate framework found")
4849

49-
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ${ACCELERATE_FRAMEWORK})
50+
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ${ACCELERATE_FRAMEWORK})
5051
set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_USE_ACCELERATE)
5152
else()
5253
message(WARNING "Accelerate framework not found")
5354
endif()
5455
endif()
5556

56-
if (LLAMA_ALL_WARNINGS)
57-
if (NOT MSVC)
57+
if(LLAMA_ALL_WARNINGS)
58+
if(NOT MSVC)
5859
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
5960
-Wall \
6061
-Wextra \
@@ -78,34 +79,38 @@ endif()
7879

7980
message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
8081

81-
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
82+
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
8283
message(STATUS "ARM detected")
8384
else()
8485
message(STATUS "x86 detected")
85-
if (MSVC)
86+
87+
if(MSVC)
8688
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
8789
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX2")
8890
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:AVX2")
8991
else()
9092
if(NOT LLAMA_NO_AVX)
9193
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
9294
endif()
95+
9396
if(NOT LLAMA_NO_AVX2)
9497
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
9598
endif()
99+
96100
if(NOT LLAMA_NO_FMA)
97101
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfma")
98102
endif()
103+
99104
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mf16c")
100105
endif()
101106
endif()
102107

103108
# if (LLAMA_PERF)
104-
# set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_PERF)
109+
# set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_PERF)
105110
# endif()
106-
107111
add_executable(llama
108112
main.cpp
113+
llama.cpp
109114
utils.cpp
110115
utils.h)
111116

@@ -114,6 +119,9 @@ add_executable(quantize
114119
utils.cpp
115120
utils.h)
116121

122+
add_library(llamalib
123+
llama.cpp)
124+
117125
add_library(ggml
118126
ggml.c
119127
ggml.h)
@@ -123,6 +131,8 @@ target_compile_definitions(llama PUBLIC ${LLAMA_EXTRA_FLAGS})
123131
target_compile_definitions(quantize PUBLIC ${LLAMA_EXTRA_FLAGS})
124132

125133
target_link_libraries(ggml PRIVATE ${LLAMA_EXTRA_LIBS})
134+
target_link_libraries(llamalib PRIVATE ggml ${LLAMA_EXTRA_LIBS})
135+
126136
target_include_directories(ggml PUBLIC .)
127-
target_link_libraries(quantize PRIVATE ggml)
128-
target_link_libraries(llama PRIVATE ggml)
137+
target_link_libraries(quantize PRIVATE ggml llamalib)
138+
target_link_libraries(llama PRIVATE ggml llamalib)

0 commit comments

Comments
 (0)