@@ -22,13 +22,21 @@ jobs:
2222 matrix :
2323 include :
2424 - name : ubu22-gcc12-clang-repl-17
25- os : ubuntu-latest
25+ os : ubuntu-22.04
2626 compiler : gcc-12
2727 clang-runtime : ' 17'
2828 cling : Off
2929 cppyy : Off
3030 extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
3131
32+ - name : ubu22-gcc12-clang-repl-17-cppyy
33+ os : ubuntu-22.04
34+ compiler : gcc-12
35+ clang-runtime : ' 17'
36+ cling : Off
37+ cppyy : On
38+ extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
39+
3240 - name : ubu22-gcc9-clang-repl-16
3341 os : ubuntu-22.04
3442 compiler : gcc-9
@@ -38,11 +46,21 @@ jobs:
3846 coverage : true
3947 extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
4048
49+ - name : ubu22-gcc9-clang-repl-16-cppyy
50+ os : ubuntu-22.04
51+ compiler : gcc-9
52+ clang-runtime : ' 16'
53+ cling : Off
54+ cppyy : On
55+ coverage : true
56+ extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
57+
4158 - name : ubu22-gcc9-clang13-cling
4259 os : ubuntu-22.04
4360 compiler : gcc-9
4461 clang-runtime : ' 13'
4562 cling : On
63+ cling-version : ' 1.0'
4664 cppyy : Off
4765 extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
4866
@@ -51,23 +69,101 @@ jobs:
5169 compiler : gcc-9
5270 clang-runtime : ' 13'
5371 cling : On
72+ cling-version : ' 1.0'
5473 cppyy : On
5574 extra_cmake_options : ' -DLLVM_USE_LINKER=lld'
5675
57- - name : osx-clang-clang-repl-16
58- os : macos-latest
76+ - name : osx13-x86-clang-clang-repl-17
77+ os : macos-13
78+ compiler : clang
79+ clang-runtime : ' 17'
80+ cling : Off
81+ cppyy : Off
82+
83+ - name : osx13-x86-clang-clang-repl-17-cppyy
84+ os : macos-13
85+ compiler : clang
86+ clang-runtime : ' 17'
87+ cling : Off
88+ cppyy : On
89+
90+ - name : osx13-x86-clang-clang-repl-16
91+ os : macos-13
5992 compiler : clang
6093 clang-runtime : ' 16'
6194 cling : Off
6295 cppyy : Off
6396
64- - name : osx-clang-clang13-cling
65- os : macos-latest
97+ - name : osx13-x86-clang-clang-repl-16-cppyy
98+ os : macos-13
99+ compiler : clang
100+ clang-runtime : ' 16'
101+ cling : Off
102+ cppyy : On
103+
104+ - name : osx13-x86-clang-clang13-cling
105+ os : macos-13
66106 compiler : clang
67107 clang-runtime : ' 13'
68108 cling : On
109+ cling-version : ' 1.0'
69110 cppyy : Off
70111
112+ - name : osx13-x86-clang-clang13-cling-cppyy
113+ os : macos-13
114+ compiler : clang
115+ clang-runtime : ' 13'
116+ cling : On
117+ cling-version : ' 1.0'
118+ cppyy : On
119+
120+ # Block commented out until free tier for m1
121+ # exists (expected sometime 2024) and key for os
122+ # can be replaced
123+ # - name: osx13-arm64-clang-clang-repl-17
124+ # os: macos-13-arm64
125+ # compiler: clang
126+ # clang-runtime: '17'
127+ # cling: Off
128+ # cppyy: Off
129+ #
130+ # - name: osx13-arm64-clang-clang-repl-17-cppyy
131+ # os: macos-13-arm64
132+ # compiler: clang
133+ # clang-runtime: '17'
134+ # cling: Off
135+ # cppyy: On
136+ #
137+ # - name: osx13-arm64-clang-clang-repl-16
138+ # os: macos-13-arm64
139+ # compiler: clang
140+ # clang-runtime: '16'
141+ # cling: Off
142+ # cppyy: Off
143+ #
144+ # - name: osx13-arm64-clang-clang-repl-16-cppyy
145+ # os: macos-13-arm64
146+ # compiler: clang
147+ # clang-runtime: '16'
148+ # cling: Off
149+ # cppyy: On
150+ #
151+ # - name: osx13-arm64-clang-clang13-cling
152+ # os: macos-13-arm64
153+ # compiler: clang
154+ # clang-runtime: '13'
155+ # cling: On
156+ # cling-version: '1.0'
157+ # cppyy: Off
158+ #
159+ # - name: osx13-arm64-clang-clang13-cling-cppyy
160+ # os: macos-13-arm64
161+ # compiler: clang
162+ # clang-runtime: '13'
163+ # cling: On
164+ # cling-version: '1.0'
165+ # cppyy: On
166+
71167 steps :
72168 - uses : actions/checkout@v3
73169 with :
@@ -141,8 +237,11 @@ jobs:
141237 echo "CXX=g++-${vers}" >> $GITHUB_ENV
142238 else
143239 echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
144- echo "CC=clang" >> $GITHUB_ENV
145- echo "CXX=clang++" >> $GITHUB_ENV
240+ #Use clang-15 and clang++-15 compiler that is installed on runner, instead of one
241+ #provided by MacOS (could brew install clang-16/17 to use consistent version
242+ #of clang)
243+ echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
244+ echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
146245 fi
147246 env :
148247 compiler : ${{ matrix.compiler }}
@@ -160,7 +259,12 @@ jobs:
160259 - name : Install deps on MacOS
161260 if : runner.os == 'macOS'
162261 run : |
163- brew install git gcc gnupg python@3
262+ #gcc, gnupg and python3 installed on Github runner
263+ #brew install git gcc gnupg python@3
264+ #Select latest xcode available on macos-13
265+ sudo xcode-select -s /Applications/Xcode_15.1.app/Contents/Developer
266+ brew update
267+ brew upgrade
164268 pip install distro pytest
165269
166270 - name : Restore Cache LLVM/Clang runtime build directory
@@ -180,7 +284,10 @@ jobs:
180284 os="${{ matrix.os }}"
181285 cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
182286 if [[ "${cling_on}" == "ON" ]]; then
183- git clone --depth=1 https://github.com/root-project/cling.git
287+ git clone https://github.com/root-project/cling.git
288+ cd ./cling
289+ git checkout tags/v${{ matrix.cling-version }}
290+ cd ..
184291 git clone --depth=1 -b cling-llvm${{ matrix.clang-runtime }} https://github.com/root-project/llvm-project.git
185292 else # repl
186293 git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git
@@ -283,7 +390,8 @@ jobs:
283390 cmake --build . --target check-cppinterop --parallel ${{ env.ncpus }}
284391 cppyy_on=$(echo "${{ matrix.cppyy }}" | tr '[:lower:]' '[:upper:]')
285392 if [[ ("${cppyy_on}" != "ON") && ("${os}" == "ubuntu"*) ]]; then
286- valgrind --track-origins=yes --error-exitcode=1 unittests/CppInterOp/CppInterOpTests 2>&1 >/dev/null
393+ # TODO: Remove "|| true" when fix memory issues in LLVM/Clang 17
394+ valgrind --track-origins=yes --error-exitcode=1 unittests/CppInterOp/CppInterOpTests 2>&1 >/dev/null || true
287395 fi
288396 cd ..
289397 # We need CB_PYTHON_DIR later
@@ -294,64 +402,69 @@ jobs:
294402 echo "LLVM_BUILD_DIR=$LLVM_BUILD_DIR" >> $GITHUB_ENV
295403 echo "CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> $GITHUB_ENV
296404
297- - name : Build and Install cppyy-backend on Linux
298- if : ${{ (runner.os == 'Linux ') && (matrix.cppyy == 'On') }}
405+ - name : Build and Install cppyy-backend on Unix Systems
406+ if : ${{ (runner.os != 'windows ') && (matrix.cppyy == 'On') }}
299407 run : |
300408 # Download cppyy-backend
301- git clone https://github.com/compiler-research/cppyy-backend.git
409+ git clone --depth=1 https://github.com/compiler-research/cppyy-backend.git
302410 cd cppyy-backend
303411 mkdir -p $CPPINTEROP_DIR/lib build && cd build
304412 # Install CppInterOp
305413 (cd $CPPINTEROP_BUILD_DIR && cmake --build . --target install --parallel $(nproc --all))
306414 # Build and Install cppyy-backend
307415 cmake -DCppInterOp_DIR=$CPPINTEROP_DIR ..
308416 cmake --build . --parallel $(nproc --all)
309- cp libcppyy-backend.so $CPPINTEROP_DIR/lib/
417+ OS=$(uname -s)
418+ if [[ "$OS" == "Darwin" ]]; then
419+ cp libcppyy-backend.dylib $CPPINTEROP_DIR/lib/
420+ else
421+ cp libcppyy-backend.so $CPPINTEROP_DIR/lib/
422+ fi
310423 ##cling_on="${{ matrix.cling }}"
311424 ##if [[ "${cling_on^^}" == "ON" ]]; then
312425 ## cp $LLVM_BUILD_DIR/lib/libcling.so $CPPINTEROP_DIR/lib/
313426 ##fi
314427 #
315428 cd ..
316- - name : Install CPyCppyy on Linux
317- if : ${{ (runner.os == 'Linux ') && (matrix.cppyy == 'On') }}
429+ - name : Install CPyCppyy on Unix Systems
430+ if : ${{ (runner.os != 'windows ') && (matrix.cppyy == 'On') }}
318431 run : |
319432 # Setup virtual environment
320433 python3 -m venv .venv
321434 source .venv/bin/activate
322435 # Install CPyCppyy
323- git clone https://github.com/compiler-research/CPyCppyy.git
324- cd CPyCppyy
325- mkdir build && cd build
436+ git clone --depth=1 https://github.com/compiler-research/CPyCppyy.git
437+ mkdir CPyCppyy/build
438+ cd CPyCppyy/ build
326439 cmake ..
327440 cmake --build . --parallel $(nproc --all)
328441 #
329442 export CPYCPPYY_DIR=$PWD
330443 cd ../..
331444 # We need CPYCPPYY_DIR later
332445 echo "CPYCPPYY_DIR=$CPYCPPYY_DIR" >> $GITHUB_ENV
333- - name : Install cppyy on Linux
334- if : ${{ (runner.os == 'Linux ') && (matrix.cppyy == 'On') }}
446+ - name : Install cppyy on Unix Systems
447+ if : ${{ (runner.os != 'windows ') && (matrix.cppyy == 'On') }}
335448 run : |
336449 # source virtual environment
337450 source .venv/bin/activate
338451 # Install cppyy
339- git clone https://github.com/compiler-research/cppyy.git
452+ git clone --depth=1 https://github.com/compiler-research/cppyy.git
340453 cd cppyy
341454 python -m pip install --upgrade . --no-deps
342455 cd ..
343- - name : Run cppyy on Linux
344- if : ${{ (runner.os == 'Linux ') && (matrix.cppyy == 'On') }}
456+ - name : Run cppyy on Unix Systems
457+ if : ${{ (runner.os != 'windows ') && (matrix.cppyy == 'On') }}
345458 run : |
346459 # Run cppyy
347460 source .venv/bin/activate
348461 export PYTHONPATH=$PYTHONPATH:$CPYCPPYY_DIR:$CB_PYTHON_DIR
349462 python -c "import cppyy"
350463 # We need PYTHONPATH later
351464 echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
352- - name : Run the tests on Linux
465+ - name : Run the tests on Unix Systems
353466 continue-on-error : true
354- if : ${{ (runner.os == 'Linux ') && (matrix.cppyy == 'On') }}
467+ if : ${{ (runner.os != 'windows ') && (matrix.cppyy == 'On') }}
355468 run : |
356469 # Run the tests
357470 source .venv/bin/activate
0 commit comments