# ============================================================================ #
# Copyright (c) 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.     #
# ============================================================================ #

# Allowlist of MLIR libraries that cudaqMLIR whole-archives and downstream
# plugins can link against.

# Core IR + support
MLIRIR
MLIRSupport

# Textual parsing and printing
MLIRParser
MLIRAsmParser

# Pass + analysis infrastructure
MLIRPass
MLIRAnalysis

# Pattern-rewrite / transform infrastructure
MLIRRewrite
MLIRTransformUtils
MLIRTransforms

# MLIR plugin loading (mlir::DialectPlugin / mlir::PassPlugin)
MLIRPluginsLib

# Common op/type interfaces a custom dialect or pass builds on
MLIRCallInterfaces
MLIRCastInterfaces
MLIRControlFlowInterfaces
MLIRDataLayoutInterfaces
MLIRFunctionInterfaces
MLIRInferTypeOpInterface
MLIRSideEffectInterfaces

# Foundational building-block dialects most custom dialects/lowerings reuse
MLIRFuncDialect
MLIRFuncInlinerExtension
MLIRArithDialect
MLIRControlFlowDialect
MLIRComplexDialect
MLIRMathDialect
MLIRLLVMDialect
MLIROpenMPDialect
MLIROpenACCDialect

# JIT / execution engine and pass-manager tools
MLIRExecutionEngine
MLIRExecutionEngineUtils
MLIROptLib
MLIRTranslateLib

# LLVM IR code-generation (lowering + export)
MLIRTargetLLVMIRExport
MLIRLLVMCommonConversion
MLIRLLVMToLLVMIRTranslation
MLIRBuiltinToLLVMIRTranslation
MLIROpenMPToLLVMIRTranslation
MLIRLLVMIRTransforms

# Arithmetic and type lowerings used by OptCodeGen
MLIRArithTransforms
MLIRArithToLLVM
MLIRComplexToLibm
MLIRComplexToLLVM
MLIRControlFlowToLLVM
MLIRFuncToLLVM
MLIRMathToFuncs
MLIRMathToLLVM
