Skip to content

Commit 96d5ab2

Browse files
committed
🩹 Allow multi-config builds for lit tests
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
1 parent a51a09c commit 96d5ab2

2 files changed

Lines changed: 28 additions & 6 deletions

File tree

mlir/test/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ add_lit_testsuite(mqt-core-mlir-lit-test "Running the MQT MLIR tests" ${CMAKE_CU
2525
set_target_properties(mqt-core-mlir-lit-test PROPERTIES FOLDER "Tests")
2626

2727
add_test(NAME mqt-core-mlir-lit-test COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target
28-
mqt-core-mlir-lit-test)
29-
set_tests_properties(mqt-core-mlir-lit-test PROPERTIES DEPENDS mqt-core-mlir-lit-test-build-only)
28+
mqt-core-mlir-lit-test --config $<CONFIG>)
29+
set_tests_properties(mqt-core-mlir-lit-test PROPERTIES DEPENDS ${MQT_CORE_MLIR_TEST_DEPENDS})

mlir/test/lit.cfg.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from __future__ import annotations
1717

18+
import sys
1819
from pathlib import Path
1920

2021
import lit.formats
@@ -38,7 +39,28 @@
3839
# Define where to execute tests (and produce the output).
3940
config.test_exec_root = Path(config.mqt_core_mlir_test_dir)
4041

41-
multi_config_path = Path(config.mqt_core_mlir_tools_dir) / config.cmake_build_type
42-
tool_dirs = [config.llvm_tools_dir, config.mqt_core_mlir_tools_dir, str(multi_config_path)]
43-
tools = ["not", "FileCheck", "quantum-opt"]
44-
llvm_config.add_tool_substitutions(tools, tool_dirs)
42+
# Add substitutions for the required tools.
43+
found = llvm_config.add_tool_substitutions(tools=["not", "FileCheck", "split-file"])
44+
if not found:
45+
msg = "Could not find required LLVM tools 'not' and 'FileCheck'."
46+
raise RuntimeError(msg)
47+
48+
# Successively check directories whether they contain the quantum-opt tool
49+
tool_name = "quantum-opt" if sys.platform != "win32" else "quantum-opt.exe"
50+
base_tool_dir = Path(config.mqt_core_mlir_tools_dir)
51+
52+
candidate_dirs = [base_tool_dir]
53+
if config.cmake_build_type:
54+
candidate_dirs.append(base_tool_dir / config.cmake_build_type)
55+
candidate_dirs.extend(base_tool_dir / cfg for cfg in ["Debug", "Release", "RelWithDebInfo", "MinSizeRel"])
56+
57+
found = False
58+
for candidate_dir in candidate_dirs:
59+
if (candidate_dir / tool_name).exists():
60+
success = llvm_config.add_tool_substitutions(["quantum-opt"], [str(candidate_dir)])
61+
found = True
62+
break
63+
64+
if not found:
65+
msg = f"Could not find {tool_name} anywhere under {base_tool_dir}."
66+
raise RuntimeError(msg)

0 commit comments

Comments
 (0)