1 set(DRIVER "driver/Driver.cpp")
3 file(GLOB_RECURSE SOURCES "src/*.cpp")
5 add_executable(record-minmax ${DRIVER} ${SOURCES})
6 target_include_directories(record-minmax PRIVATE include)
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)
20 install(TARGETS record-minmax DESTINATION bin)
24 endif(NOT ENABLE_TEST)
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.
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)
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)
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)
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.
60 "src/RecordFunction.cpp"
61 "src/MinMaxComputer.cpp")
63 file(GLOB_RECURSE TESTS "tests/*.test.cpp")
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)