build-cmake-pkg.yml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: Build relocatable cmake package
  2. on:
  3. workflow_dispatch:
  4. workflow_call:
  5. jobs:
  6. linux:
  7. runs-on: ubuntu-24.04
  8. steps:
  9. - uses: actions/checkout@v4
  10. with:
  11. fetch-depth: 0
  12. - name: Install dependencies
  13. run: |
  14. sudo apt update
  15. sudo apt install -y build-essential tcl
  16. - name: Build
  17. run: |
  18. PREFIX="$(pwd)"/inst
  19. cmake -S . -B build -DCMAKE_PREFIX_PATH="$PREFIX" \
  20. -DLLAMA_CURL=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF \
  21. -DLLAMA_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release
  22. cmake --build build --config Release
  23. cmake --install build --prefix "$PREFIX" --config Release
  24. export LLAMA_CONFIG="$PREFIX"/lib/cmake/llama/llama-config.cmake
  25. tclsh <<'EOF'
  26. set build(commit) [string trim [exec git rev-parse --short HEAD]]
  27. set build(number) [string trim [exec git rev-list --count HEAD]]
  28. set build(version) "0.0.$build(number)"
  29. set llamaconfig [read [open "$env(LLAMA_CONFIG)" r]]
  30. set checks [list "set\\(LLAMA_VERSION \\s+$build(version)\\)" \
  31. "set\\(LLAMA_BUILD_COMMIT\\s+$build(commit)\\)" \
  32. "set\\(LLAMA_BUILD_NUMBER\\s+$build(number)\\)"]
  33. puts -nonewline "Checking llama-config.cmake version... "
  34. foreach check $checks {
  35. if {![regexp -expanded -- $check $llamaconfig]} {
  36. puts "\"$check\" failed!"
  37. exit 1
  38. }
  39. }
  40. puts "success."
  41. EOF
  42. cd examples/simple-cmake-pkg
  43. cmake -S . -B build -DCMAKE_PREFIX_PATH="$PREFIX"/lib/cmake
  44. cmake --build build