# ============================================================================ #
# Copyright (c) 2022 - 2026 NVIDIA Corporation & Affiliates.                   #
# All rights reserved.                                                         #
#                                                                              #
# This source code and the accompanying materials are made available under     #
# the terms of the Apache License 2.0 which accompanies this distribution.     #
# ============================================================================ #

name: fermioniq
description: "CUDA-Q target for Fermioniq."
config:
  # Tell DefaultQuantumPlatform what QPU subtype to use
  platform-qpu: fermioniq
  # Tell NVQ++ to generate glue code to set the target backend name
  gen-target-backend: true
  # Add preprocessor defines to compilation
  preprocessor-defines: ["-D CUDAQ_QUANTUM_DEVICE"]
  # Add the fermioniq-qpu library to the link list
  link-libs: ["-lcudaq-fermioniq-qpu"]
  jit-high-level-pipeline: "expand-measurements"
  jit-mid-level-pipeline: "fermioniq-gate-set-mapping"
  # Tell the rest-qpu that we are generating QIR.
  codegen-emission: qir-base

target-arguments:
  - key: remote-config
    required: false
    type: string
    platform-arg: remote_config 
    help-string: "Specify the Fermioniq Remote Configuration."
  - key: project-id
    required: false
    type: string
    platform-arg: project_id
    help-string: "Specify the project."
  - key: bond-dim
    required: false
    type: string
    platform-arg: bond_dim
    help-string: "Specify bond-dimension. Applies to all circuits."
