| name: Build relocatable cmake package | |
| on: | |
| workflow_dispatch: | |
| workflow_call: | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install -y build-essential tcl | |
| - name: Build | |
| run: | | |
| PREFIX="$(pwd)"/inst | |
| cmake -S . -B build -DCMAKE_PREFIX_PATH="$PREFIX" \ | |
| -DLLAMA_CURL=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --config Release | |
| cmake --install build --prefix "$PREFIX" --config Release | |
| export LLAMA_CONFIG="$PREFIX"/lib/cmake/llama/llama-config.cmake | |
| tclsh <<'EOF' | |
| set build(commit) [string trim [exec git rev-parse --short HEAD]] | |
| set build(number) [string trim [exec git rev-list --count HEAD]] | |
| set build(version) "0.0.$build(number)" | |
| set llamaconfig [read [open "$env(LLAMA_CONFIG)" r]] | |
| set checks [list "set\\(LLAMA_VERSION \\s+$build(version)\\)" \ | |
| "set\\(LLAMA_BUILD_COMMIT\\s+$build(commit)\\)" \ | |
| "set\\(LLAMA_BUILD_NUMBER\\s+$build(number)\\)"] | |
| puts -nonewline "Checking llama-config.cmake version... " | |
| foreach check $checks { | |
| if {![regexp -expanded -- $check $llamaconfig]} { | |
| puts "\"$check\" failed!" | |
| exit 1 | |
| } | |
| } | |
| puts "success." | |
| EOF | |
| cd examples/simple-cmake-pkg | |
| cmake -S . -B build -DCMAKE_PREFIX_PATH="$PREFIX"/lib/cmake | |
| cmake --build build | |