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)
