avoid explicit sample enumeration in samples/{c,cpp}/CMakeLists.txt
[profile/ivi/opencv.git] / samples / c / CMakeLists.txt
1 # ----------------------------------------------------------------------------\r
2 #  CMake file for C samples. See root CMakeLists.txt\r
3 #\r
4 # ----------------------------------------------------------------------------\r
5 \r
6 if (BUILD_EXAMPLES)\r
7     project(c_samples)\r
8 \r
9     if(CMAKE_COMPILER_IS_GNUCXX)\r
10         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")\r
11     endif()\r
12     \r
13         include_directories(\r
14                 "${CMAKE_SOURCE_DIR}/modules/core/include"\r
15                 "${CMAKE_SOURCE_DIR}/modules/imgproc/include"\r
16                 "${CMAKE_SOURCE_DIR}/modules/video/include"\r
17                 "${CMAKE_SOURCE_DIR}/modules/highgui/include"\r
18                 "${CMAKE_SOURCE_DIR}/modules/ml/include"\r
19                 "${CMAKE_SOURCE_DIR}/modules/calib3d/include"\r
20                 "${CMAKE_SOURCE_DIR}/modules/features2d/include"\r
21                 "${CMAKE_SOURCE_DIR}/modules/objdetect/include"\r
22                 "${CMAKE_SOURCE_DIR}/modules/legacy/include"\r
23                 "${CMAKE_SOURCE_DIR}/modules/contrib/include"\r
24         )\r
25 \r
26     # ---------------------------------------------\r
27     #      Define executable targets\r
28     # ---------------------------------------------\r
29     MACRO(MY_DEFINE_EXAMPLE name srcs)\r
30         set(the_target "example_${name}")\r
31         add_executable(${the_target} ${srcs})\r
32                 set_target_properties(${the_target} PROPERTIES\r
33                     OUTPUT_NAME "${name}"\r
34                     PROJECT_LABEL "(EXAMPLE) ${name}")\r
35         add_dependencies(${the_target} opencv_core opencv_imgproc opencv_highgui\r
36             opencv_ml opencv_video opencv_objdetect opencv_features2d\r
37             opencv_calib3d opencv_legacy opencv_contrib)\r
38         target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} opencv_core\r
39             opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect\r
40             opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
41 \r
42         if(WIN32)\r
43             install(TARGETS ${the_target}\r
44                 RUNTIME DESTINATION "samples/c" COMPONENT main)\r
45         endif()\r
46     ENDMACRO(MY_DEFINE_EXAMPLE)\r
47     \r
48     file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.c)\r
49     \r
50     foreach(sample_filename ${cpp_samples})\r
51         get_filename_component(sample ${sample_filename} NAME_WE)\r
52         MY_DEFINE_EXAMPLE(${sample}  ${sample_filename})\r
53     endforeach()\r
54 endif(BUILD_EXAMPLES)\r
55 \r
56 if (INSTALL_C_EXAMPLES AND NOT WIN32)\r
57     file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd )\r
58     install(FILES ${C_SAMPLES}\r
59             DESTINATION share/opencv/samples/c\r
60             PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)\r
61 endif ()\r
62 \r