@@ -56,4 +56,61 @@ set(DLPACK_MOCK_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/mock_main.cc
5656 ${CMAKE_CURRENT_SOURCE_DIR} /contrib/mock_c.c)
5757add_executable (mock ${DLPACK_MOCK_SRCS} )
5858
59+ add_library (dlpack INTERFACE )
60+ add_library (${PROJECT_NAME} ::dlpack ALIAS dlpack )
5961
62+ # Installation (https://github.com/forexample/package-example) {
63+
64+ # Introduce variables:
65+ # * CMAKE_INSTALL_LIBDIR
66+ # * CMAKE_INSTALL_BINDIR
67+ # * CMAKE_INSTALL_INCLUDEDIR
68+ include (GNUInstallDirs )
69+
70+ set (config_install_dir "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} " )
71+ set (generated_dir "${CMAKE_CURRENT_BINARY_DIR} /generated" )
72+ set (version_config "${generated_dir} /${PROJECT_NAME} ConfigVersion.cmake" )
73+ set (project_config "${generated_dir} /${PROJECT_NAME} Config.cmake" )
74+ set (TARGETS_EXPORT_NAME "${PROJECT_NAME} Targets" )
75+ set (namespace "${PROJECT_NAME} ::" )
76+
77+ include (CMakePackageConfigHelpers )
78+
79+ # Use:
80+ # * PROJECT_VERSION
81+ write_basic_package_version_file (
82+ "${version_config} " COMPATIBILITY SameMajorVersion
83+ )
84+
85+ # Use:
86+ # * TARGETS_EXPORT_NAME
87+ # * PROJECT_NAME
88+ configure_package_config_file (
89+ "cmake/template/Config.cmake.in"
90+ "${project_config} "
91+ INSTALL_DESTINATION "${config_install_dir} "
92+ )
93+
94+ install (
95+ TARGETS dlpack
96+ EXPORT "${TARGETS_EXPORT_NAME} "
97+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
98+ )
99+
100+ install (
101+ DIRECTORY include/
102+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
103+ )
104+
105+ install (
106+ FILES "${project_config} " "${version_config} "
107+ DESTINATION "${config_install_dir} "
108+ )
109+
110+ install (
111+ EXPORT "${TARGETS_EXPORT_NAME} "
112+ NAMESPACE "${namespace} "
113+ DESTINATION "${config_install_dir} "
114+ )
115+
116+ # }
0 commit comments