aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/nnpack/fix-cmakelists.patch
blob: a1ba27b88c4d32e672c3b3f5f7164fa7cc6aeae0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5ecd2df..d26aa34 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,8 +12,6 @@ SET_PROPERTY(CACHE NNPACK_BACKEND PROPERTY STRINGS auto psimd scalar)
 OPTION(NNPACK_CONVOLUTION_ONLY "Build only NNPACK functions for convolutional layer" OFF)
 OPTION(NNPACK_INFERENCE_ONLY "Build only NNPACK functions for inference" OFF)
 OPTION(NNPACK_CUSTOM_THREADPOOL "Build NNPACK for custom thread pool" OFF)
-SET(NNPACK_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build")
-SET_PROPERTY(CACHE NNPACK_LIBRARY_TYPE PROPERTY STRINGS default static shared)
 OPTION(NNPACK_BUILD_TESTS "Build NNPACK unit tests" ON)
 
 # ---[ CMake options
@@ -176,7 +174,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
     SET(PEACHPY_PYTHONPATH "${PYTHON_SIX_SOURCE_DIR}:${PYTHON_PEACHPY_SOURCE_DIR}")
   ENDIF()
 ENDIF()
-
+IF(FALSE)
 IF(NOT DEFINED CPUINFO_SOURCE_DIR)
   MESSAGE(STATUS "Downloading cpuinfo to ${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo (define CPUINFO_SOURCE_DIR to avoid it)")
   CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo-download/CMakeLists.txt")
@@ -226,7 +224,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR)
     WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool-download")
   SET(PTHREADPOOL_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool" CACHE STRING "pthreadpool source directory")
 ENDIF()
-
+ENDIF()
 IF(NNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
   MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
   CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
@@ -442,15 +440,7 @@ ELSE()
   SET(NNPACK_BACKEND_C_SRCS ${NNPACK_BACKEND_SRCS})
 ENDIF()
 
-IF(NNPACK_LIBRARY_TYPE STREQUAL "default")
-  ADD_LIBRARY(nnpack ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS})
-ELSEIF(NNPACK_LIBRARY_TYPE STREQUAL "shared")
-  ADD_LIBRARY(nnpack SHARED ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS})
-ELSEIF(NNPACK_LIBRARY_TYPE STREQUAL "static")
-  ADD_LIBRARY(nnpack STATIC ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS})
-ELSE()
-  MESSAGE(FATAL_ERROR "Unsupported NNPACK library type \"${NNPACK_LIBRARY_TYPE}\". Must be \"static\", \"shared\", or \"default\"")
-ENDIF()
+ADD_LIBRARY(nnpack ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS})
 NNPACK_TARGET_ENABLE_C99(nnpack)
 IF(IOS OR CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|armv7l)$")
   IF(IOS AND NNPACK_BACKEND STREQUAL "neon")
@@ -472,7 +462,7 @@ ENDIF()
 IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
   SET_PROPERTY(SOURCE ${NNPACK_BACKEND_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 ")
 ENDIF()
-TARGET_INCLUDE_DIRECTORIES(nnpack PUBLIC include)
+TARGET_INCLUDE_DIRECTORIES(nnpack PUBLIC  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
 TARGET_INCLUDE_DIRECTORIES(nnpack PRIVATE src)
 IF(NNPACK_BACKEND STREQUAL "psimd")
   TARGET_COMPILE_DEFINITIONS(nnpack PRIVATE NNP_BACKEND_PSIMD=1)
@@ -496,6 +486,8 @@ NNPACK_TARGET_ENABLE_C99(nnpack_reference_layers)
 TARGET_INCLUDE_DIRECTORIES(nnpack_reference_layers PUBLIC include)
 
 # ---[ Configure cpuinfo
+find_package(cpuinfo CONFIG REQUIRED)
+add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
 IF(NOT TARGET cpuinfo)
   SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "")
   SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "")
@@ -506,8 +498,10 @@ IF(NOT TARGET cpuinfo)
     "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo")
 ENDIF()
 TARGET_LINK_LIBRARIES(nnpack PRIVATE cpuinfo)
-
+  
 # ---[ Configure pthreadpool
+find_package(unofficial-pthreadpool CONFIG REQUIRED)
+add_library(pthreadpool ALIAS unofficial::pthreadpool)
 IF(NOT TARGET pthreadpool)
   SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
   SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
@@ -525,6 +519,8 @@ ENDIF()
 TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC pthreadpool)
 
 # ---[ Configure FXdiv
+find_package(unofficial-fxdiv CONFIG REQUIRED)
+add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv)
 IF(NOT TARGET fxdiv)
   SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
   SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
@@ -535,6 +531,8 @@ ENDIF()
 TARGET_LINK_LIBRARIES(nnpack PRIVATE fxdiv)
 
 # ---[ Configure psimd
+find_package(unofficial-psimd CONFIG REQUIRED)
+add_library(psimd ALIAS unofficial::psimd::psimd)
 IF(NOT TARGET psimd)
   ADD_SUBDIRECTORY(
     "${PSIMD_SOURCE_DIR}"
@@ -543,6 +541,8 @@ ENDIF()
 TARGET_LINK_LIBRARIES(nnpack PRIVATE psimd)
 
 # ---[ Configure FP16
+find_package(unofficial-fp16 CONFIG REQUIRED)
+add_library(fp16 ALIAS unofficial::fp16::fp16)
 IF(NOT TARGET fp16)
   SET(FP16_BUILD_TESTS OFF CACHE BOOL "")
   SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "")
@@ -554,10 +554,24 @@ TARGET_LINK_LIBRARIES(nnpack PRIVATE fp16)
 TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC fp16)
 
 INSTALL(TARGETS nnpack
+    EXPORT unofficial-nnpack-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-nnpack-config-targets NAMESPACE unofficial::nnpack::
+  FILE unofficial-nnpack-config-targets.cmake
+  DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack) # share/nnpack
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-nnpack-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nnpack-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack)
+
+
+
+
+
 IF(NNPACK_BUILD_TESTS)
   # ---[ Build google test
   IF(NOT TARGET gtest)
diff --git a/Config.cmake.in b/Config.cmake.in
new file mode 100644
index 0000000..1724d5a
--- /dev/null
+++ b/Config.cmake.in
@@ -0,0 +1,10 @@
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+find_dependency(unofficial-fp16)
+find_dependency(unofficial-fxdiv)
+find_dependency(cpuinfo)
+find_dependency(unofficial-pthreadpool)
+
+
+include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-nnpack-config-targets.cmake" )