@@ -481,6 +481,7 @@ add_library(tvm_runtime_objs OBJECT ${RUNTIME_SRCS})
481481add_library (tvm_libinfo_objs OBJECT ${LIBINFO_FILE} )
482482
483483add_library (tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
484+ target_include_directories (tvm PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >" )
484485set_property (TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS} " )
485486set_property (TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG} " )
486487if (BUILD_STATIC_RUNTIME)
@@ -495,6 +496,7 @@ else()
495496 add_library (tvm_runtime SHARED $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
496497 set_property (TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS} " )
497498endif ()
499+ target_include_directories (tvm_runtime PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >" )
498500set_property (TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG} " )
499501
500502target_compile_definitions (tvm_objs PUBLIC DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
@@ -609,8 +611,8 @@ endif()
609611add_custom_target (runtime DEPENDS tvm_runtime)
610612
611613# Installation rules
612- install (TARGETS tvm DESTINATION lib${LIB_SUFFIX} )
613- install (TARGETS tvm_runtime DESTINATION lib${LIB_SUFFIX} )
614+ install (TARGETS tvm EXPORT ${PROJECT_NAME} Targets DESTINATION lib${LIB_SUFFIX} )
615+ install (TARGETS tvm_runtime EXPORT ${PROJECT_NAME} Targets DESTINATION lib${LIB_SUFFIX} )
614616
615617if (INSTALL_DEV)
616618 install (
@@ -636,6 +638,27 @@ else(INSTALL_DEV)
636638 )
637639endif (INSTALL_DEV)
638640
641+ include (GNUInstallDirs)
642+ include (CMakePackageConfigHelpers)
643+ set (PROJECT_CONFIG_CONTENT "@PACKAGE_INIT@\n " )
644+ string (APPEND PROJECT_CONFIG_CONTENT
645+ "include(\"\$ {CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME} Targets.cmake\" )" )
646+ file (WRITE "${CMAKE_CURRENT_BINARY_DIR} /PROJECT_CONFIG_FILE" ${PROJECT_CONFIG_CONTENT} )
647+
648+ install (EXPORT ${PROJECT_NAME} Targets
649+ NAMESPACE ${PROJECT_NAME} ::
650+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} )
651+
652+ # Create config for find_package()
653+ configure_package_config_file(
654+ "${CMAKE_CURRENT_BINARY_DIR} /PROJECT_CONFIG_FILE" ${PROJECT_NAME} Config.cmake
655+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} " )
656+
657+ install (
658+ FILES
659+ "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
660+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} " )
661+
639662# More target definitions
640663if (MSVC )
641664 target_compile_definitions (tvm_objs PRIVATE -DTVM_EXPORTS)
0 commit comments