blob: 97382b71ef1e9de989bc2d2ae2b3cb4eface1343 (
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
|
function(_NNPACK_Import)
nnfw_find_package(NNPACKSource QUIET)
if(NOT NNPACK_SOURCE_FOUND)
set(NNPACK_FOUND FALSE PARENT_SCOPE)
message(STATUS "NNPACK not found")
return()
endif(NOT NNPACK_SOURCE_FOUND)
nnfw_find_package(CpuinfoSource REQUIRED)
nnfw_find_package(FP16Source REQUIRED)
nnfw_find_package(FXdivSource REQUIRED)
nnfw_find_package(PSIMDSource REQUIRED)
nnfw_find_package(PthreadpoolSource REQUIRED)
nnfw_find_package(SixSource REQUIRED)
nnfw_find_package(Enum34Source REQUIRED)
nnfw_find_package(OpcodesSource REQUIRED)
nnfw_find_package(PeachpySource QUIET)
if(NOT PYTHON_PEACHPY_SOURCE_FOUND)
set(NNPACK_FOUND FALSE PARENT_SCOPE)
return()
endif(NOT PYTHON_PEACHPY_SOURCE_FOUND)
# workaround for CI
set(THREADS_PTHREAD_ARG "2" CACHE STRING "Forcibly set by CMakeLists.txt." FORCE)
if(NOT TARGET nnpack)
# Allows us to build nnpack at build time
set(NNPACK_BUILD_TESTS OFF CACHE BOOL "")
set(NNPACK_BUILD_BENCHMARKS OFF CACHE BOOL "")
set(NNPACK_LIBRARY_TYPE "static" CACHE STRING "")
set(PTHREADPOOL_LIBRARY_TYPE "static" CACHE STRING "")
set(CPUINFO_LIBRARY_TYPE "static" CACHE STRING "")
nnfw_include(ExternalProjectTools)
add_extdirectory("${NNPACK_SOURCE_DIR}" nnpack EXCLUDE_FROM_ALL)
# We build static versions of nnpack and pthreadpool but link
# them into a shared library (high-perf-backend), so they need PIC.
set_property(TARGET nnpack PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET pthreadpool PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON)
endif()
set(NNPACK_FOUND TRUE PARENT_SCOPE)
set(NNPACK_INCLUDE_DIRS
$<TARGET_PROPERTY:nnpack,INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:pthreadpool,INCLUDE_DIRECTORIES> PARENT_SCOPE)
set(NNPACK_LIBRARIES $<TARGET_FILE:nnpack> $<TARGET_FILE:cpuinfo> PARENT_SCOPE)
endfunction(_NNPACK_Import)
_NNPACK_Import()
|