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

junrushao 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 a1cb746  build: Rename Import Targets (#354)
a1cb746 is described below

commit a1cb746201412a943c29d942e6b2c29b36d97c48
Author: Junru Shao <[email protected]>
AuthorDate: Mon Dec 22 10:15:18 2025 -0800

    build: Rename Import Targets (#354)
    
    This PR renames imported targets in `tvm_ffi-config.cmake`
    - `tvm_ffi_shared` => `tvm_ffi::shared`
    - `tvm_ffi_header` => `tvm_ffi::header`
    
    in order to avoid name conflicts with targets defined in
    `CMakeLists.txt`
---
 cmake/Utils/EmbedCubin.cmake                       | 14 +++++++++++--
 cmake/Utils/Library.cmake                          | 23 +++++++++++-----------
 cmake/tvm_ffi-config.cmake                         | 21 ++++++++++----------
 docs/get_started/quickstart.rst                    |  4 ++--
 .../cubin_launcher/dynamic_cubin/CMakeLists.txt    |  2 +-
 .../cubin_launcher/embedded_cubin/CMakeLists.txt   |  2 +-
 examples/quickstart/CMakeLists.txt                 |  8 +++-----
 examples/stable_c_abi/CMakeLists.txt               |  6 ++----
 8 files changed, 43 insertions(+), 37 deletions(-)

diff --git a/cmake/Utils/EmbedCubin.cmake b/cmake/Utils/EmbedCubin.cmake
index 7244f0f..26af6d8 100644
--- a/cmake/Utils/EmbedCubin.cmake
+++ b/cmake/Utils/EmbedCubin.cmake
@@ -173,8 +173,18 @@ function (tvm_ffi_embed_cubin)
   get_filename_component(OUTPUT_NAME "${ARG_OUTPUT_ABS}" NAME_WE)
   set(INTERMEDIATE_OBJ "${OUTPUT_DIR}/${OUTPUT_NAME}_intermediate.o")
 
-  # Get include directories from tvm_ffi_header
-  get_target_property(TVM_FFI_INCLUDES tvm_ffi_header 
INTERFACE_INCLUDE_DIRECTORIES)
+  # Get include directories from tvm_ffi header target
+  if (TARGET tvm_ffi::header)
+    set(TVM_FFI_HEADER_TARGET tvm_ffi::header)
+  elseif (TARGET tvm_ffi_header)
+    set(TVM_FFI_HEADER_TARGET tvm_ffi_header)
+  else ()
+    message(
+      FATAL_ERROR
+        "tvm_ffi_embed_cubin: required target 'tvm_ffi::header' or 
'tvm_ffi_header' does not exist."
+    )
+  endif ()
+  get_target_property(TVM_FFI_INCLUDES ${TVM_FFI_HEADER_TARGET} 
INTERFACE_INCLUDE_DIRECTORIES)
 
   # Convert list to -I flags
   set(INCLUDE_FLAGS "")
diff --git a/cmake/Utils/Library.cmake b/cmake/Utils/Library.cmake
index 012b3ca..e6d4e2d 100644
--- a/cmake/Utils/Library.cmake
+++ b/cmake/Utils/Library.cmake
@@ -145,17 +145,18 @@ endfunction ()
 #   [STUB_INIT ON|OFF] [STUB_DIR <dir>] [STUB_PKG <pkg>] [STUB_PREFIX <prefix>]
 # )
 # Configure a target to integrate with TVM-FFI CMake utilities:
-#   - Optionally link against tvm_ffi_header and/or tvm_ffi_shared
+#   - Link against tvm_ffi::header and/or tvm_ffi::shared
 #   - Always apply tvm_ffi_add_prefix_map(target_name <current source dir>)
-#   - Optionally enable Apple dSYM generation via 
tvm_ffi_add_apple_dsymutil(target_name)
-#   - Optionally apply MSVC-specific flags via 
tvm_ffi_add_msvc_flags(target_name)
+#   - Enable Apple dSYM generation via tvm_ffi_add_apple_dsymutil(target_name)
+#   - Apply MSVC-specific flags via tvm_ffi_add_msvc_flags(target_name)
+#   - Add post-build step to generate Python stubs via tvm_ffi.stub.cli
 #
 # Parameters:
 #   target_name: Existing CMake target to modify (positional, required)
 #
 # Keyword parameters:
-#   LINK_SHARED:  Whether to link tvm_ffi_shared into the target (default: ON; 
ON/OFF-style)
-#   LINK_HEADER:  Whether to link tvm_ffi_header into the target (default: ON; 
ON/OFF-style)
+#   LINK_SHARED:  Whether to link tvm_ffi::shared into the target (default: 
ON; ON/OFF-style)
+#   LINK_HEADER:  Whether to link tvm_ffi::header into the target (default: 
ON; ON/OFF-style)
 #   DEBUG_SYMBOL: Whether to enable debug symbol post-processing hooks.
 #                 On Apple this calls tvm_ffi_add_apple_dsymutil(target_name) 
(default: ON; ON/OFF-style)
 #                 On non-Apple platforms this is currently a no-op unless you 
extend it. (default: ON)
@@ -257,24 +258,24 @@ function (tvm_ffi_configure_target target)
 
   # LINK_HEADER
   if (tvm_ffi_arg__LINK_HEADER)
-    if (TARGET tvm_ffi_header)
-      target_link_libraries("${target}" PRIVATE tvm_ffi_header)
+    if (TARGET tvm_ffi::header)
+      target_link_libraries("${target}" PRIVATE tvm_ffi::header)
     else ()
       message(
         FATAL_ERROR
-          "tvm_ffi_configure_target(${target}): LINK_HEADER requested but 
target 'tvm_ffi_header' does not exist."
+          "tvm_ffi_configure_target(${target}): LINK_HEADER requested but 
targets 'tvm_ffi::header' do not exist."
       )
     endif ()
   endif ()
 
   # LINK_SHARED
   if (tvm_ffi_arg__LINK_SHARED)
-    if (TARGET tvm_ffi_shared)
-      target_link_libraries("${target}" PRIVATE tvm_ffi_shared)
+    if (TARGET tvm_ffi::shared)
+      target_link_libraries("${target}" PRIVATE tvm_ffi::shared)
     else ()
       message(
         FATAL_ERROR
-          "tvm_ffi_configure_target(${target}): LINK_SHARED requested but 
target 'tvm_ffi_shared' does not exist."
+          "tvm_ffi_configure_target(${target}): LINK_SHARED requested but 
targets 'tvm_ffi::shared' do not exist."
       )
     endif ()
   endif ()
diff --git a/cmake/tvm_ffi-config.cmake b/cmake/tvm_ffi-config.cmake
index 2129193..63333da 100644
--- a/cmake/tvm_ffi-config.cmake
+++ b/cmake/tvm_ffi-config.cmake
@@ -42,23 +42,22 @@ execute_process(
 
 message(STATUS "Finding libfiles ${tvm_ffi_LIB_FILES}")
 
-add_library(tvm_ffi_header INTERFACE)
-target_compile_features(tvm_ffi_header INTERFACE cxx_std_17)
-target_include_directories(tvm_ffi_header INTERFACE "${tvm_ffi_INCLUDE_DIR}")
-target_include_directories(tvm_ffi_header INTERFACE 
"${tvm_ffi_DLPACK_INCLUDE_DIR}")
+add_library(tvm_ffi::header INTERFACE IMPORTED)
+target_compile_features(tvm_ffi::header INTERFACE cxx_std_17)
+target_include_directories(tvm_ffi::header INTERFACE "${tvm_ffi_INCLUDE_DIR}")
+target_include_directories(tvm_ffi::header INTERFACE 
"${tvm_ffi_DLPACK_INCLUDE_DIR}")
 
-add_library(tvm_ffi_shared SHARED IMPORTED)
-target_compile_features(tvm_ffi_shared INTERFACE cxx_std_17)
+add_library(tvm_ffi::shared SHARED IMPORTED)
+target_compile_features(tvm_ffi::shared INTERFACE cxx_std_17)
 
 if (WIN32)
-  set_target_properties(tvm_ffi_shared PROPERTIES IMPORTED_IMPLIB 
"${tvm_ffi_LIB_FILES}")
+  set_target_properties(tvm_ffi::shared PROPERTIES IMPORTED_IMPLIB 
"${tvm_ffi_LIB_FILES}")
 else ()
-  set_target_properties(tvm_ffi_shared PROPERTIES IMPORTED_LOCATION 
"${tvm_ffi_LIB_FILES}")
+  set_target_properties(tvm_ffi::shared PROPERTIES IMPORTED_LOCATION 
"${tvm_ffi_LIB_FILES}")
 endif ()
-# cmake-lint: disable=C0307
 set_target_properties(
-  tvm_ffi_shared PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
-                            
"${tvm_ffi_INCLUDE_DIR};${tvm_ffi_DLPACK_INCLUDE_DIR}"
+  tvm_ffi::shared PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+                             
"${tvm_ffi_INCLUDE_DIR};${tvm_ffi_DLPACK_INCLUDE_DIR}"
 )
 
 include(${CMAKE_CURRENT_LIST_DIR}/Utils/Library.cmake)
diff --git a/docs/get_started/quickstart.rst b/docs/get_started/quickstart.rst
index c702c7c..958b0a4 100644
--- a/docs/get_started/quickstart.rst
+++ b/docs/get_started/quickstart.rst
@@ -132,7 +132,7 @@ TVM-FFI natively integrates with CMake via ``find_package`` 
as demonstrated belo
       execute_process(COMMAND "${Python_EXECUTABLE}" -m tvm_ffi.config 
--cmakedir OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE tvm_ffi_ROOT)
       find_package(tvm_ffi CONFIG REQUIRED)
 
-      # Link C++ target to `tvm_ffi_header` and `tvm_ffi_shared`
+      # Link C++ target to `tvm_ffi::header` and `tvm_ffi::shared`
       add_library(add_one_cpu SHARED compile/add_one_cpu.cc)
       tvm_ffi_configure_target(add_one_cpu)
 
@@ -146,7 +146,7 @@ TVM-FFI natively integrates with CMake via ``find_package`` 
as demonstrated belo
       execute_process(COMMAND "${Python_EXECUTABLE}" -m tvm_ffi.config 
--cmakedir OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE tvm_ffi_ROOT)
       find_package(tvm_ffi CONFIG REQUIRED)
 
-      # Link CUDA target to `tvm_ffi_header` and `tvm_ffi_shared`
+      # Link CUDA target to `tvm_ffi::header` and `tvm_ffi::shared`
       add_library(add_one_cuda SHARED compile/add_one_cuda.cu)
       tvm_ffi_configure_target(add_one_cuda)
 
diff --git a/examples/cubin_launcher/dynamic_cubin/CMakeLists.txt 
b/examples/cubin_launcher/dynamic_cubin/CMakeLists.txt
index 3ca7462..dd30d8b 100644
--- a/examples/cubin_launcher/dynamic_cubin/CMakeLists.txt
+++ b/examples/cubin_launcher/dynamic_cubin/CMakeLists.txt
@@ -52,7 +52,7 @@ add_custom_target(
 
 # Step 2: Build lib_dynamic shared library (loads CUBIN from file at runtime)
 add_library(lib_dynamic SHARED src/lib_dynamic.cc)
-target_link_libraries(lib_dynamic PRIVATE tvm_ffi_header tvm_ffi_shared 
CUDA::cudart)
+target_link_libraries(lib_dynamic PRIVATE tvm_ffi::header tvm_ffi::shared 
CUDA::cudart)
 add_dependencies(lib_dynamic generate_cubin)
 set_target_properties(
   lib_dynamic
diff --git a/examples/cubin_launcher/embedded_cubin/CMakeLists.txt 
b/examples/cubin_launcher/embedded_cubin/CMakeLists.txt
index 5286565..4480417 100644
--- a/examples/cubin_launcher/embedded_cubin/CMakeLists.txt
+++ b/examples/cubin_launcher/embedded_cubin/CMakeLists.txt
@@ -58,7 +58,7 @@ tvm_ffi_embed_cubin(
 
 # Step 3: Build lib_embedded shared library (with embedded CUBIN)
 add_library(lib_embedded SHARED 
${CMAKE_CURRENT_BINARY_DIR}/lib_embedded_with_cubin.o)
-target_link_libraries(lib_embedded PRIVATE tvm_ffi_header tvm_ffi_shared 
CUDA::cudart)
+target_link_libraries(lib_embedded PRIVATE tvm_ffi::header tvm_ffi::shared 
CUDA::cudart)
 set_target_properties(
   lib_embedded
   PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/"
diff --git a/examples/quickstart/CMakeLists.txt 
b/examples/quickstart/CMakeLists.txt
index eaf7659..0ce0c21 100644
--- a/examples/quickstart/CMakeLists.txt
+++ b/examples/quickstart/CMakeLists.txt
@@ -61,22 +61,20 @@ find_package(tvm_ffi CONFIG REQUIRED)
 if (EXAMPLE_NAME STREQUAL "compile_cpu")
   # Example 1. C++ `add_one`
   add_library(add_one_cpu SHARED compile/add_one_cpu.cc)
-  target_link_libraries(add_one_cpu PRIVATE tvm_ffi_header)
-  target_link_libraries(add_one_cpu PRIVATE tvm_ffi_shared)
+  target_link_libraries(add_one_cpu PRIVATE tvm_ffi::header tvm_ffi::shared)
   set_target_properties(add_one_cpu PROPERTIES PREFIX "" SUFFIX ".so")
   set_flat_output_dirs(add_one_cpu)
 elseif (EXAMPLE_NAME STREQUAL "compile_cuda")
   # Example 2. CUDA `add_one`
   enable_language(CUDA)
   add_library(add_one_cuda SHARED compile/add_one_cuda.cu)
-  target_link_libraries(add_one_cuda PRIVATE tvm_ffi_shared)
+  target_link_libraries(add_one_cuda PRIVATE tvm_ffi::header tvm_ffi::shared)
   set_target_properties(add_one_cuda PROPERTIES PREFIX "" SUFFIX ".so")
   set_flat_output_dirs(add_one_cuda)
 elseif (EXAMPLE_NAME STREQUAL "load_cpp")
   # Example 3. Load C++ shared library
   add_executable(load_cpp load/load_cpp.cc)
-  target_link_libraries(load_cpp PRIVATE tvm_ffi_header)
-  target_link_libraries(load_cpp PRIVATE tvm_ffi_shared)
+  target_link_libraries(load_cpp PRIVATE tvm_ffi::header tvm_ffi::shared)
   set_flat_output_dirs(load_cpp)
 else ()
   message(FATAL_ERROR "Unknown EXAMPLE_NAME option: ${EXAMPLE_NAME}. "
diff --git a/examples/stable_c_abi/CMakeLists.txt 
b/examples/stable_c_abi/CMakeLists.txt
index a313034..f1d01d3 100644
--- a/examples/stable_c_abi/CMakeLists.txt
+++ b/examples/stable_c_abi/CMakeLists.txt
@@ -58,8 +58,7 @@ find_package(tvm_ffi CONFIG REQUIRED)
 if (EXAMPLE_NAME STREQUAL "kernel")
   # Example 1. `add_one_cpu` in C
   add_library(add_one_cpu SHARED src/add_one_cpu.c)
-  target_link_libraries(add_one_cpu PRIVATE tvm_ffi_header)
-  target_link_libraries(add_one_cpu PRIVATE tvm_ffi_shared)
+  target_link_libraries(add_one_cpu PRIVATE tvm_ffi::header tvm_ffi::shared)
   set_target_properties(
     add_one_cpu
     PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/"
@@ -73,8 +72,7 @@ if (EXAMPLE_NAME STREQUAL "kernel")
 elseif (EXAMPLE_NAME STREQUAL "load")
   # Example 2. Load `add_one_cpu` shared library in C
   add_executable(load src/load.c)
-  target_link_libraries(load PRIVATE tvm_ffi_header)
-  target_link_libraries(load PRIVATE tvm_ffi_shared)
+  target_link_libraries(load PRIVATE tvm_ffi::header tvm_ffi::shared)
   set_target_properties(
     load
     PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/"

Reply via email to