summaryrefslogtreecommitdiff
path: root/compute/ncnn/CMakeLists.txt
blob: a8f50120f5ed9f543dc58328e64fd427861368e3 (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
if(NOT BUILD_SRCN_KERNEL)
  message(STATUS "SRCN kernel library build: disabled")
  return()
else(NOT BUILD_SRCN_KERNEL)
  message(STATUS "SRCN kernel library build: OK")
endif()

# Find and use pre-installed OpenMP
find_package(OpenMP QUIET)
if(NOT OpenMP_FOUND)
  return()
endif(NOT OpenMP_FOUND)

file(GLOB_RECURSE SOURCES src/*.cc)
file(GLOB_RECURSE TESTS src/*_test.cc)
list(REMOVE_ITEM SOURCES ${TESTS})

add_library(nnfw_lib_srcn STATIC ${SOURCES})
target_include_directories(nnfw_lib_srcn PUBLIC include)
if(NOT TARGET OpenMP::OpenMP_CXX)
    find_package(Threads REQUIRED)
    add_library(OpenMP::OpenMP_CXX IMPORTED INTERFACE)
    set_property(TARGET OpenMP::OpenMP_CXX
                 PROPERTY INTERFACE_COMPILE_OPTIONS ${OpenMP_CXX_FLAGS})
    # Only works if the same flag is passed to the linker; use CMake 3.9+ otherwise (Intel, AppleClang)
    set_property(TARGET OpenMP::OpenMP_CXX
                 PROPERTY INTERFACE_LINK_LIBRARIES ${OpenMP_CXX_FLAGS} Threads::Threads)

endif()
target_link_libraries(nnfw_lib_srcn PRIVATE OpenMP::OpenMP_CXX)
target_link_libraries(nnfw_lib_srcn PRIVATE nnfw_common)
target_compile_definitions(nnfw_lib_srcn PRIVATE TIZEN) # ANDROID or TIZEN
#target_compile_definitions(nnfw_lib_srcn PRIVATE NCNN) # Enable if ready
set_target_properties(nnfw_lib_srcn PROPERTIES POSITION_INDEPENDENT_CODE ON)