1 add_definitions(-D__OPENCV_BUILD=1)
2 add_definitions(-D__OPENCV_APPS=1)
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)
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}")
24 if(ENABLE_SOLUTION_FOLDERS)
25 set_target_properties(${the_target} PROPERTIES FOLDER "applications")
28 if(INSTALL_CREATE_DISTRIB)
30 install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} CONFIGURATIONS Release COMPONENT dev)
33 install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT dev)
37 link_libraries(${OPENCV_LINKER_LIBS})
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})
45 message(STATUS "Skip OpenCV app: ${directory}")
48 add_subdirectory(${directory})
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)