#-------------------------------------------------------------------------------
# The MPACT Compiler Tests
#-------------------------------------------------------------------------------

configure_lit_site_cfg(
        ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
        ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
        MAIN_CONFIG
        ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
)

set(MPACT_TEST_DEPENDS
        FileCheck count not
	MPACTBenchmarkPythonModules
	MPACTPythonModules
        TorchMLIRPythonModules
        torch-mlir-opt
        )

add_lit_testsuite(check-mpact "Running the MPACT regression tests"
        ${CMAKE_CURRENT_BINARY_DIR}
	DEPENDS ${MPACT_TEST_DEPENDS}
        )
set_target_properties(check-mpact PROPERTIES FOLDER "Tests")

# TODO: find omp library.
find_package(OpenMP REQUIRED)
add_compile_options(${OpenMP_CXX_FLAGS})
# target_link_libraries(check-mpact OpenMP::OpenMP_CXX)

add_lit_testsuites(MPACT ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${TORCH_MLIR_TEST_DEPENDS})
