char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
c457e3bf7
char/aliceai-t5-moe
1set ( TARGET llama-ui ) 2 3set ( LLAMA_UI_HF_BUCKET "ggml-org/llama-ui" CACHE STRING "Hugging Face bucket name for prebuilt UI assets" ) 4set ( LLAMA_UI_GZIP ON CACHE BOOL "Apply gzip compress to assets to save bandwidth" ) 5 6# Backward compat: forward old var to new one 7if ( DEFINED LLAMA_BUILD_WEBUI) 8set ( LLAMA_BUILD_UI ${ LLAMA_BUILD_WEBUI }) 9message ( DEPRECATION "LLAMA_BUILD_WEBUI is deprecated, use LLAMA_BUILD_UI instead" ) 10endif () 11if ( DEFINED LLAMA_USE_PREBUILT_WEBUI) 12set ( LLAMA_USE_PREBUILT_UI ${ LLAMA_USE_PREBUILT_WEBUI }) 13message ( DEPRECATION "LLAMA_USE_PREBUILT_WEBUI is deprecated, use LLAMA_USE_PREBUILT_UI instead" ) 14endif () 15if ( DEFINED LLAMA_WEBUI_HF_BUCKET) 16set ( LLAMA_UI_HF_BUCKET ${ LLAMA_WEBUI_HF_BUCKET }) 17message ( DEPRECATION "LLAMA_WEBUI_HF_BUCKET is deprecated, use LLAMA_UI_HF_BUCKET instead" ) 18endif () 19 20# Resolve HF asset version: explicit env var > derived from build number > unset 21if ( DEFINED ENV{HF_WEBUI_VERSION}) 22set ( HF_UI_VERSION " $ ENV { HF_WEBUI_VERSION } " ) 23message ( DEPRECATION "HF_WEBUI_VERSION env var is deprecated, use HF_UI_VERSION instead" ) 24elseif ( DEFINED ENV{HF_UI_VERSION}) 25set ( HF_UI_VERSION " $ ENV { HF_UI_VERSION } " ) 26elseif ( DEFINED LLAMA_BUILD_NUMBER) 27set ( HF_UI_VERSION "b ${ LLAMA_BUILD_NUMBER } " ) 28else () 29set ( HF_UI_VERSION "" ) 30endif () 31 32if ( NOT " ${ HF_UI_VERSION } " STREQUAL "" AND NOT HF_UI_VERSIONMATCHES "^[A-Za-z0-9._-]+ $ " ) 33message ( FATAL_ERROR "UI: invalid HF_UI_VERSION=' ${ HF_UI_VERSION } ' - must match ^[A-Za-z0-9._-]+ $ " ) 34endif () 35 36set ( UI_CPP " ${ CMAKE_CURRENT_BINARY_DIR } /ui.cpp" ) 37set ( UI_H " ${ CMAKE_CURRENT_BINARY_DIR } /ui.h" ) 38 39# Provision assets and generate ui.cpp/ui.h natively in CMake at build time. 40# The generated sources are compiled by the regular target toolchain; no 41# build-time host executable is needed (works in any cross-compile setup). 42# The script uses copy_if_different semantics, so the library below only 43# recompiles when the generated contents actually change. 44add_custom_target ( llama-ui-assets ALL 45BYPRODUCTS ${ UI_CPP } ${ UI_H } 46COMMAND ${ CMAKE_COMMAND } 47"-DUI_SOURCE_DIR= ${ CMAKE_CURRENT_SOURCE_DIR } " 48"-DUI_BINARY_DIR= ${ CMAKE_CURRENT_BINARY_DIR } " 49"-DLLAMA_SOURCE_DIR= ${ PROJECT_SOURCE_DIR } " 50"-DLLAMA_BUILD_NUMBER= ${ LLAMA_BUILD_NUMBER } " 51"-DHF_BUCKET= ${ LLAMA_UI_HF_BUCKET } " 52"-DHF_VERSION= ${ HF_UI_VERSION } " 53"-DHF_ENABLED= ${ LLAMA_USE_PREBUILT_UI } " 54"-DBUILD_UI= ${ LLAMA_BUILD_UI } " 55"-DLLAMA_UI_GZIP= ${ LLAMA_UI_GZIP } " 56-P " ${ PROJECT_SOURCE_DIR } /scripts/ui-assets.cmake" 57COMMENT "Provisioning UI assets" 58VERBATIM 59) 60 61set_source_files_properties ( $ { UI_CPP } ${ UI_H } PROPERTIES GENERATED TRUE ) 62 63add_library ( $ { TARGET } STATIC ${ UI_CPP } ${ UI_H }) 64target_compile_features ( $ { TARGET } PRIVATE cxx_std_17 ) 65add_dependencies ( $ { TARGET } llama-ui-assets ) 66 67if ( BUILD_SHARED_LIBS) 68set_target_properties ( $ { TARGET } PROPERTIES POSITION_INDEPENDENT_CODE ON ) 69endif () 70 71target_include_directories ( $ { TARGET } PUBLIC 72${ CMAKE_CURRENT_BINARY_DIR } 73)