Skip to content

Commit d99deb0

Browse files
author
Connor Baker
committed
cmake: support find_package(XNNPACK)
1 parent cd3ce6b commit d99deb0

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

CMakeLists.txt

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,9 @@ TARGET_INCLUDE_DIRECTORIES(normalization PRIVATE include src)
773773
TARGET_INCLUDE_DIRECTORIES(packing PRIVATE include src)
774774
TARGET_INCLUDE_DIRECTORIES(logging PRIVATE include src)
775775
IF(XNNPACK_BUILD_LIBRARY)
776-
TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include)
776+
TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC
777+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
778+
$<INSTALL_INTERFACE:include>)
777779
TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src)
778780
TARGET_INCLUDE_DIRECTORIES(allocator PRIVATE include src)
779781
TARGET_INCLUDE_DIRECTORIES(cache PRIVATE include src)
@@ -790,7 +792,7 @@ IF(XNNPACK_BUILD_LIBRARY)
790792
TARGET_COMPILE_DEFINITIONS(XNNPACK PRIVATE _WIN32_WINNT=0x0601)
791793
TARGET_COMPILE_DEFINITIONS(mutex PRIVATE _WIN32_WINNT=0x0601)
792794
ENDIF()
793-
SET_TARGET_PROPERTIES(XNNPACK PROPERTIES PUBLIC_HEADER include/xnnpack.h)
795+
SET_TARGET_PROPERTIES(XNNPACK PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/include/xnnpack.h")
794796
ENDIF()
795797

796798
# ---[ Find libm
@@ -923,10 +925,22 @@ IF(XNNPACK_BUILD_LIBRARY)
923925
TARGET_LINK_LIBRARIES(operator-run PRIVATE fp16)
924926

925927
TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16)
928+
929+
INCLUDE(CMakePackageConfigHelpers)
930+
CONFIGURE_PACKAGE_CONFIG_FILE(
931+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${CMAKE_PROJECT_NAME}Config.cmake.in
932+
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake
933+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
934+
)
935+
926936
INSTALL(TARGETS XNNPACK
927-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
928-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
929-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
937+
EXPORT ${CMAKE_PROJECT_NAME}Targets
938+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
939+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
940+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
941+
INSTALL(EXPORT ${CMAKE_PROJECT_NAME}Targets
942+
FILE ${CMAKE_PROJECT_NAME}Config.cmake
943+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})
930944
ENDIF()
931945

932946
# ---[ XNNPACK unit tests

cmake/XNNPACKConfig.cmake.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@PACKAGE_INIT@
2+
INCLUDE(CMakeFindDependencyMacro)
3+
FIND_DEPENDENCY(pthreadpool REQUIRED)
4+
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/XNNPACKTargets.cmake")
5+
CHECK_REQUIRED_COMPONENTS(XNNPACK)

0 commit comments

Comments
 (0)