feat: start abaqus input parser

This commit is contained in:
김경종
2026-06-12 17:15:05 +09:00
parent 825e03dbaf
commit b57b0bf63a
14 changed files with 978 additions and 22 deletions
+21 -6
View File
@@ -32,6 +32,17 @@ def _cmake_config() -> tuple[str, str, str, Path]:
return generator, platform, config, build_dir
def _tool_command(tool_name: str) -> str:
if shutil.which(tool_name) is not None:
return tool_name
exe = COMMON_CMAKE_BIN / f"{tool_name}.exe"
if exe.exists():
return f'"{exe}"'
return tool_name
def _read_presets(root: Path) -> dict:
presets_file = root / "CMakePresets.json"
if not presets_file.exists():
@@ -53,13 +64,15 @@ def _preset_binary_dir(root: Path, preset: dict) -> Path:
def load_preset_commands(root: Path) -> list[str]:
payload = _read_presets(root)
config = os.environ.get("HARNESS_CMAKE_CONFIG", DEFAULT_CONFIG)
cmake = _tool_command("cmake")
ctest = _tool_command("ctest")
for preset in payload.get("configurePresets", []):
if isinstance(preset, dict) and preset.get("name") == PRESET_NAME:
build_dir = _preset_binary_dir(root, preset)
return [
f"cmake --preset {PRESET_NAME}",
f'cmake --build "{build_dir}" --config {config}',
f'ctest --test-dir "{build_dir}" --output-on-failure -C {config}',
f"{cmake} --preset {PRESET_NAME}",
f'{cmake} --build "{build_dir}" --config {config}',
f'{ctest} --test-dir "{build_dir}" --output-on-failure -C {config}',
]
return []
@@ -71,10 +84,12 @@ def load_cmake_commands(root: Path) -> list[str]:
generator, platform, config, build_dir = _cmake_config()
if not build_dir.is_absolute():
build_dir = root / build_dir
cmake = _tool_command("cmake")
ctest = _tool_command("ctest")
return [
f'cmake -S "{root}" -B "{build_dir}" -G "{generator}" -A {platform}',
f'cmake --build "{build_dir}" --config {config}',
f'ctest --test-dir "{build_dir}" --output-on-failure -C {config}',
f'{cmake} -S "{root}" -B "{build_dir}" -G "{generator}" -A {platform}',
f'{cmake} --build "{build_dir}" --config {config}',
f'{ctest} --test-dir "{build_dir}" --output-on-failure -C {config}',
]