This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm-ffi.git


The following commit(s) were added to refs/heads/main by this push:
     new d4cfd86  [Minor] log ninja result (#584)
d4cfd86 is described below

commit d4cfd86ecfb4cc8e769412627ad768e43093b21b
Author: DarkSharpness <[email protected]>
AuthorDate: Wed May 13 22:46:11 2026 +0800

    [Minor] log ninja result (#584)
    
    should fix #565
---
 python/tvm_ffi/cpp/extension.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/python/tvm_ffi/cpp/extension.py b/python/tvm_ffi/cpp/extension.py
index a7b3514..32b3b17 100644
--- a/python/tvm_ffi/cpp/extension.py
+++ b/python/tvm_ffi/cpp/extension.py
@@ -20,6 +20,7 @@ from __future__ import annotations
 
 import functools
 import hashlib
+import logging
 import os
 import shutil
 import subprocess
@@ -36,6 +37,8 @@ from tvm_ffi.utils import FileLock
 IS_WINDOWS = sys.platform == "win32"
 BACKEND_STR = Literal["cuda", "hip"]
 
+logger = logging.getLogger(__name__)
+
 
 @functools.lru_cache
 def _detect_gpu_backend() -> BACKEND_STR:
@@ -590,9 +593,9 @@ def build_ninja(build_dir: str) -> None:
         status = _run_command_in_dev_prompt(args=command, cwd=build_dir, 
capture_output=True)
     else:
         status = subprocess.run(check=False, args=command, cwd=build_dir, 
capture_output=True)
+    encoding = "oem" if IS_WINDOWS else "utf-8"
     if status.returncode != 0:
         msg = [f"ninja exited with status {status.returncode}"]
-        encoding = "oem" if IS_WINDOWS else "utf-8"
         if status.stdout:
             msg.append(f"stdout:\n{status.stdout.decode(encoding)}")
         if status.stderr:
@@ -600,6 +603,12 @@ def build_ninja(build_dir: str) -> None:
 
         raise RuntimeError("\n".join(msg))
 
+    LOG_BUILD = os.environ.get("TVM_FFI_CPP_EXTENSION_LOG_BUILD", "0")
+    if LOG_BUILD in ("1", "stdout"):
+        logger.info("ninja build stdout:\n%s", status.stdout.decode(encoding))
+    if LOG_BUILD in ("1", "stderr"):
+        logger.info("ninja build stderr:\n%s", status.stderr.decode(encoding))
+
 
 # Translation table for escaping C++ string literals
 _CPP_ESCAPE_TABLE = str.maketrans(

Reply via email to