aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/xnnpack/fix-cmake.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/xnnpack/fix-cmake.patch')
-rw-r--r--vcpkg/ports/xnnpack/fix-cmake.patch94
1 files changed, 94 insertions, 0 deletions
diff --git a/vcpkg/ports/xnnpack/fix-cmake.patch b/vcpkg/ports/xnnpack/fix-cmake.patch
new file mode 100644
index 0000000..c021639
--- /dev/null
+++ b/vcpkg/ports/xnnpack/fix-cmake.patch
@@ -0,0 +1,94 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 856a47d..06f5ea9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1040,14 +1040,14 @@ IF(XNNPACK_BUILD_ALL_MICROKERNELS)
+ ENDIF()
+ TARGET_INCLUDE_DIRECTORIES(datatype PRIVATE include src)
+ TARGET_INCLUDE_DIRECTORIES(microkernels-prod PRIVATE include src)
+-TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src ${CPUINFO_SOURCE_DIR}/include)
++TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src)
+ TARGET_INCLUDE_DIRECTORIES(indirection PRIVATE include src)
+ TARGET_INCLUDE_DIRECTORIES(microparams-init PRIVATE include src)
+ 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 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
+ TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src)
+ TARGET_INCLUDE_DIRECTORIES(allocator PRIVATE include src)
+ TARGET_INCLUDE_DIRECTORIES(cache PRIVATE include src)
+@@ -1085,6 +1085,8 @@ IF(XNNPACK_BUILD_WITH_LIBM)
+ ENDIF()
+
+ # ---[ Configure cpuinfo
++find_package(cpuinfo CONFIG REQUIRED)
++add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
+ IF(NOT TARGET cpuinfo)
+ IF(NOT XNNPACK_USE_SYSTEM_LIBS)
+ SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "")
+@@ -1111,6 +1113,8 @@ IF(XNNPACK_BUILD_LIBRARY)
+ ENDIF()
+
+ # ---[ Configure pthreadpool
++find_package(unofficial-pthreadpool CONFIG REQUIRED)
++add_library(pthreadpool ALIAS unofficial::pthreadpool)
+ IF(NOT TARGET pthreadpool)
+ IF(NOT XNNPACK_USE_SYSTEM_LIBS)
+ SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
+@@ -1135,6 +1139,8 @@ ENDIF()
+ TARGET_LINK_LIBRARIES(xnnpack-base INTERFACE pthreadpool)
+
+ # ---[ Configure FXdiv
++find_package(unofficial-fxdiv CONFIG REQUIRED)
++add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv)
+ IF(NOT TARGET fxdiv)
+ IF(NOT XNNPACK_USE_SYSTEM_LIBS)
+ SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
+@@ -1162,14 +1168,27 @@ IF(XNNPACK_BUILD_LIBRARY)
+ ENDIF()
+
+ IF(XNNPACK_BUILD_LIBRARY)
+- INSTALL(TARGETS XNNPACK microkernels-prod
++ INSTALL(TARGETS XNNPACK microkernels-prod xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing subgraph datatype reference-ukernels logging
++ EXPORT unofficial-xnnpack-config-targets
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++ INSTALL(EXPORT unofficial-xnnpack-config-targets NAMESPACE unofficial::xnnpack::
++ FILE unofficial-xnnpack-config-targets.cmake
++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack) # share/xnnpack
++
++include(CMakePackageConfigHelpers)
++configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack)
++
++
+ ENDIF()
+
+ # ---[ Configure KleidiAI
+ IF(XNNPACK_ENABLE_KLEIDIAI)
++ find_package(KleidiAI CONFIG REQUIRED)
++ add_library(kleidiai ALIAS KleidiAI::kleidiai)
+ IF(NOT TARGET kleidiai)
+ IF(NOT XNNPACK_USE_SYSTEM_LIBS)
+ SET(KLEIDIAI_BUILD_TESTS OFF CACHE BOOL "")
+diff --git a/Config.cmake.in b/Config.cmake.in
+new file mode 100644
+index 0000000..8dc60b4
+--- /dev/null
++++ b/Config.cmake.in
+@@ -0,0 +1,11 @@
++@PACKAGE_INIT@
++
++include(CMakeFindDependencyMacro)
++find_dependency(unofficial-fxdiv)
++find_dependency(cpuinfo)
++find_dependency(unofficial-pthreadpool)
++if(@XNNPACK_ENABLE_KLEIDIAI@)
++ find_dependency(KleidiAI)
++endif()
++
++include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-xnnpack-config-targets.cmake" )