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

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

commit ac79f9e8cf372a62f69b487cf921214441ffdb95
Author: tqchen <[email protected]>
AuthorDate: Sun Mar 9 08:40:15 2025 -0400

    [REFACTOR] Migration starting pt
---
 CMakeLists.txt               |  3 ++
 cmake/modules/Logging.cmake  | 87 --------------------------------------------
 ffi/CMakeLists.txt           | 34 ++++++++---------
 ffi/tests/cpp/CMakeLists.txt |  2 +-
 4 files changed, 21 insertions(+), 105 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a86bc4cc33..5509408d95 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -131,6 +131,7 @@ include_directories(SYSTEM ${DMLC_PATH})
 include_directories(SYSTEM ${RANG_PATH})
 include_directories(SYSTEM ${COMPILER_RT_PATH})
 include_directories(SYSTEM ${PICOJSON_PATH})
+add_subdirectory(ffi)
 
 # initial variables
 set(TVM_LINKER_LIBS "")
@@ -611,6 +612,8 @@ endif()
 
 target_link_libraries(tvm PRIVATE ${TVM_RUNTIME_LINKER_LIBS})
 target_link_libraries(tvm_runtime PRIVATE ${TVM_RUNTIME_LINKER_LIBS})
+target_link_directories(tvm PRIVATE tvm_ffi)
+target_link_directories(tvm_runtime PRIVATE tvm_ffi)
 
 if(BUILD_FOR_HEXAGON AND DEFINED USE_HEXAGON_GTEST AND EXISTS 
${USE_HEXAGON_GTEST})
   include(FetchContent)
diff --git a/cmake/modules/Logging.cmake b/cmake/modules/Logging.cmake
index ae4b561186..2b092f665e 100644
--- a/cmake/modules/Logging.cmake
+++ b/cmake/modules/Logging.cmake
@@ -27,90 +27,3 @@ if(USE_CUSTOM_LOGGING)
   target_compile_definitions(tvm PUBLIC TVM_LOG_CUSTOMIZE=1)
   target_compile_definitions(tvm_runtime PUBLIC TVM_LOG_CUSTOMIZE=1)
 endif()
-
-add_library(libbacktrace STATIC IMPORTED)
-
-set(LIBBACKTRACE_INCLUDE_DIR NOTFOUND)
-set(LIBBACKTRACE_STATIC_LIBRARY NOTFOUND)
-set(LIBBACKTRACE_FOUND NO)
-
-macro(__find_libbacktrace)
-  find_path(LIBBACKTRACE_INCLUDE_DIR backtrace.h)
-  find_library(LIBBACKTRACE_STATIC_LIBRARY libbacktrace.a)
-  find_package_handle_standard_args(LIBBACKTRACE REQUIRED_VARS
-    LIBBACKTRACE_STATIC_LIBRARY LIBBACKTRACE_INCLUDE_DIR)
-endmacro()
-
-macro(__find_libbacktrace_from PATH)
-  find_path(LIBBACKTRACE_INCLUDE_DIR backtrace.h
-    PATHS ${PATH}
-    PATH_SUFFIXES include
-    NO_CMAKE_SYSTEM_PATH
-    NO_SYSTEM_ENVIRONMENT_PATH
-  )
-  find_library(LIBBACKTRACE_STATIC_LIBRARY libbacktrace.a
-    PATHS ${PATH}
-    PATH_SUFFIXES lib
-    NO_CMAKE_SYSTEM_PATH
-    NO_SYSTEM_ENVIRONMENT_PATH
-  )
-  find_package_handle_standard_args(LIBBACKTRACE REQUIRED_VARS
-    LIBBACKTRACE_STATIC_LIBRARY LIBBACKTRACE_INCLUDE_DIR)
-endmacro()
-
-macro(__compile_libbacktrace)
-  message(STATUS "Building libbacktrace from 3rdparty/libbacktrace")
-  include(cmake/libs/Libbacktrace.cmake)
-  add_dependencies(libbacktrace project_libbacktrace)
-  set(LIBBACKTRACE_INCLUDE_DIR 
${CMAKE_CURRENT_BINARY_DIR}/libbacktrace/include)
-  set(LIBBACKTRACE_STATIC_LIBRARY 
${CMAKE_CURRENT_BINARY_DIR}/libbacktrace/lib/libbacktrace.a)
-  add_dependencies(tvm_runtime_objs libbacktrace)
-  set(LIBBACKTRACE_FOUND YES)
-endmacro()
-
-if(USE_LIBBACKTRACE STREQUAL "AUTO")
-  __find_libbacktrace()
-  if(NOT LIBBACKTRACE_FOUND AND (CMAKE_SYSTEM_NAME MATCHES "Linux" OR 
CMAKE_SYSTEM_NAME MATCHES "Darwin"))
-    __compile_libbacktrace()
-  endif()
-elseif(USE_LIBBACKTRACE STREQUAL "COMPILE")
-  __compile_libbacktrace()
-elseif("${USE_LIBBACKTRACE}" MATCHES ${IS_TRUE_PATTERN})
-  __find_libbacktrace()
-  if(NOT LIBBACKTRACE_FOUND)
-    message(SEND_ERROR "libbacktrace not found. (Set USE_LIBBACKTRACE to 
COMPILE if you want to build with the submodule at 3rdparty/libbacktrace.)")
-  endif()
-elseif("${USE_LIBBACKTRACE}" MATCHES ${IS_FALSE_PATTERN})
-else()
-  # Treat USE_LIBBACKTRACE as path to libbacktrace
-  message(STATUS "Using libbacktrace from ${USE_LIBBACKTRACE}")
-  __find_libbacktrace_from(${USE_LIBBACKTRACE})
-  if(NOT LIBBACKTRACE_FOUND)
-    message(SEND_ERROR "libbacktrace not found from ${USE_LIBBACKTRACE}.")
-  endif()
-endif()
-
-set_property(TARGET libbacktrace
-  PROPERTY IMPORTED_LOCATION ${LIBBACKTRACE_STATIC_LIBRARY})
-
-function(configure_backtrace TARGET)
-  if(LIBBACKTRACE_FOUND)
-    get_target_property(target_type ${TARGET} TYPE)
-    if(target_type MATCHES "EXECUTABLE|(STATIC|SHARED|MODULE)_LIBRARY")
-      target_link_libraries(${TARGET} PRIVATE libbacktrace)
-    endif()
-    target_include_directories(${TARGET} PRIVATE ${LIBBACKTRACE_INCLUDE_DIR})
-    target_compile_definitions(${TARGET} PRIVATE TVM_USE_LIBBACKTRACE=1)
-  else()
-    target_compile_definitions(${TARGET} PRIVATE TVM_USE_LIBBACKTRACE=0)
-  endif()
-
-  if(BACKTRACE_ON_SEGFAULT)
-    target_compile_definitions(${TARGET} PRIVATE TVM_BACKTRACE_ON_SEGFAULT)
-  endif()
-endfunction()
-
-configure_backtrace(tvm)
-configure_backtrace(tvm_runtime)
-configure_backtrace(tvm_objs)
-configure_backtrace(tvm_runtime_objs)
diff --git a/ffi/CMakeLists.txt b/ffi/CMakeLists.txt
index b327c6667a..1aa05110a7 100644
--- a/ffi/CMakeLists.txt
+++ b/ffi/CMakeLists.txt
@@ -15,7 +15,7 @@ option(TVM_FFI_BUILD_REGISTRY
   targets linked against `tvm_ffi` will allow objects that comes with 
non-pre-defined type indices, \
   as well as getting full stacktrace during debugging. \
   so that the object hierarchy could expand without limitation. \
-  This will require the downstream targets to link against target 
`tvm_ffi_registry` to be effective."
+  This will require the downstream targets to link against target `tvm_ffi` to 
be effective."
   OFF
 )
 option(TVM_FFI_USE_LIBBRACKTRACE "Enable libbacktrace" ON)
@@ -38,16 +38,16 @@ target_link_libraries(tvm_ffi INTERFACE dlpack_header)
 target_compile_features(tvm_ffi INTERFACE cxx_std_17)
 target_include_directories(tvm_ffi INTERFACE 
"${CMAKE_CURRENT_SOURCE_DIR}/include")
 
-########## Target: `tvm_ffi_registry` ##########
+########## Target: `tvm_ffi` ##########
 
 if (TVM_FFI_BUILD_REGISTRY)
-  add_library(tvm_ffi_registry_objs OBJECT
+  add_library(tvm_ffi_objs OBJECT
     "${CMAKE_CURRENT_SOURCE_DIR}/src/ffi/traceback.cc"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/ffi/object.cc"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/ffi/function.cc"
   )
   set_target_properties(
-    tvm_ffi_registry_objs PROPERTIES
+    tvm_ffi_objs PROPERTIES
     POSITION_INDEPENDENT_CODE ON
     CXX_STANDARD 17
     CXX_EXTENSIONS OFF
@@ -56,34 +56,34 @@ if (TVM_FFI_BUILD_REGISTRY)
     VISIBILITY_INLINES_HIDDEN ON
     PREFIX "lib"
   )
-  add_cxx_warning(tvm_ffi_registry_objs)
-  target_link_libraries(tvm_ffi_registry_objs PRIVATE dlpack_header)
-  target_include_directories(tvm_ffi_registry_objs PRIVATE 
"${CMAKE_CURRENT_SOURCE_DIR}/include")
+  add_cxx_warning(tvm_ffi_objs)
+  target_link_libraries(tvm_ffi_objs PRIVATE dlpack_header)
+  target_include_directories(tvm_ffi_objs PRIVATE 
"${CMAKE_CURRENT_SOURCE_DIR}/include")
 
   if (TVM_FFI_USE_LIBBRACKTRACE)
     message(STATUS "Setting C++ macro TVM_FFI_USE_LIBBRACKTRACE - 1")
-    target_compile_definitions(tvm_ffi_registry_objs PRIVATE 
TVM_FFI_USE_LIBBRACKTRACE=1)
+    target_compile_definitions(tvm_ffi_objs PRIVATE 
TVM_FFI_USE_LIBBRACKTRACE=1)
   else()
     message(STATUS "Setting C++ macro TVM_FFI_USE_LIBBRACKTRACE - 0")
-    target_compile_definitions(tvm_ffi_registry_objs PRIVATE 
TVM_FFI_USE_LIBBRACKTRACE=0)
+    target_compile_definitions(tvm_ffi_objs PRIVATE 
TVM_FFI_USE_LIBBRACKTRACE=0)
   endif()
 
   if (TVM_FFI_BACKTRACE_ON_SEGFAULT)
     message(STATUS "Setting C++ macro TVM_FFI_BACKTRACE_ON_SEGFAULT - 1")
-    target_compile_definitions(tvm_ffi_registry_objs PRIVATE 
TVM_FFI_BACKTRACE_ON_SEGFAULT=1)
+    target_compile_definitions(tvm_ffi_objs PRIVATE 
TVM_FFI_BACKTRACE_ON_SEGFAULT=1)
   else()
     message(STATUS "Setting C++ macro TVM_FFI_BACKTRACE_ON_SEGFAULT - 0")
-    target_compile_definitions(tvm_ffi_registry_objs PRIVATE 
TVM_FFI_BACKTRACE_ON_SEGFAULT=0)
+    target_compile_definitions(tvm_ffi_objs PRIVATE 
TVM_FFI_BACKTRACE_ON_SEGFAULT=0)
   endif()
 
-  add_target_from_obj(tvm_ffi_registry tvm_ffi_registry_objs)
+  add_target_from_obj(tvm_ffi tvm_ffi_objs)
   if (TARGET libbacktrace)
-    target_link_libraries(tvm_ffi_registry_objs PRIVATE libbacktrace)
-    target_link_libraries(tvm_ffi_registry_shared PRIVATE libbacktrace)
-    target_link_libraries(tvm_ffi_registry_static PRIVATE libbacktrace)
+    target_link_libraries(tvm_ffi_objs PRIVATE libbacktrace)
+    target_link_libraries(tvm_ffi_shared PRIVATE libbacktrace)
+    target_link_libraries(tvm_ffi_static PRIVATE libbacktrace)
   endif ()
-  install(TARGETS tvm_ffi_registry_static DESTINATION "lib/")
-  install(TARGETS tvm_ffi_registry_shared DESTINATION "lib/")
+  install(TARGETS tvm_ffi_static DESTINATION "lib/")
+  install(TARGETS tvm_ffi_shared DESTINATION "lib/")
 endif (TVM_FFI_BUILD_REGISTRY)
 
 ########## Adding tests ##########
diff --git a/ffi/tests/cpp/CMakeLists.txt b/ffi/tests/cpp/CMakeLists.txt
index 62543756b9..54dae7177d 100644
--- a/ffi/tests/cpp/CMakeLists.txt
+++ b/ffi/tests/cpp/CMakeLists.txt
@@ -19,7 +19,7 @@ add_sanitizer_address(tvm_ffi_tests)
 target_link_libraries(tvm_ffi_tests PRIVATE tvm_ffi)
 
 if (TVM_FFI_BUILD_REGISTRY)
-  target_link_libraries(tvm_ffi_tests PRIVATE tvm_ffi_registry_shared)
+  target_link_libraries(tvm_ffi_tests PRIVATE tvm_ffi_shared)
 endif()
 
 add_googletest(tvm_ffi_tests)

Reply via email to