@@ -388,6 +388,74 @@ jobs:
388
388
run : cmake --build build --target test_cmake_build
389
389
390
390
391
+ # Testing on ICX/ICPX, Intel's next-gen C/C++ compiler using the oneAPI apt repo
392
+ icx :
393
+ runs-on : ubuntu-20.04
394
+ strategy :
395
+ fail-fast : false
396
+
397
+ name : " 🐍 3 • ICPX latest • x64"
398
+
399
+ steps :
400
+ - uses : actions/checkout@v1
401
+
402
+ - name : Add apt repo
403
+ run : |
404
+ sudo apt-get update
405
+ sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
406
+ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
407
+ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
408
+ echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
409
+ - name : Add ICC & Python 3
410
+ run : sudo apt-get update; sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp cmake python3-dev python3-numpy python3-pytest python3-pip
411
+
412
+ - name : Update pip
413
+ shell : bash
414
+ run : |
415
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
416
+ python3 -m pip install --upgrade pip
417
+ - name : Install dependencies
418
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
419
+ python3 -m pip install -r tests/requirements.txt --prefer-binary
420
+
421
+ - name : Configure
422
+ shell : bash
423
+ run : |
424
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
425
+ cmake -S . -B build \
426
+ -DPYBIND11_WERROR=ON \
427
+ -DDOWNLOAD_CATCH=ON \
428
+ -DDOWNLOAD_EIGEN=OFF \
429
+ -DCMAKE_CXX_STANDARD=14 \
430
+ -DCMAKE_CXX_COMPILER=$(which icpx) \
431
+ -DCMAKE_CXX_COMPILER_ID="Clang" \
432
+ -DCMAKE_CXX_COMPILER_VERSION=12.0 \
433
+ -DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT="14" \
434
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
435
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
436
+ - name : Build
437
+ shell : bash
438
+ run : |
439
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
440
+ cmake --build build -j 2
441
+ - name : Python tests
442
+ shell : bash
443
+ run : |
444
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
445
+ sudo service apport stop
446
+ cmake --build build --target check
447
+ - name : C++ tests
448
+ shell : bash
449
+ run : |
450
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
451
+ cmake --build build --target cpptest
452
+ - name : Interface test
453
+ shell : bash
454
+ run : |
455
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
456
+ cmake --build build --target test_cmake_build
457
+
458
+
391
459
# Testing on CentOS (manylinux uses a centos base, and this is an easy way
392
460
# to get GCC 4.8, which is the manylinux1 compiler).
393
461
centos :
0 commit comments