Skip to content

Commit d545ec5

Browse files
committed
1. added target tvm in a cmake export group
2. added cmake package config file
1 parent ca40e76 commit d545ec5

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

CMakeLists.txt

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ add_library(tvm_runtime_objs OBJECT ${RUNTIME_SRCS})
481481
add_library(tvm_libinfo_objs OBJECT ${LIBINFO_FILE})
482482

483483
add_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}>")
484485
set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}")
485486
set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
486487
if(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}")
497498
endif()
499+
target_include_directories(tvm_runtime PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
498500
set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
499501

500502
target_compile_definitions(tvm_objs PUBLIC DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
@@ -609,8 +611,8 @@ endif()
609611
add_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

615617
if (INSTALL_DEV)
616618
install(
@@ -636,6 +638,27 @@ else(INSTALL_DEV)
636638
)
637639
endif(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
640663
if(MSVC)
641664
target_compile_definitions(tvm_objs PRIVATE -DTVM_EXPORTS)

0 commit comments

Comments
 (0)