8041ab5bc3eeb286ebd7d6ec2032d55e3e69c7ab
[platform/core/ml/nnfw.git] / runtime / onert / core / CMakeLists.txt
1 file(GLOB_RECURSE SOURCES "src/*.cc")
2 file(GLOB_RECURSE TESTS "*.test.cc")
3 list(REMOVE_ITEM SOURCES ${TESTS})
4
5 nnfw_find_package(Ruy REQUIRED)
6
7 add_library(onert_core SHARED ${SOURCES})
8 set_target_properties(onert_core PROPERTIES POSITION_INDEPENDENT_CODE ON)
9
10 # NOTE
11 # We publish public headers into developer package.
12 # To avoid mistake using private header in public header, do not define
13 # private target_include_directories scope for src/ directory.
14 target_include_directories(onert_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
15
16 target_link_libraries(onert_core PRIVATE jsoncpp half)
17 target_link_libraries(onert_core PRIVATE nnfw_lib_misc nnfw_lib_cker)
18 target_link_libraries(onert_core PRIVATE nnfw_common)
19 target_link_libraries(onert_core PRIVATE nnfw_coverage)
20 target_link_libraries(onert_core PRIVATE dl ${LIB_PTHREAD})
21 target_link_libraries(onert_core PRIVATE ruy)
22 target_link_libraries(onert_core INTERFACE ruy_instrumentation)
23
24 if(CMAKE_BUILD_TYPE_LC STREQUAL "release")
25   add_custom_command(TARGET onert_core POST_BUILD
26                      COMMAND ${CMAKE_STRIP} "--strip-unneeded" $<TARGET_FILE_NAME:onert_core>)
27 endif()
28
29 # NOTE Below line is added to remove warning for android build
30 #      It will be removed after android build uses gold linker
31 if (ANDROID)
32   target_link_libraries(onert_core INTERFACE log)
33 endif (ANDROID)
34
35 if(ENVVAR_ONERT_CONFIG)
36   target_compile_definitions(onert_core PRIVATE ENVVAR_FOR_DEFAULT_CONFIG)
37 endif(ENVVAR_ONERT_CONFIG)
38
39 install(TARGETS onert_core LIBRARY DESTINATION lib)
40 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/"
41         DESTINATION "include/onert"
42         FILES_MATCHING PATTERN "*.h" PATTERN "*.lst"
43         )
44
45 if(NOT ENABLE_TEST)
46   return()
47 endif(NOT ENABLE_TEST)
48
49 # Unit Tests
50 set(TEST_ONERT_CORE test_onert_core)
51
52 add_executable(${TEST_ONERT_CORE} ${TESTS})
53
54 target_link_libraries(${TEST_ONERT_CORE} onert_core)
55 # Requires linking nnfw_coverage: check header coverage
56 target_link_libraries(${TEST_ONERT_CORE} nnfw_coverage)
57 target_link_libraries(${TEST_ONERT_CORE} gtest gtest_main dl ${LIB_PTHREAD})
58
59 add_test(${TEST_ONERT_CORE} ${TEST_ONERT_CORE})
60 install(TARGETS ${TEST_ONERT_CORE} DESTINATION unittest)