xref: /petsc/config/examples/arch-ci-linux-cuda-single-cxx.py (revision 8d47944aebcd8a3a8a4a1aebd4b3f440b4d70fab)
1#!/usr/bin/env python3
2
3import os
4petsc_hash_pkgs=os.path.join(os.getenv('HOME'),'petsc-hash-pkgs')
5
6if __name__ == '__main__':
7  import sys
8  import os
9  sys.path.insert(0, os.path.abspath('config'))
10  import configure
11  configure_options = [
12    '--package-prefix-hash='+petsc_hash_pkgs,
13    '--with-make-test-np=15',
14    'COPTFLAGS=-g -O',
15    'FOPTFLAGS=-g -O',
16    'CXXOPTFLAGS=-g -O',
17    '--with-log=0',
18    '--with-info=0',
19    '--with-cuda=1',
20    '--with-precision=single',
21    '--with-clanguage=cxx',
22    '--with-single-library=0',
23    '--with-visibility=1',
24    '--download-hpddm',
25    # 28/02/2023, nvc/nvc++ would produce strange segmentation violation errors in C++20
26    # mode that could not be reproduced with any other compiler. Normally the first
27    # response would be 'there must be a bug in the code' -- and that may still be true --
28    # but no less than 3 other CI jobs reproduce the same package/env without these seg
29    # faults. So limiting to C++17 because maybe it *is* the compilers fault this time.
30    '--with-cxx-dialect=17',
31    # Note: If using nvcc with a host compiler other than the CUDA SDK default for your platform (GCC on Linux, clang
32    # on Mac OS X, MSVC on Windows), you must set -ccbin appropriately in CUDAFLAGS, as in the example for PGI below:
33    # 'CUDAFLAGS=-ccbin pgc++',
34    '--with-strict-petscerrorcode',
35  ]
36
37  configure.petsc_configure(configure_options)
38