# -*- YAML -*-
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  definitions:
  - compiler: [gcc@13.3.0]
  - geant4:
    - matrix:
      - - geant4
      -
        - '~qt+threads'
  - root:
    - matrix:
      - - root
      -
        - '+opengl+x'
  specs:
  - matrix:
    -
      - artdaq-core
      - art-root-io
      - gallery
      - canvas-root-io
    - - $^root
  - $geant4
  - cetmodules
  - cmake
  - cry
  - gdb
  - ifdh-art
  - scons @4.5.2
  - swig
  - valgrind
  - llvm
  view:
    default: # geant4~qt-root+x:
      root: .spack-env/view/g4_no_qt
      exclude:
      - geant4+qt
      - root~x
      - ^root~x
      link_type: symlink
      link: all
    g4_qt: # geant4+qt-root+x:
      root: .spack-env/view/g4_qt
      exclude:
      - geant4~qt
      - root~x
      - ^root~x
      link_type: symlink
      link: all
    no_x: # geant4~qt-root~x:
      root: .spack-env/view/no_x
      exclude:
      - geant4+qt
      - root+x
      - ^root+x
      link_type: symlink
      link: all
  concretizer:
    reuse:
      from:
      - type: local
      - type: external
    targets:
      granularity: generic
    unify: when_possible
  packages:
    all:
      target:
      - x86_64_v2
      providers:
        'libc':
        - glibc
        'zlib-api:':
        - zlib
      variants:
        - generator=ninja
    abseil-cpp:
      require:
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    art:
      require:
      - '@=3.15.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    artdaq-core:
      require:
      - '@v3_10_03'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    art-root-io:
      require:
      - '@=1.14.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    assimp:
      require:
      - '%gcc@11.4.1'
    autoconf:
      require:
      - '%gcc@11.4.1'
    autoconf-archive:
      require:
      - '%gcc@11.4.1'
    automake:
      require:
      - '%gcc@11.4.1'
    binutils:
      require:
      - '+gas+gold+headers+ld+lto+plugins'
      - '%gcc@11.4.1'
      - '@2.39:2'
    bazel:
      require:
      - '@5.2.0:'
      - '%gcc@11.4.1'
    bison:
      require:
      - '%gcc@11.4.1'
    boost:
      require:
      - '+atomic+chrono+exception+filesystem+iostreams+json+math+python+serialization+test+thread'
      - '@=1.82.0'
      - '%gcc@11.4.1'
    cairo:
      require:
      - '+X+gobject+png'
      - '%gcc@11.4.1'
    canvas:
      require:
      - '@=3.17.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    canvas-root-io:
      require:
      - '@=1.14.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    catch2:
      require:
      - build_type=Release
      - '%gcc@11.4.1'
    cetlib:
      require:
      - '@=3.19.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    cetlib-except:
      require:
      - '@=1.10.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    cetmodules:
      require:
      - '@=3.25.00'
      - build_type=Release
      - '%gcc@11.4.1'
    clhep:
      require:
      - '@=2.4.7.1'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    cmake:
      require:
      - '@3.27'
      - '~ownlibs'
      - build_type=Release
      - '%gcc@11.4.1'
    critic:
      require:
      - '@=2.14.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    cry:
      require:
      - '@=1.7'
      - '%gcc@11.4.1'
    curl:
      require:
      - '%gcc@11.4.1'
    diffutils:
      require:
      - '%gcc@11.4.1'
    doxygen:
      require:
      - build_type=Release
      - '%gcc@11.4.1'
    fftw:
      require:
      - '~mpi+openmp'
      - '%gcc@11.4.1'
    fhicl-cpp:
      require:
      - '@=4.19.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    flex:
      require:
      - '%gcc@11.4.1'
    fmt:
      require:
      - spec: '@:8.1.1'
    fontconfig:
      require:
      - '%gcc@11.4.1'
    freetype:
      require:
      - '%gcc@11.4.1'
    ftgl:
      require:
      - build_type=Release
      - '%gcc@11.4.1'
    gallery:
      require:
      - '@=1.23.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    gawk:
      require:
      - '%gcc@11.4.1'
    gcc:
      require:
      - '+binutils+bootstrap+graphite+profiled+strip~nvptx'
      - build_type=Release
      - languages=c,c++,fortran,lto
    gdb:
      require:
      - '%gcc@11.4.1'
    geant4:
      require:
      - '@11.1.2'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    geant4-data:
      require:
      - '%gcc@11.4.1'
    git:
      require:
      - '%gcc@11.4.1'
      - one_of:
        - '@2.39.4:2.39'
        - '@2.40.2:2.40'
        - '@2.42.2:2.42'
        - '@2.43.4:2.43'
        - '@2.44.1:2.44'
        - '@2.45.1:'
    gl2ps:
      require:
      - '%gcc@11.4.1'
    glew:
      require:
      - '@2.2.0:2'
      - '%gcc@11.4.1'
    glproto:
      require:
      - '%gcc@11.4.1'
    glx:
      require:
      - '%gcc@11.4.1'
    gmake:
      require:
      - '%gcc@11.4.1'
    gmp:
      require:
      - '%gcc@11.4.1'
    gobject-introspection:
      require:
      - '%gcc@11.4.1'
      - build_system=autotools
    gsl:
      require:
      - '%gcc@11.4.1'
    grpc:
      require:
      - '@=1.35.0'
      - '%gcc@11.4.1'
    harfbuzz:
      require:
      - '%gcc@11.4.1'
    hep-concurrency:
      require:
      - '@=1.10.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    hwloc:
      require:
      - '@2.0.1:'
      - '%gcc@11.4.1'
    icu4c:
      require:
      - '%gcc@11.4.1'
    ifbeam:
      require:
      - '@=2.5.23'
      - '%gcc@11.4.1'
    intel-oneapi-tbb:
      require:
      - '%gcc@11.4.1'
    ifdh-art:
      require:
      - '@=2.18.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    ifdhc:
      require:
      - '@=2.6.20'
      - '%gcc@11.4.1'
    ifdhc-config:
      require:
      - '@=2.6.20'
      - '%gcc@11.4.1'
    intel-tbb-oneapi:
      buildable: false
    isl:
      require:
      - '%gcc@11.4.1'
    json-c:
      require:
      - '%gcc@11.4.1'
    jsoncpp:
      require:
      - '@=1.9.5'
      - build_system=meson
      - '%gcc@11.4.1'
    larana:
      require:
      - '@=09.15.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larcore:
      require:
      - '@=09.11.01'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larcorealg:
      require:
      - '@=09.13.01'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larcoreobj:
      require:
      - '@=09.10.01'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    lardata:
      require:
      - '@=09.16.03'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    lardataalg:
      require:
      - '@=09.17.03'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    lardataobj:
      require:
      - '@=09.18.03'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    lareventdisplay:
      require:
      - '@=09.11.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larevt:
      require:
      - '@=09.10.03'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larexamples:
      require:
      - '@=09.09.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larg4:
      require:
      - '@=09.19.03'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larpandora:
      require:
      - '@=09.22.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larpandoracontent:
      require:
      - '@=04.08.01'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larreco:
      require:
      - '@=09.25.00'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larrecodnn:
      require:
      - '@=09.23.00'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larsim:
      require:
      - '@=09.43.00'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larsimdnn:
      require:
      - '@=09.06.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larsimrad:
      require:
      - '@=09.09.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larsoft:
      require:
      - '@=09.90.01'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    larsoftobj:
      require:
      - build_type=Release
      - '@=09.35.03'
      - '%gcc@13.3.0'
    larwirecell:
      require:
      - '@=09.18.04'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    libarchive:
      require:
      - '%gcc@11.4.1'
      - 'crypto=openssl'
    libedit:
      require:
      - '%gcc@11.4.1'
    libffi:
      require:
      - '%gcc@11.4.1'
      - '@:3.3'
    libice:
      require:
      - '%gcc@11.4.1'
    libjpeg-turbo:
      require:
      - '%gcc@11.4.1'
    libmng:
      require:
      - '%gcc@11.4.1'
    libpng:
      require:
      - '%gcc@11.4.1'
    libsm:
      require:
      - '%gcc@11.4.1'
    libtiff:
      require:
      - '%gcc@11.4.1'
    libtool:
      require:
      - '%gcc@11.4.1'
    libunwind:
      require:
      - '%gcc@11.4.1'
    libuv:
      require:
      - '%gcc@11.4.1'
    libx11:
      require:
      - '%gcc@11.4.1'
    libxcb:
      require:
      - '%gcc@11.4.1'
    libxext:
      require:
      - '%gcc@11.4.1'
    libxft:
      require:
      - '%gcc@11.4.1'
    libxml2:
      require:
      - '@=2.9.12'
      - '%gcc@11.4.1'
    libxpm:
      require:
      - '%gcc@11.4.1'
    libxt:
      require:
      - '%gcc@11.4.1'
    llvm:
      require:
      - one_of: ['+zstd']
        when: '@15:'
      - build_type=Release
    lz4:
      require:
      - '%gcc@11.4.1'
    marley:
      require:
      - '@=1.2.1'
      - '%gcc@11.4.1'
    mesa:
      require:
      - '~llvm'
      - '%gcc@11.4.1'
    mesa-glu:
      require:
      - '%gcc@11.4.1'
    meson:
      require:
      - '@1.0.0:'
      - '%gcc@11.4.1'
    messagefacility:
      require:
      - '@=2.11.00'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    m4:
      require:
      - '%gcc@11.4.1'
    mpc:
      require:
      - '%gcc@11.4.1'
    mpfr:
      require:
      - '%gcc@11.4.1'
    nasm:
      require:
      - '%gcc@11.4.1'
    ncurses:
      require:
      - '%gcc@11.4.1'
    nghttp:
      require:
      - '%gcc@11.4.1'
    ninja:
      require:
      - '%gcc@11.4.1'
    nlohmann-json:
      require:
      - '@3.11.2:'
      - '%gcc@11.4.1'
    nucondb:
      require:
      - '@=2.5.23'
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    nug4:
      require:
      - '@=1.16.06'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    nugen:
      require:
      - '@=1.20.07'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    nurandom:
      require:
      - '@=1.11.05'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    nusimdata:
      require:
      - '@=1.28.06'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    nutools:
      require:
      - '@=3.16.06'
      - build_type=Release
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    openblas:
      require:
      - 'threads=openmp'
      - '%gcc@11.4.1'
    openssl:
      buildable: False
      require:
      - '%gcc@11.4.1'
    patchelf:
      require:
      - '@0.16.1:'
      - '%gcc@11.4.1'
    pcre:
      require:
      - '%gcc@11.4.1'
    pcre2:
      require:
      - '%gcc@11.4.1'
    perl:
      require:
      - '+open+opcode'
      - '%gcc@11.4.1'
    perl-data-dumper:
      require:
      - '%gcc@11.4.1'
    pkg-config:
      require:
      - '%gcc@11.4.1'
    pkgconfig:
      require:
      -  pkg-config
    postgresql:
      require:
      - '+client_only+gssapi+perl+threadsafe+xml'
      - '%gcc@11.4.1'
    protobuf:
      require:
      - '@3.21.12:3.21'
      - build_type=Release
      - '%gcc@11.4.1'
    py-mako:
      require:
      - '%gcc@11.4.1'
    py-pip:
      require:
      - '%gcc@11.4.1'
    py-pybind11:
      require:
      - '%gcc@11.4.1'
    py-setuptools:
      require:
      - '%gcc@11.4.1'
    py-sphinx:
      require:
      - '@=7.2.6'
    py-urllib3:
      require:
      # py-urllib3@2: requires openssl@1.1: at runtime.
      - spec: '@:1'
        when: os=scientific7
    py-sympy:
      require:
      - spec: '@1:'
    py-torch:
      require:
      - '@=2.1.1'
      - '~cuda'
      - '%gcc@11.4.1'
    py-tensorflow:
      require:
      - '@=2.15.0'
      - '~cuda'
      - '%gcc@11.4.1'
    py-wheel:
      require:
      - '%gcc@11.4.1'
    pythia8:
      require:
      - '%gcc@11.4.1'
    python:
      require:
      - '@3.10'
      - '%gcc@11.4.1'
    qt:
      require:
      - '+gui'
      - '@5.15.9:'
      - '%gcc@11.4.1'
    range-v3:
      require:
      - '~doc'
      - '%gcc@11.4.1'
    rhash:
      require:
      - '%gcc@11.4.1'
    root:
      require:
      - '~davix+emacs+fftw+http+math+mlp+postgres+root7+spectrum+sqlite+ssl+tmva+tmva-sofie+webgui+xrootd'
      - '@6.32.04'
      - build_type=RelWithDebInfo
      - '%gcc@13.3.0'
      - 'cxxstd=20'
      
    rust:
      require:
       - '%gcc@11.4.1'
    scitokens-cpp:
      require:
      - build_type=Release
      - '%gcc@11.4.1'
    spdlog:
      require:
      - '@=1.9.2'
      - build_type=Release
      - '%gcc@11.4.1'
    sqlite:
      require:
      - '%gcc@11.4.1'
    tbb:
      require:
      - 'builtin.intel-oneapi-tbb'
    texinfo:
      require:
      - '%gcc@11.4.1'
    trace:
      require:
      - '@v3_17_11'
      - build_type=Release
      - '+mf~kmod'
      - '%gcc@13.3.0'
      
    triton:
      require:
      - '@23.09'
      - generator=make
      - '%gcc@13.3.0'
    unuran:
      require:
      - '%gcc@11.4.1'
    valgrind:
      require:
      - '%gcc@11.4.1'
    vdt:
      require:
      - '%gcc@11.4.1'
    veccore:
      require:
      - '@0.8.1:'
      - build_type=Release
      - '%gcc@11.4.1'
    vecgeom:
      require:
      - '@1.2.2:'
      - build_type=Release
      - '~gdml~geant4'
      - '%gcc@11.4.1'
    xerces-c:
      require:
      - '@=3.2.3'
      - 'transcoder=icu'
      - '%gcc@11.4.1'
    xextproto:
      require:
      - '%gcc@11.4.1'
    xproto:
      require:
      - '%gcc@11.4.1'
    xrandr:
      require:
      - '%gcc@11.4.1'
    xrootd:
      require:
      - '+client_only~davix+krb5~readline+python+scitokens-cpp'
      - build_type=Release
      - '%gcc@11.4.1'
    xxhash:
      require:
      - '%gcc@11.4.1'
    xz:
      require:
      - '%gcc@11.4.1'
    zlib:
      require:
      - '%gcc@11.4.1'
    zstd:
      require:
      - '%gcc@11.4.1'

