From 968c5eba7b9f24806b27d59593c389598402bc69 Mon Sep 17 00:00:00 2001 From: Park DongHa Date: Tue, 18 May 2021 15:22:24 +0900 Subject: [xnnpack] create a new port (#17064) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [xnnpack] create a new port * [xnnpack] create a patch * [cpuinfo] update to latest * [cpuinfo] update baseline and port SHA * Update ports/cpuinfo/fix-install.patch Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * Update ports/cpuinfo/fix-install.patch Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * Update ports/cpuinfo/portfile.cmake Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * Update ports/cpuinfo/fix-install.patch Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * [cpuinfo] update port SHA * [cpuinfo] recover find_package * fixup target path to `share/unofficial-cpuinfo` * change IMPORTED target name to `unofficial::cpuinfo::cpuinfo` * [fbgemm] resolve failure after cpuinfo rename * change cpuinfo::cpuinfo to unofficial * [fbgemm] update port version * [nnpack] use changes target name * [nnpack] update port-version * [pthreadpool] support find_package * update to latest source code * [pthreadpool] update port version * [pthreadpool] support uwp * use WindowStore in platform check * [xnnpack] support find_package * windows: static build * export with namespace `unofficial::` * [xnnpack] update code to latest * change snapshot to resolve linux compile errors * [xnnpack] "supports" in manifest * update baseline & port SHA * [xnnpack] use 'vcpkg-cmake' ports * update port git-tree SHA * [xnnpack] remove unused configure options * [xnnpack] update code version * snapshot: 21/04/10 -> 21/05/17 Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> Co-authored-by: Billy Robert ONeal III --- ports/xnnpack/portfile.cmake | 33 +++++++++++++++ ports/xnnpack/use-packages.patch | 90 ++++++++++++++++++++++++++++++++++++++++ ports/xnnpack/vcpkg.json | 21 ++++++++++ versions/baseline.json | 4 ++ versions/x-/xnnpack.json | 9 ++++ 5 files changed, 157 insertions(+) create mode 100644 ports/xnnpack/portfile.cmake create mode 100644 ports/xnnpack/use-packages.patch create mode 100644 ports/xnnpack/vcpkg.json create mode 100644 versions/x-/xnnpack.json diff --git a/ports/xnnpack/portfile.cmake b/ports/xnnpack/portfile.cmake new file mode 100644 index 000000000..28abad2a4 --- /dev/null +++ b/ports/xnnpack/portfile.cmake @@ -0,0 +1,33 @@ +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/XNNPACK + REF 5223fd1922d9d965ddb07865d1d13293069fab65 # 2021-05-17 + SHA512 5c1eb9171a046c683d5a96ae70b6dab36c415c981e8f29857d16ad67afa22681f0fe6f7623527200fd954403d50b036bb2892ba44e397d639860b9ec4873e7c6 + HEAD_REF master + PATCHES + use-packages.patch +) + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -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() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/debug/share +) diff --git a/ports/xnnpack/use-packages.patch b/ports/xnnpack/use-packages.patch new file mode 100644 index 000000000..17d274c99 --- /dev/null +++ b/ports/xnnpack/use-packages.patch @@ -0,0 +1,90 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b69ce50c..1e8938b7 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3042,7 +3032,7 @@ ELSE() + ENDIF() + ENDIF() + +-TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include) ++TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC $ $) + TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src) + IF(WIN32) + # Target Windows 7+ API +@@ -3057,7 +3047,7 @@ IF(LIBM) + ENDIF() + + # ---[ Configure clog +-IF(NOT TARGET clog) ++IF(FALSE) + IF(NOT XNNPACK_USE_SYSTEM_LIBS) + SET(CLOG_BUILD_TESTS OFF CACHE BOOL "") + SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "") +@@ -3075,10 +3065,9 @@ IF(NOT TARGET clog) + SET_PROPERTY(TARGET clog PROPERTY IMPORTED_LOCATION "${CLOG_LIBRARY}") + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE clog) + + # ---[ Configure cpuinfo +-IF(NOT TARGET cpuinfo) ++IF(FALSE) + IF(NOT XNNPACK_USE_SYSTEM_LIBS) + SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "") + SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "") +@@ -3096,10 +3085,11 @@ IF(NOT TARGET cpuinfo) + SET_PROPERTY(TARGET cpuinfo PROPERTY IMPORTED_LOCATION "${CPUINFO_LIBRARY}") + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE cpuinfo) ++find_package(unofficial-cpuinfo CONFIG REQUIRED) ++target_link_libraries(XNNPACK PUBLIC unofficial::cpuinfo::clog unofficial::cpuinfo::cpuinfo) + + # ---[ Configure pthreadpool +-IF(NOT TARGET pthreadpool) ++IF(FALSE) + IF(NOT XNNPACK_USE_SYSTEM_LIBS) + SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "") + SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "") +@@ -3119,7 +3109,7 @@ ENDIF() + TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool) + + # ---[ Configure FXdiv +-IF(NOT TARGET fxdiv) ++IF(FALSE) + IF(NOT XNNPACK_USE_SYSTEM_LIBS) + SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") + SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") +@@ -3135,10 +3125,11 @@ IF(NOT TARGET fxdiv) + SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C) + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv) ++find_path(FXDIV_INCLUDE_DIRS "fxdiv.h") ++target_include_directories(XNNPACK PRIVATE ${FXDIV_INCLUDE_DIRS}) + + # ---[ Configure FP16 +-IF(NOT TARGET fp16) ++IF(FALSE) + IF(NOT XNNPACK_USE_SYSTEM_LIBS) + SET(FP16_BUILD_TESTS OFF CACHE BOOL "") + SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "") +@@ -3154,12 +3145,17 @@ IF(NOT TARGET fp16) + SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C) + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16) ++find_path(FP16_INCLUDE_DIRS "fp16.h") ++target_include_directories(XNNPACK PRIVATE ${FP16_INCLUDE_DIRS}) + + INSTALL(TARGETS XNNPACK ++ EXPORT xnnpack-config ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++install(EXPORT xnnpack-config NAMESPACE unofficial:: ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/xnnpack) + + # ---[ XNNPACK unit tests + IF(XNNPACK_BUILD_TESTS) diff --git a/ports/xnnpack/vcpkg.json b/ports/xnnpack/vcpkg.json new file mode 100644 index 000000000..f3d46ad94 --- /dev/null +++ b/ports/xnnpack/vcpkg.json @@ -0,0 +1,21 @@ +{ + "name": "xnnpack", + "version-date": "2021-05-17", + "description": "High-efficiency floating-point neural network inference operators for mobile, server, and Web", + "homepage": "https://github.com/google/XNNPACK", + "supports": "!arm & !uwp", + "dependencies": [ + "cpuinfo", + "fp16", + "fxdiv", + "pthreadpool", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index a8add12b0..b7673cc7d 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -6552,6 +6552,10 @@ "baseline": "0.5.2-1", "port-version": 0 }, + "xnnpack": { + "baseline": "2021-05-17", + "port-version": 0 + }, "xorstr": { "baseline": "2020-11-29", "port-version": 0 diff --git a/versions/x-/xnnpack.json b/versions/x-/xnnpack.json new file mode 100644 index 000000000..df28faff7 --- /dev/null +++ b/versions/x-/xnnpack.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "a35b56ac05249424cfcc4ad4727e34d7e1216f25", + "version-date": "2021-05-17", + "port-version": 0 + } + ] +} -- cgit v1.2.3