From 9c54ef951c0a4ceae3455e459f6a247795053074 Mon Sep 17 00:00:00 2001 From: Connor Baker Date: Tue, 4 Jul 2023 03:53:43 +0000 Subject: [PATCH] cmake: support find_package(XNNPACK) --- CMakeLists.txt | 23 ++++++++++++++++++----- cmake/XNNPACKConfig.cmake.in | 5 +++++ 2 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 cmake/XNNPACKConfig.cmake.in 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)