Merge pull request #11781 from dkurt:dnn_uint8_inputs
[platform/upstream/opencv.git] / apps / CMakeLists.txt
1 add_definitions(-D__OPENCV_BUILD=1)
2 add_definitions(-D__OPENCV_APPS=1)
3
4 # Unified function for creating OpenCV applications:
5 #   ocv_add_application(tgt [MODULES <m1> [<m2> ...]] SRCS <src1> [<src2> ...])
6 function(ocv_add_application the_target)
7   cmake_parse_arguments(APP "" "" "MODULES;SRCS" ${ARGN})
8   ocv_check_dependencies(${APP_MODULES})
9   if(NOT OCV_DEPENDENCIES_FOUND)
10      return()
11   endif()
12
13   project(${the_target})
14   ocv_target_include_modules_recurse(${the_target} ${APP_MODULES})
15   ocv_target_include_directories(${the_target} PRIVATE "${OpenCV_SOURCE_DIR}/include/opencv")
16   ocv_add_executable(${the_target} ${APP_SRCS})
17   ocv_target_link_libraries(${the_target} ${APP_MODULES})
18   set_target_properties(${the_target} PROPERTIES
19                         DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
20                         ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
21                         RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
22                         OUTPUT_NAME "${the_target}")
23
24   if(ENABLE_SOLUTION_FOLDERS)
25     set_target_properties(${the_target} PROPERTIES FOLDER "applications")
26   endif()
27
28   if(INSTALL_CREATE_DISTRIB)
29     if(BUILD_SHARED_LIBS)
30       install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} CONFIGURATIONS Release COMPONENT dev)
31     endif()
32   else()
33     install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT dev)
34   endif()
35 endfunction()
36
37 link_libraries(${OPENCV_LINKER_LIBS})
38
39 macro(ocv_add_app directory)
40   if(DEFINED BUILD_APPS_LIST)
41     list(FIND BUILD_APPS_LIST ${directory} _index)
42     if (${_index} GREATER -1)
43       add_subdirectory(${directory})
44     else()
45       message(STATUS "Skip OpenCV app: ${directory}")
46     endif()
47   else()
48     add_subdirectory(${directory})
49   endif()
50 endmacro()
51
52 ocv_add_app(traincascade)
53 ocv_add_app(createsamples)
54 ocv_add_app(annotation)
55 ocv_add_app(visualisation)
56 ocv_add_app(interactive-calibration)
57 ocv_add_app(version)