Imported Upstream version 1.25.0
[platform/core/ml/nnfw.git] / compiler / record-minmax / CMakeLists.txt
1 set(DRIVER "driver/Driver.cpp")
2
3 file(GLOB_RECURSE SOURCES "src/*.cpp")
4
5 add_executable(record-minmax ${DRIVER} ${SOURCES})
6 target_include_directories(record-minmax PRIVATE include)
7
8 target_link_libraries(record-minmax arser)
9 target_link_libraries(record-minmax safemain)
10 target_link_libraries(record-minmax luci_import)
11 target_link_libraries(record-minmax luci_env)
12 target_link_libraries(record-minmax luci_export)
13 target_link_libraries(record-minmax luci_interpreter)
14 target_link_libraries(record-minmax luci_log)
15 target_link_libraries(record-minmax dio_hdf5)
16 target_link_libraries(record-minmax vconone)
17 target_link_libraries(record-minmax nncc_coverage)
18 target_link_libraries(record-minmax nncc_common)
19
20 install(TARGETS record-minmax DESTINATION bin)
21
22 if(NOT ENABLE_TEST)
23   return()
24 endif(NOT ENABLE_TEST)
25
26 ###
27 ### record-minmax-for-thread-test is temporarily disabled, because
28 ### gcc package has a bug.
29 ### (https://bugs.launchpad.net/ubuntu/+source/gcc-10/+bug/2029910)
30 ### Let's enable the target after the bug is fixed.
31 ###
32 # Build record-minmax-for-thread-test if target arch is 64bit
33 # Thread sanitizer is only available on 64bit machine
34 # (https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual#supported-platforms)
35 if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" AND FALSE)
36 # create record-minmax-for-thread-test target
37   # Note: record-minmax-for-thread-test is built with -fsanitize=thread so that thread sanitizer can check memory bugs,
38   # record-minmax is built without the option for performance.
39   add_executable(record-minmax-for-thread-test ${DRIVER} ${SOURCES})
40   target_include_directories(record-minmax-for-thread-test PRIVATE include)
41
42   target_link_libraries(record-minmax-for-thread-test arser)
43   target_link_libraries(record-minmax-for-thread-test safemain)
44   target_link_libraries(record-minmax-for-thread-test luci_import)
45   target_link_libraries(record-minmax-for-thread-test luci_env)
46   target_link_libraries(record-minmax-for-thread-test luci_export)
47   target_link_libraries(record-minmax-for-thread-test luci_interpreter)
48   target_link_libraries(record-minmax-for-thread-test dio_hdf5)
49   target_link_libraries(record-minmax-for-thread-test vconone)
50   target_link_libraries(record-minmax-for-thread-test nncc_coverage)
51   target_link_libraries(record-minmax-for-thread-test luci_log)
52
53   target_compile_options(record-minmax-for-thread-test PUBLIC -fsanitize=thread)
54   target_link_libraries(record-minmax-for-thread-test -fsanitize=thread)
55 endif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" AND FALSE)
56
57 # record-minmax is executable, so we do not link it to the test.
58 # Instead, we use TEST_SOURCES to specify sources uesd for tests.
59 set(TEST_SOURCES
60     "src/RecordFunction.cpp"
61     "src/MinMaxComputer.cpp")
62
63 file(GLOB_RECURSE TESTS "tests/*.test.cpp")
64
65 nnas_find_package(GTest REQUIRED)
66 GTest_AddTest(record_minmax_function_test ${TESTS} ${TEST_SOURCES})
67 target_include_directories(record_minmax_function_test PRIVATE include)
68 target_link_libraries(record_minmax_function_test luci_lang)
69 target_link_libraries(record_minmax_function_test nncc_coverage)