1llama_add_compile_flags()
  2
  3#
  4# libraries
  5#
  6
  7# llama
  8
  9add_library(llama
 10            ../include/llama.h
 11            llama.cpp
 12            llama-adapter.cpp
 13            llama-arch.cpp
 14            llama-batch.cpp
 15            llama-chat.cpp
 16            llama-context.cpp
 17            llama-cparams.cpp
 18            llama-grammar.cpp
 19            llama-graph.cpp
 20            llama-hparams.cpp
 21            llama-impl.cpp
 22            llama-io.cpp
 23            llama-kv-cache.cpp
 24            llama-kv-cache-iswa.cpp
 25            llama-memory.cpp
 26            llama-memory-hybrid.cpp
 27            llama-memory-hybrid-iswa.cpp
 28            llama-memory-recurrent.cpp
 29            llama-mmap.cpp
 30            llama-model-loader.cpp
 31            llama-model-saver.cpp
 32            llama-model.cpp
 33            llama-quant.cpp
 34            llama-sampler.cpp
 35            llama-vocab.cpp
 36            unicode-data.cpp
 37            unicode.cpp
 38            unicode.h
 39            models/afmoe.cpp
 40            models/apertus.cpp
 41            models/arcee.cpp
 42            models/arctic.cpp
 43            models/arwkv7.cpp
 44            models/baichuan.cpp
 45            models/bailingmoe.cpp
 46            models/bailingmoe2.cpp
 47            models/bert.cpp
 48            models/bitnet.cpp
 49            models/bloom.cpp
 50            models/chameleon.cpp
 51            models/chatglm.cpp
 52            models/codeshell.cpp
 53            models/cogvlm.cpp
 54            models/cohere2-iswa.cpp
 55            models/command-r.cpp
 56            models/dbrx.cpp
 57            models/deci.cpp
 58            models/deepseek.cpp
 59            models/deepseek2.cpp
 60            models/dots1.cpp
 61            models/dream.cpp
 62            models/ernie4-5-moe.cpp
 63            models/ernie4-5.cpp
 64            models/exaone.cpp
 65            models/exaone4.cpp
 66            models/exaone-moe.cpp
 67            models/falcon-h1.cpp
 68            models/falcon.cpp
 69            models/gemma-embedding.cpp
 70            models/gemma.cpp
 71            models/gemma2-iswa.cpp
 72            models/gemma3.cpp
 73            models/gemma3n-iswa.cpp
 74            models/glm4-moe.cpp
 75            models/glm4.cpp
 76            models/gpt2.cpp
 77            models/gptneox.cpp
 78            models/granite-hybrid.cpp
 79            models/granite.cpp
 80            models/grok.cpp
 81            models/grovemoe.cpp
 82            models/hunyuan-dense.cpp
 83            models/hunyuan-moe.cpp
 84            models/internlm2.cpp
 85            models/jais.cpp
 86            models/jamba.cpp
 87            models/kimi-linear.cpp
 88            models/lfm2.cpp
 89            models/llada-moe.cpp
 90            models/llada.cpp
 91            models/llama-iswa.cpp
 92            models/llama.cpp
 93            models/maincoder.cpp
 94            models/mamba.cpp
 95            models/mimo2-iswa.cpp
 96            models/minicpm3.cpp
 97            models/minimax-m2.cpp
 98            models/modern-bert.cpp
 99            models/mpt.cpp
100            models/nemotron-h.cpp
101            models/nemotron.cpp
102            models/neo-bert.cpp
103            models/olmo.cpp
104            models/olmo2.cpp
105            models/olmoe.cpp
106            models/openai-moe-iswa.cpp
107            models/openelm.cpp
108            models/orion.cpp
109            models/pangu-embedded.cpp
110            models/phi2.cpp
111            models/phi3.cpp
112            models/plamo.cpp
113            models/plamo2.cpp
114            models/plamo3.cpp
115            models/plm.cpp
116            models/qwen.cpp
117            models/qwen2.cpp
118            models/qwen2moe.cpp
119            models/qwen2vl.cpp
120            models/qwen3.cpp
121            models/qwen3vl.cpp
122            models/qwen3vl-moe.cpp
123            models/qwen3moe.cpp
124            models/qwen3next.cpp
125            models/qwen35.cpp
126            models/qwen35moe.cpp
127            models/refact.cpp
128            models/rnd1.cpp
129            models/rwkv6-base.cpp
130            models/rwkv6.cpp
131            models/rwkv6qwen2.cpp
132            models/rwkv7-base.cpp
133            models/rwkv7.cpp
134            models/seed-oss.cpp
135            models/smallthinker.cpp
136            models/smollm3.cpp
137            models/stablelm.cpp
138            models/starcoder.cpp
139            models/starcoder2.cpp
140            models/step35-iswa.cpp
141            models/t5-dec.cpp
142            models/t5-enc.cpp
143            models/wavtokenizer-dec.cpp
144            models/xverse.cpp
145            models/mistral3.cpp
146            models/graph-context-mamba.cpp
147            )
148
149set_target_properties(llama PROPERTIES
150    VERSION ${LLAMA_INSTALL_VERSION}
151    SOVERSION 0
152    MACHO_CURRENT_VERSION 0 # keep macOS linker from seeing oversized version number
153)
154
155target_include_directories(llama PRIVATE .)
156target_include_directories(llama PUBLIC ../include)
157target_compile_features   (llama PRIVATE cxx_std_17) # don't bump
158
159target_link_libraries(llama PUBLIC ggml)
160
161if (BUILD_SHARED_LIBS)
162    set_target_properties(llama PROPERTIES POSITION_INDEPENDENT_CODE ON)
163    target_compile_definitions(llama PRIVATE LLAMA_BUILD)
164    target_compile_definitions(llama PUBLIC  LLAMA_SHARED)
165endif()