diff --git a/CMakeLists.txt b/CMakeLists.txt index add5c69d5c5..16bd00d4437 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -800,7 +800,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) @@ -817,7 +819,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 @@ -950,10 +952,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/XNNPACKConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/XNNPACKConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/XNNPACK") + INSTALL(TARGETS XNNPACK - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + EXPORT XNNPACKTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + INSTALL(EXPORT XNNPACKTargets + FILE "XNNPACKConfig.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/XNNPACK") 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)