diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ffd6a470d1..f20181bdb25 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -773,7 +773,9 @@ TARGET_INCLUDE_DIRECTORIES(normalization PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(packing PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(logging PRIVATE include src) IF(XNNPACK_BUILD_LIBRARY) - TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include) + TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC + "$" + "$") TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src) TARGET_INCLUDE_DIRECTORIES(allocator PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(cache PRIVATE include src) @@ -790,7 +792,7 @@ IF(XNNPACK_BUILD_LIBRARY) TARGET_COMPILE_DEFINITIONS(XNNPACK PRIVATE _WIN32_WINNT=0x0601) TARGET_COMPILE_DEFINITIONS(mutex PRIVATE _WIN32_WINNT=0x0601) ENDIF() - SET_TARGET_PROPERTIES(XNNPACK PROPERTIES PUBLIC_HEADER include/xnnpack.h) + SET_TARGET_PROPERTIES(XNNPACK PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/include/xnnpack.h") ENDIF() # ---[ Find libm @@ -923,10 +925,21 @@ IF(XNNPACK_BUILD_LIBRARY) TARGET_LINK_LIBRARIES(operator-run PRIVATE fp16) TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16) + + INCLUDE(CMakePackageConfigHelpers) + CONFIGURE_PACKAGE_CONFIG_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${CMAKE_PROJECT_NAME}Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}") + INSTALL(TARGETS XNNPACK - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + EXPORT ${CMAKE_PROJECT_NAME}Targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + INSTALL(EXPORT ${CMAKE_PROJECT_NAME}Targets + FILE "${CMAKE_PROJECT_NAME}Config.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}") ENDIF() # ---[ XNNPACK unit tests diff --git a/cmake/XNNPACKConfig.cmake.in b/cmake/XNNPACKConfig.cmake.in new file mode 100644 index 00000000000..9045dd61573 --- /dev/null +++ b/cmake/XNNPACKConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ +INCLUDE(CMakeFindDependencyMacro) +FIND_DEPENDENCY(pthreadpool REQUIRED) +INCLUDE("${CMAKE_CURRENT_LIST_DIR}/XNNPACKTargets.cmake") +CHECK_REQUIRED_COMPONENTS(XNNPACK)