diff options
Diffstat (limited to 'vcpkg/ports/xnnpack')
| -rw-r--r-- | vcpkg/ports/xnnpack/fix-cmake.patch | 94 | ||||
| -rw-r--r-- | vcpkg/ports/xnnpack/portfile.cmake | 32 | ||||
| -rw-r--r-- | vcpkg/ports/xnnpack/vcpkg.json | 31 |
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 + } + ] +} |