Skip to content

Commit 0995df5

Browse files
committed
Add to CMakeLists.txt
1 parent ebfc622 commit 0995df5

File tree

1 file changed

+38
-27
lines changed

1 file changed

+38
-27
lines changed

CMakeLists.txt

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,57 @@ set(CMAKE_C_STANDARD 11)
77
set(THREADS_PREFER_PTHREAD_FLAG ON)
88
find_package(Threads REQUIRED)
99

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

15-
option(LLAMA_ALL_WARNINGS "llama: enable all compiler warnings" ON)
16-
option(LLAMA_ALL_WARNINGS_3RD_PARTY "llama: enable all compiler warnings in 3rd party libs" OFF)
15+
option(LLAMA_ALL_WARNINGS "llama: enable all compiler warnings" ON)
16+
option(LLAMA_ALL_WARNINGS_3RD_PARTY "llama: enable all compiler warnings in 3rd party libs" OFF)
1717

18-
option(LLAMA_SANITIZE_THREAD "llama: enable thread sanitizer" OFF)
19-
option(LLAMA_SANITIZE_ADDRESS "llama: enable address sanitizer" OFF)
20-
option(LLAMA_SANITIZE_UNDEFINED "llama: enable undefined sanitizer" OFF)
18+
option(LLAMA_SANITIZE_THREAD "llama: enable thread sanitizer" OFF)
19+
option(LLAMA_SANITIZE_ADDRESS "llama: enable address sanitizer" OFF)
20+
option(LLAMA_SANITIZE_UNDEFINED "llama: enable undefined sanitizer" OFF)
2121

22-
if (APPLE)
23-
option(LLAMA_NO_ACCELERATE "llama: disable Accelerate framework" OFF)
24-
option(LLAMA_NO_AVX "llama: disable AVX" OFF)
25-
option(LLAMA_NO_AVX2 "llama: disable AVX2" OFF)
26-
option(LLAMA_NO_FMA "llama: disable FMA" OFF)
22+
if(APPLE)
23+
option(LLAMA_NO_ACCELERATE "llama: disable Accelerate framework" OFF)
24+
option(LLAMA_NO_AVX "llama: disable AVX" OFF)
25+
option(LLAMA_NO_AVX2 "llama: disable AVX2" OFF)
26+
option(LLAMA_NO_FMA "llama: disable FMA" OFF)
2727
endif()
2828

29-
if (NOT MSVC)
30-
if (LLAMA_SANITIZE_THREAD)
31-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
29+
if(NOT MSVC)
30+
if(LLAMA_SANITIZE_THREAD)
31+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
3232
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
3333
endif()
3434

35-
if (LLAMA_SANITIZE_ADDRESS)
35+
if(LLAMA_SANITIZE_ADDRESS)
3636
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
3737
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
3838
endif()
3939

40-
if (LLAMA_SANITIZE_UNDEFINED)
40+
if(LLAMA_SANITIZE_UNDEFINED)
4141
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
4242
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
4343
endif()
4444
endif()
4545

46-
if (APPLE AND NOT LLAMA_NO_ACCELERATE)
46+
if(APPLE AND NOT LLAMA_NO_ACCELERATE)
4747
find_library(ACCELERATE_FRAMEWORK Accelerate)
48-
if (ACCELERATE_FRAMEWORK)
48+
49+
if(ACCELERATE_FRAMEWORK)
4950
message(STATUS "Accelerate framework found")
5051

51-
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ${ACCELERATE_FRAMEWORK})
52+
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ${ACCELERATE_FRAMEWORK})
5253
set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_USE_ACCELERATE)
5354
else()
5455
message(WARNING "Accelerate framework not found")
5556
endif()
5657
endif()
5758

58-
if (LLAMA_ALL_WARNINGS)
59-
if (NOT MSVC)
59+
if(LLAMA_ALL_WARNINGS)
60+
if(NOT MSVC)
6061
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
6162
-Wall \
6263
-Wextra \
@@ -80,34 +81,38 @@ endif()
8081

8182
message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
8283

83-
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
84+
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
8485
message(STATUS "ARM detected")
8586
else()
8687
message(STATUS "x86 detected")
87-
if (MSVC)
88+
89+
if(MSVC)
8890
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
8991
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX2")
9092
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:AVX2")
9193
else()
9294
if(NOT LLAMA_NO_AVX)
9395
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
9496
endif()
97+
9598
if(NOT LLAMA_NO_AVX2)
9699
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
97100
endif()
101+
98102
if(NOT LLAMA_NO_FMA)
99103
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfma")
100104
endif()
105+
101106
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mf16c")
102107
endif()
103108
endif()
104109

105110
# if (LLAMA_PERF)
106-
# set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_PERF)
111+
# set(LLAMA_EXTRA_FLAGS ${LLAMA_EXTRA_FLAGS} -DGGML_PERF)
107112
# endif()
108-
109113
add_executable(llama
110114
main.cpp
115+
llama.cpp
111116
utils.cpp
112117
utils.h)
113118

@@ -116,6 +121,9 @@ add_executable(quantize
116121
utils.cpp
117122
utils.h)
118123

124+
add_library(llamalib
125+
llama.cpp)
126+
119127
add_library(ggml
120128
ggml.c
121129
ggml.h)
@@ -125,7 +133,10 @@ target_compile_definitions(llama PUBLIC ${LLAMA_EXTRA_FLAGS})
125133
target_compile_definitions(quantize PUBLIC ${LLAMA_EXTRA_FLAGS})
126134

127135
target_link_libraries(ggml PRIVATE ${LLAMA_EXTRA_LIBS})
136+
target_link_libraries(llamalib PRIVATE ggml ${LLAMA_EXTRA_LIBS})
137+
128138
target_include_directories(ggml PUBLIC .)
129-
target_link_libraries(quantize PRIVATE ggml)
130-
target_link_libraries(llama PRIVATE ggml)
139+
140+
target_link_libraries(quantize PRIVATE ggml llamalib)
141+
target_link_libraries(llama PRIVATE ggml llamalib)
131142
target_link_libraries(ggml PRIVATE Threads::Threads)

0 commit comments

Comments
 (0)