# SPDX-License-Identifier: Apache-2.0

zephyr_library()
zephyr_library_property(ALLOW_EMPTY TRUE)
zephyr_library_sources_ifdef(CONFIG_ARCV2_INTERRUPT_UNIT    intc_arcv2_irq_unit.c)
zephyr_library_sources_ifdef(CONFIG_CAVS_ICTL               intc_cavs.c)
zephyr_library_sources_ifdef(CONFIG_DW_ICTL                 intc_dw.c)
zephyr_library_sources_ifdef(CONFIG_DW_ICTL_ACE             intc_dw_ace.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INTC_STM32         intc_gpio_stm32.c)
zephyr_library_sources_ifdef(CONFIG_EXTI_STM32              intc_exti_stm32.c)
zephyr_library_sources_ifdef(CONFIG_GD32_EXTI               intc_gd32_exti.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V1                  intc_gic.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V2                  intc_gic.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V3                  intc_gicv3.c)
zephyr_library_sources_ifdef(CONFIG_GIC_V3_ITS              intc_gicv3_its.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INTC_STM32WB0      intc_gpio_stm32wb0.c)
zephyr_library_sources_ifdef(CONFIG_HAZARD3_INTC            intc_hazard3.c)
zephyr_library_sources_ifdef(CONFIG_HAZARD3_INTC            intc_hazard3.S)
zephyr_library_sources_ifdef(CONFIG_INTEL_VTD_ICTL          intc_intel_vtd.c)
zephyr_library_sources_ifdef(CONFIG_IOAPIC                  intc_ioapic.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT51XXX_INTC        intc_ite_it51xxx.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_INTC        intc_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_INTC_V2     intc_ite_it8xxx2_v2.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT51XXX_WUC         wuc_ite_it51xxx.c)
zephyr_library_sources_ifdef(CONFIG_ITE_IT8XXX2_WUC         wuc_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_LEON_IRQMP              intc_irqmp.c)
zephyr_library_sources_ifdef(CONFIG_LOAPIC                  intc_loapic.c intc_system_apic.c)
zephyr_library_sources_ifdef(CONFIG_LOAPIC_SPURIOUS_VECTOR  intc_loapic_spurious.S)
zephyr_library_sources_ifdef(CONFIG_MCHP_ECIA_XEC           intc_mchp_ecia_xec.c)
zephyr_library_sources_ifdef(CONFIG_NPCX_MIWU               intc_miwu.c)
zephyr_library_sources_ifdef(CONFIG_PLIC                    intc_plic.c)
zephyr_library_sources_ifdef(CONFIG_RV32M1_INTMUX           intc_rv32m1_intmux.c)
zephyr_library_sources_ifdef(CONFIG_SAM0_EIC                intc_sam0_eic.c)
zephyr_library_sources_ifdef(CONFIG_SHARED_IRQ              intc_shared_irq.c)
zephyr_library_sources_ifdef(CONFIG_INTC_ESP32              intc_esp32.c)
zephyr_library_sources_ifdef(CONFIG_SWERV_PIC               intc_swerv_pic.c)
zephyr_library_sources_ifdef(CONFIG_VEXRISCV_LITEX_IRQ      intc_vexriscv_litex.c)
zephyr_library_sources_ifdef(CONFIG_VIM                     intc_vim.c)
zephyr_library_sources_ifdef(CONFIG_CLIC                    intc_clic.c)
zephyr_library_sources_ifdef(CONFIG_CLIC                    intc_clic.S)
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC               intc_nrfx_clic.c)
zephyr_library_sources_ifdef(CONFIG_NRFX_CLIC               intc_nrfx_clic.S)
zephyr_library_sources_ifdef(CONFIG_NXP_SIUL2_EIRQ          intc_nxp_siul2_eirq.c)
zephyr_library_sources_ifdef(CONFIG_NXP_S32_WKPU            intc_wkpu_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_XMC4XXX_INTC            intc_xmc4xxx.c)
zephyr_library_sources_ifdef(CONFIG_NXP_PINT                intc_nxp_pint.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RX_ICU          intc_renesas_rx_icu.c)
zephyr_library_sources_ifdef(CONFIG_RENESAS_RZ_EXT_IRQ      intc_renesas_rz_ext_irq.c)
zephyr_library_sources_ifdef(CONFIG_NXP_IRQSTEER            intc_nxp_irqsteer.c)
zephyr_library_sources_ifdef(CONFIG_INTC_MTK_ADSP           intc_mtk_adsp.c)
zephyr_library_sources_ifdef(CONFIG_WCH_PFIC                intc_wch_pfic.c)
zephyr_library_sources_ifdef(CONFIG_WCH_EXTI                intc_wch_exti.c)

if(CONFIG_INTEL_VTD_ICTL)
  zephyr_library_include_directories(${ZEPHYR_BASE}/arch/x86/include)
endif()

if(CONFIG_PLIC_SHELL)
  message(WARNING "
      WARNING:  `CONFIG_PLIC_SHELL` is enabled.
      This can use quite a bit of RAM (PLICs * IRQs * sizeof(uint16_t))"
  )
endif()

if(CONFIG_NXP_PINT)
  zephyr_compile_definitions(PINT_USE_LEGACY_CALLBACK=1)
endif()

zephyr_library_include_directories(${ZEPHYR_BASE}/arch/common/include)
