@@ -30,11 +30,34 @@ jobs:
3030          - windows-latest 
3131        arch :
3232          - x64 
33+         pocl : [jll,] 
3334        include :
35+           - version : ' 1.10' 
36+             os : ubuntu-latest 
37+             arch : x64 
38+             pocl : local 
39+             allow_failure : true 
40+           - version : ' 1.11' 
41+             os : ubuntu-latest 
42+             arch : x64 
43+             pocl : local 
44+             allow_failure : true 
45+           - version : ' nightly' 
46+             os : ubuntu-latest 
47+             arch : x64 
48+             pocl : local 
49+             allow_failure : true 
50+           - version : ' nightly' 
51+             os : ubuntu-latest 
52+             arch : x64 
53+             pocl : local 
54+             allow_failure : true 
3455          - version : ' nightly' 
3556            os : ubuntu-latest 
3657            arch : x64 
58+             pocl : jll 
3759            allow_failure : true 
60+           
3861    steps :
3962      - uses : actions/checkout@v4 
4063      - uses : julia-actions/setup-julia@v2 
4366          arch : ${{ matrix.arch }} 
4467          show-versioninfo : true 
4568      - uses : julia-actions/cache@v2 
46-       - run : |  
69+       - name : Checkout pocl 
70+         if : ${{ matrix.pocl == 'local' }} 
71+         uses : actions/checkout@v4 
72+         with :
73+           repository : pocl/pocl 
74+           path : pocl 
75+       - name : Install system dependencies 
76+         if : ${{ matrix.pocl == 'local' }} 
77+         run : | 
78+           sudo apt-get update 
79+           sudo apt-get install -y build-essential cmake ninja-build pkg-config 
80+        - name : Install Julia dependencies 
81+         if : ${{ matrix.pocl == 'local' }} 
82+         run : | 
83+             touch pocl/Project.toml 
84+             julia --project=pocl --color=yes -e ' 
85+               using Pkg 
86+               # unversioned 
87+               Pkg.add([ 
88+                 "SPIRV_Tools_jll", 
89+                 "OpenCL_jll", 
90+                 "OpenCL_Headers_jll", 
91+                 "Hwloc_jll", 
92+                 "CMake_jll", 
93+               ]) 
94+               # versioned 
95+               llvm_version = "$(Base.libllvm_version.major).$(Base.libllvm_version.minor)" 
96+               Pkg.add(name="LLVM_full_jll", version=llvm_version) 
97+               Pkg.add(name="SPIRV_LLVM_Translator_jll", version=llvm_version)' 
98+        - name : Build PoCL 
99+         if : ${{ matrix.pocl == 'local' }} 
100+         run : | 
101+             julia --project=pocl --color=yes -e ' 
102+               using LLVM_full_jll, 
103+                     SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll, 
104+                     OpenCL_jll, OpenCL_Headers_jll, 
105+                     Hwloc_jll, CMake_jll 
106+               sourcedir = joinpath(@__DIR__, "pocl") 
107+               builddir = joinpath(@__DIR__, "build") 
108+               destdir = joinpath(@__DIR__, "target") 
109+               prefix = [] 
110+               for jll in [SPIRV_Tools_jll, SPIRV_LLVM_Translator_jll, OpenCL_jll, 
111+                           OpenCL_Headers_jll, Hwloc_jll] 
112+                   push!(prefix, jll.artifact_dir) 
113+               end 
114+               withenv("LD_LIBRARY_PATH" => joinpath(Sys.BINDIR, Base.PRIVATE_LIBDIR)) do 
115+                   mkpath(builddir) 
116+                   run(```cmake -B $builddir -S $sourcedir 
117+                          -GNinja 
118+                          -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always" 
119+                          -DCMAKE_C_FLAGS="-fdiagnostics-color=always" 
120+                          -DCMAKE_BUILD_TYPE=Debug 
121+                          -DENABLE_TESTS:Bool=OFF 
122+                          -DPOCL_DEBUG_MESSAGES:Bool=ON 
123+                          -DCMAKE_INSTALL_PREFIX=$destdir 
124+                          -DWITH_LLVM_CONFIG=$(LLVM_full_jll.artifact_dir)/tools/llvm-config 
125+                          -DCMAKE_PREFIX_PATH="$(join(prefix, ";"))" 
126+                          -DKERNELLIB_HOST_CPU_VARIANTS=distro```) 
127+                   run(```$(cmake()) --build $builddir --parallel $(Sys.CPU_THREADS) --target install```) 
128+               end' 
129+             echo '[pocl_jll]' > test/LocalPreferences.toml 
130+             echo 'libpocl_path="${{ github.workspace }}/target/lib/libpocl.so"' >> test/LocalPreferences.toml 
131+        - name : " Co-develop Enzyme and KA" 
132+         run : | 
47133          julia -e ' 
48134            using Pkg 
49135            withenv("JULIA_PKG_PRECOMPILE_AUTO" => 0) do 
0 commit comments