summaryrefslogtreecommitdiff
path: root/infra/nnfw/cmake/packages/Fp16Config.cmake
blob: 6c31613c00d857968463114f058e8f364f4533b1 (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
function(_Fp16_Build)
  nnas_find_package(Fp16Source QUIET)

  # NOTE This line prevents multiple definitions of target
  if(TARGET fp16)
    set(Fp16Source_DIR ${Fp16Source_DIR} PARENT_SCOPE)
    set(Fp16_FOUND TRUE PARENT_SCOPE)
    return()
  endif(TARGET fp16)

  if(NOT Fp16Source_FOUND)
    message(STATUS "FP16: Source not found")
    set(Fp16_FOUND FALSE PARENT_SCOPE)
    return()
  endif(NOT Fp16Source_FOUND)

  set(FP16_BUILD_TESTS OFF CACHE BOOL "Build FP16 unit tests")
  set(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "Build FP16 micro-benchmarks")
  nnas_find_package(PsimdSource)
  set(PSIMD_SOURCE_DIR ${PsimdSource_DIR} CACHE STRING "String to disable download PSIMD on fp16")
  add_extdirectory("${Fp16Source_DIR}" FP16 EXCLUDE_FROM_ALL)
  set(Fp16Source_DIR ${Fp16Source_DIR} PARENT_SCOPE)
  set(Fp16_FOUND TRUE PARENT_SCOPE)
endfunction(_Fp16_Build)

if(BUILD_FP16)
  _Fp16_Build()
else()
  set(Fp16_FOUND FALSE)
endif()