[CAPI] Add circt-capi target and build it in CI (#7017)

Add a `circt-capi` target that depends on all C API libraries. Introduce
a new `add_circt_public_c_api_library` CMake function that wraps around
the MLIR equivalent, but also adds a dependency from `circt-capi`. Make
at least the short integration tests CI job build the `circt-capi`
target to ensure it has a bit of CI coverage.
This commit is contained in:
Fabian Schuiki 2024-05-09 11:21:33 -07:00 committed by GitHub
parent 1a311bbc32
commit 719bbfde79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 31 additions and 23 deletions

View File

@ -93,7 +93,7 @@ jobs:
-DCIRCT_SLANG_FRONTEND_ENABLED=ON -DCIRCT_SLANG_FRONTEND_ENABLED=ON
- name: Test CIRCT - name: Test CIRCT
run: | run: |
ninja -C build check-circt -j$(nproc) ninja -C build check-circt circt-capi -j$(nproc)
- name: Unit Test CIRCT - name: Unit Test CIRCT
run: | run: |
ninja -C build check-circt-unit -j$(nproc) ninja -C build check-circt-unit -j$(nproc)

View File

@ -196,6 +196,9 @@ add_custom_target(circt-headers)
set_target_properties(circt-headers PROPERTIES FOLDER "Misc") set_target_properties(circt-headers PROPERTIES FOLDER "Misc")
add_custom_target(circt-doc) add_custom_target(circt-doc)
# Umbrella target that builds all C API bindings.
add_custom_target(circt-capi)
# Add MLIR and LLVM headers to the include path # Add MLIR and LLVM headers to the include path
include_directories(${LLVM_INCLUDE_DIRS}) include_directories(${LLVM_INCLUDE_DIRS})
include_directories(${MLIR_INCLUDE_DIRS}) include_directories(${MLIR_INCLUDE_DIRS})

View File

@ -10,6 +10,11 @@ function(add_circt_interface interface)
add_dependencies(circt-headers MLIR${interface}IncGen) add_dependencies(circt-headers MLIR${interface}IncGen)
endfunction() endfunction()
function(add_circt_public_c_api_library name)
add_mlir_public_c_api_library(${ARGV})
add_dependencies(circt-capi ${name})
endfunction()
# Additional parameters are forwarded to tablegen. # Additional parameters are forwarded to tablegen.
function(add_circt_doc tablegen_file output_path command) function(add_circt_doc tablegen_file output_path command)
set(LLVM_TARGET_DEFINITIONS ${tablegen_file}.td) set(LLVM_TARGET_DEFINITIONS ${tablegen_file}.td)

View File

@ -1,4 +1,4 @@
add_mlir_public_c_api_library(CIRCTCAPIConversion add_circt_public_c_api_library(CIRCTCAPIConversion
Passes.cpp Passes.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC

View File

@ -20,7 +20,7 @@ set(LLVM_OPTIONAL_SOURCES
Verif.cpp Verif.cpp
) )
add_mlir_public_c_api_library(CIRCTCAPIComb add_circt_public_c_api_library(CIRCTCAPIComb
Comb.cpp Comb.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -29,7 +29,7 @@ add_mlir_public_c_api_library(CIRCTCAPIComb
CIRCTCombTransforms CIRCTCombTransforms
) )
add_mlir_public_c_api_library(CIRCTCAPIDebug add_circt_public_c_api_library(CIRCTCAPIDebug
Debug.cpp Debug.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -37,7 +37,7 @@ add_mlir_public_c_api_library(CIRCTCAPIDebug
CIRCTDebug CIRCTDebug
) )
add_mlir_public_c_api_library(CIRCTCAPIESI add_circt_public_c_api_library(CIRCTCAPIESI
ESI.cpp ESI.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -45,7 +45,7 @@ add_mlir_public_c_api_library(CIRCTCAPIESI
CIRCTESI CIRCTESI
) )
add_mlir_public_c_api_library(CIRCTCAPIFIRRTL add_circt_public_c_api_library(CIRCTCAPIFIRRTL
FIRRTL.cpp FIRRTL.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -54,7 +54,7 @@ add_mlir_public_c_api_library(CIRCTCAPIFIRRTL
CIRCTImportFIRFile CIRCTImportFIRFile
) )
add_mlir_public_c_api_library(CIRCTCAPICHIRRTL add_circt_public_c_api_library(CIRCTCAPICHIRRTL
CHIRRTL.cpp CHIRRTL.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -62,7 +62,7 @@ add_mlir_public_c_api_library(CIRCTCAPICHIRRTL
CIRCTFIRRTL CIRCTFIRRTL
) )
add_mlir_public_c_api_library(CIRCTCAPIMSFT add_circt_public_c_api_library(CIRCTCAPIMSFT
MSFT.cpp MSFT.cpp
DEPENDS DEPENDS
@ -75,7 +75,7 @@ add_mlir_public_c_api_library(CIRCTCAPIMSFT
CIRCTMSFTTransforms CIRCTMSFTTransforms
) )
add_mlir_public_c_api_library(CIRCTCAPIHW add_circt_public_c_api_library(CIRCTCAPIHW
HW.cpp HW.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -83,7 +83,7 @@ add_mlir_public_c_api_library(CIRCTCAPIHW
CIRCTHW CIRCTHW
) )
add_mlir_public_c_api_library(CIRCTCAPILLHD add_circt_public_c_api_library(CIRCTCAPILLHD
LLHD.cpp LLHD.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -91,7 +91,7 @@ add_mlir_public_c_api_library(CIRCTCAPILLHD
CIRCTLLHD CIRCTLLHD
) )
add_mlir_public_c_api_library(CIRCTCAPIMoore add_circt_public_c_api_library(CIRCTCAPIMoore
Moore.cpp Moore.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -99,7 +99,7 @@ add_mlir_public_c_api_library(CIRCTCAPIMoore
CIRCTMoore CIRCTMoore
) )
add_mlir_public_c_api_library(CIRCTCAPIOM add_circt_public_c_api_library(CIRCTCAPIOM
OM.cpp OM.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -108,7 +108,7 @@ add_mlir_public_c_api_library(CIRCTCAPIOM
CIRCTOMEvaluator CIRCTOMEvaluator
) )
add_mlir_public_c_api_library(CIRCTCAPISeq add_circt_public_c_api_library(CIRCTCAPISeq
Seq.cpp Seq.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -117,7 +117,7 @@ add_mlir_public_c_api_library(CIRCTCAPISeq
CIRCTSeqTransforms CIRCTSeqTransforms
) )
add_mlir_public_c_api_library(CIRCTCAPISV add_circt_public_c_api_library(CIRCTCAPISV
SV.cpp SV.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -126,7 +126,7 @@ add_mlir_public_c_api_library(CIRCTCAPISV
CIRCTSVTransforms CIRCTSVTransforms
) )
add_mlir_public_c_api_library(CIRCTCAPIFSM add_circt_public_c_api_library(CIRCTCAPIFSM
FSM.cpp FSM.cpp
DEPENDS DEPENDS
@ -139,7 +139,7 @@ add_mlir_public_c_api_library(CIRCTCAPIFSM
CIRCTFSMToSV CIRCTFSMToSV
) )
add_mlir_public_c_api_library(CIRCTCAPIHandshake add_circt_public_c_api_library(CIRCTCAPIHandshake
Handshake.cpp Handshake.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -150,7 +150,7 @@ add_mlir_public_c_api_library(CIRCTCAPIHandshake
CIRCTCFToHandshake CIRCTCFToHandshake
) )
add_mlir_public_c_api_library(CIRCTCAPIHWArith add_circt_public_c_api_library(CIRCTCAPIHWArith
HWArith.cpp HWArith.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -159,7 +159,7 @@ add_mlir_public_c_api_library(CIRCTCAPIHWArith
CIRCTHWArithToHW CIRCTHWArithToHW
) )
add_mlir_public_c_api_library(CIRCTCAPIVerif add_circt_public_c_api_library(CIRCTCAPIVerif
Verif.cpp Verif.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -168,7 +168,7 @@ add_mlir_public_c_api_library(CIRCTCAPIVerif
CIRCTVerifToSV CIRCTVerifToSV
) )
add_mlir_public_c_api_library(CIRCTCAPILTL add_circt_public_c_api_library(CIRCTCAPILTL
LTL.cpp LTL.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC
@ -176,7 +176,7 @@ add_mlir_public_c_api_library(CIRCTCAPILTL
CIRCTLTL CIRCTLTL
) )
add_mlir_public_c_api_library(CIRCTCAPIEmit add_circt_public_c_api_library(CIRCTCAPIEmit
Emit.cpp Emit.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC

View File

@ -1,4 +1,4 @@
add_mlir_public_c_api_library(CIRCTCAPIExportFIRRTL add_circt_public_c_api_library(CIRCTCAPIExportFIRRTL
ExportFIRRTL.cpp ExportFIRRTL.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC

View File

@ -1,4 +1,4 @@
add_mlir_public_c_api_library(CIRCTCAPIExportVerilog add_circt_public_c_api_library(CIRCTCAPIExportVerilog
ExportVerilog.cpp ExportVerilog.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC

View File

@ -1,4 +1,4 @@
add_mlir_public_c_api_library(CIRCTCAPIFirtool add_circt_public_c_api_library(CIRCTCAPIFirtool
Firtool.cpp Firtool.cpp
LINK_LIBS PUBLIC LINK_LIBS PUBLIC