@@ -214,7 +214,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$")
214214 TARGET_COMPILE_DEFINITIONS (cpuinfo_internals PRIVATE _WIN32_WINNT=0x0601 )
215215ENDIF ()
216216SET_TARGET_PROPERTIES (cpuinfo PROPERTIES PUBLIC_HEADER include /cpuinfo.h )
217- TARGET_INCLUDE_DIRECTORIES (cpuinfo BEFORE PUBLIC include )
217+ TARGET_INCLUDE_DIRECTORIES (cpuinfo BEFORE PUBLIC $< BUILD_INTERFACE : ${CMAKE_CURRENT_SOURCE_DIR} / include > $< INSTALL_INTERFACE : ${CMAKE_INSTALL_INCLUDEDIR} > )
218218TARGET_INCLUDE_DIRECTORIES (cpuinfo BEFORE PRIVATE src )
219219TARGET_INCLUDE_DIRECTORIES (cpuinfo_internals BEFORE PUBLIC include src )
220220IF (CPUINFO_LOG_LEVEL STREQUAL "default" )
@@ -264,11 +264,25 @@ ENDIF()
264264TARGET_LINK_LIBRARIES (cpuinfo PRIVATE clog )
265265TARGET_LINK_LIBRARIES (cpuinfo_internals PRIVATE clog )
266266
267+ # support find_package(cpuinfo CONFIG)
268+ INCLUDE (CMakePackageConfigHelpers )
269+ GET_FILENAME_COMPONENT (CONFIG_FILE_PATH ${CMAKE_CURRENT_BINARY_DIR} /cpuinfo-config.cmake ABSOLUTE )
270+ CONFIGURE_PACKAGE_CONFIG_FILE (
271+ cmake/cpuinfo-config.cmake.in ${CONFIG_FILE_PATH}
272+ INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME} )
273+ INSTALL (FILES ${CONFIG_FILE_PATH}
274+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME} ) # cpuinfo_DIR ${prefix}/share/cpuinfo
275+
267276INSTALL (TARGETS cpuinfo
277+ EXPORT cpuinfo-targets
268278 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
269279 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
270280 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
271281
282+ INSTALL (EXPORT cpuinfo-targets
283+ NAMESPACE ${PROJECT_NAME} :: # IMPORTED cpuinfo::cpuinfo, cpuinfo::clog
284+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /${PROJECT_NAME} )
285+
272286# ---[ cpuinfo micro-benchmarks
273287IF (CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
274288 # ---[ Build google benchmark
0 commit comments