|
30 | 30 | - windows-latest |
31 | 31 | arch: |
32 | 32 | - x64 |
| 33 | + pocl: |
| 34 | + - [local, jll] |
33 | 35 | include: |
34 | 36 | - version: 'nightly' |
35 | 37 | os: ubuntu-latest |
|
43 | 45 | arch: ${{ matrix.arch }} |
44 | 46 | show-versioninfo: true |
45 | 47 | - uses: julia-actions/cache@v2 |
46 | | - - run: | |
| 48 | + - name: Checkout pocl |
| 49 | + if: ${{ matrix.pocl == 'local' }} |
| 50 | + uses: actions/checkout@v4 |
| 51 | + with: |
| 52 | + repository: pocl/pocl |
| 53 | + path: pocl |
| 54 | + - name: Install Julia dependencies |
| 55 | + if: ${{ matrix.pocl == 'local' }} |
| 56 | + run: | |
| 57 | + touch pocl/Project.toml |
| 58 | + julia --project=pocl --color=yes -e ' |
| 59 | + using Pkg |
| 60 | + # unversioned |
| 61 | + Pkg.add([ |
| 62 | + "SPIRV_Tools_jll", |
| 63 | + "OpenCL_jll", |
| 64 | + "OpenCL_Headers_jll", |
| 65 | + "Hwloc_jll", |
| 66 | + "CMake_jll", |
| 67 | + ]) |
| 68 | + # versioned |
| 69 | + llvm_version = "$(Base.libllvm_version.major).$(Base.libllvm_version.minor)" |
| 70 | + Pkg.add(name="LLVM_full_jll", version=llvm_version)' |
| 71 | + Pkg.add(name="SPIRV_LLVM_Translator_jll", version=llvm_version)' |
| 72 | + - name: Build PoCL |
| 73 | + if: ${{ matrix.pocl == 'local' }} |
| 74 | + run: | |
| 75 | + julia --project=pocl --color=yes -e ' |
| 76 | + using LLVM_full_jll, |
| 77 | + SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll, |
| 78 | + OpenCL_jll, OpenCL_Headers_jll, |
| 79 | + Hwloc_jll, CMake_jll |
| 80 | + sourcedir = joinpath(@__DIR__, "pocl") |
| 81 | + builddir = joinpath(@__DIR__, "build") |
| 82 | + destdir = joinpath(@__DIR__, "target") |
| 83 | + prefix = [] |
| 84 | + for jll in [SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll, OpenCL_jll, |
| 85 | + OpenCL_Headers_jll, Hwloc_jll] |
| 86 | + push!(prefix, jll.artifact_dir) |
| 87 | + end |
| 88 | + withenv("LD_LIBRARY_PATH" => joinpath(Sys.BINDIR, Base.PRIVATE_LIBDIR)) do |
| 89 | + mkpath(builddir) |
| 90 | + run(```cmake -B $builddir -S $sourcedir |
| 91 | + -GNinja |
| 92 | + -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always" |
| 93 | + -DCMAKE_C_FLAGS="-fdiagnostics-color=always" |
| 94 | + -DCMAKE_BUILD_TYPE=Debug |
| 95 | + -DENABLE_TESTS:Bool=OFF |
| 96 | + -DPOCL_DEBUG_MESSAGES:Bool=ON |
| 97 | + -DCMAKE_INSTALL_PREFIX=$destdir |
| 98 | + -DWITH_LLVM_CONFIG=$(LLVM_full_jll.artifact_dir)/tools/llvm-config |
| 99 | + -DCMAKE_PREFIX_PATH="$(join(prefix, ";"))" |
| 100 | + -DKERNELLIB_HOST_CPU_VARIANTS=distro```) |
| 101 | + run(```$(cmake()) --build $builddir --parallel $(Sys.CPU_THREADS) --target install```) |
| 102 | + end' |
| 103 | + echo '[pocl_jll]' > test/LocalPreferences.toml |
| 104 | + echo 'libpocl_path="${{ github.workspace }}/pocl/target/lib/libpocl.so"' >> test/LocalPreferences.toml |
| 105 | + - name: "Co-develop Enzyme and KA" |
| 106 | + run: | |
47 | 107 | julia -e ' |
48 | 108 | using Pkg |
49 | 109 | withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0) do |
|
0 commit comments