aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/xnnpack
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/xnnpack
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/xnnpack')
-rw-r--r--vcpkg/ports/xnnpack/fix-cmake.patch94
-rw-r--r--vcpkg/ports/xnnpack/portfile.cmake32
-rw-r--r--vcpkg/ports/xnnpack/vcpkg.json31
3 files changed, 157 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" )
diff --git a/vcpkg/ports/xnnpack/portfile.cmake b/vcpkg/ports/xnnpack/portfile.cmake
new file mode 100644
index 0000000..8e96321
--- /dev/null
+++ b/vcpkg/ports/xnnpack/portfile.cmake
@@ -0,0 +1,32 @@
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/XNNPACK
+ REF 51a0103656eff6fc9bfd39a4597923c4b542c883 # 2024-12-03
+ SHA512 ecb859935996416ce51b2b9ffd5a8c3cc5e933dfab96b7b68c8a52e05227ce3416ffa81e8a3fcef8349aa85147aa1c6a07138c7fc8e87a02ad577e1da9126827
+ HEAD_REF master
+ PATCHES
+ fix-cmake.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ "-DPython_EXECUTABLE=${PYTHON3}"
+ -DXNNPACK_USE_SYSTEM_LIBS=ON
+ -DXNNPACK_ENABLE_ASSEMBLY=ON
+ -DXNNPACK_ENABLE_MEMOPT=ON
+ -DXNNPACK_ENABLE_SPARSE=ON
+ -DXNNPACK_BUILD_TESTS=OFF
+ -DXNNPACK_BUILD_BENCHMARKS=OFF
+)
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT})
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
diff --git a/vcpkg/ports/xnnpack/vcpkg.json b/vcpkg/ports/xnnpack/vcpkg.json
new file mode 100644
index 0000000..124b809
--- /dev/null
+++ b/vcpkg/ports/xnnpack/vcpkg.json
@@ -0,0 +1,31 @@
+{
+ "name": "xnnpack",
+ "version-date": "2024-08-20",
+ "description": "High-efficiency floating-point neural network inference operators for mobile, server, and Web",
+ "homepage": "https://github.com/google/XNNPACK",
+ "license": "BSD-3-Clause",
+ "supports": "!(arm & windows) & !uwp & !arm32",
+ "dependencies": [
+ {
+ "name": "cpuinfo",
+ "features": [
+ "clog"
+ ]
+ },
+ "fp16",
+ "fxdiv",
+ {
+ "name": "kleidiai",
+ "platform": "arm64"
+ },
+ "pthreadpool",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}