Global CMake reorganization:
[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 SET(OPENCV_C_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect\r
7                                    opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
8 \r
9 ocv_check_dependencies(${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
10 \r
11 if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)\r
12   project(c_samples)\r
13 \r
14   if(CMAKE_COMPILER_IS_GNUCXX)\r
15     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")\r
16   endif()\r
17     \r
18   ocv_include_modules(${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
19 \r
20   # ---------------------------------------------\r
21   #      Define executable targets\r
22   # ---------------------------------------------\r
23   MACRO(OPENCV_DEFINE_C_EXAMPLE name srcs)\r
24     set(the_target "example_${name}")\r
25     add_executable(${the_target} ${srcs})\r
26     target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
27 \r
28     set_target_properties(${the_target} PROPERTIES\r
29       OUTPUT_NAME "${name}"\r
30       PROJECT_LABEL "(EXAMPLE) ${name}")\r
31 \r
32     if(ENABLE_SOLUTION_FOLDERS)\r
33       set_target_properties(${the_target} PROPERTIES FOLDER "samples//c")\r
34     endif()\r
35 \r
36     if(WIN32)\r
37       if(MSVC AND NOT BUILD_SHARED_LIBS)\r
38         set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")\r
39       endif()\r
40       install(TARGETS ${the_target}\r
41               RUNTIME DESTINATION "samples/c" COMPONENT main)\r
42     endif()\r
43   ENDMACRO()\r
44     \r
45   file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.c)\r
46     \r
47   foreach(sample_filename ${cpp_samples})\r
48     get_filename_component(sample ${sample_filename} NAME_WE)\r
49     OPENCV_DEFINE_C_EXAMPLE(${sample}  ${sample_filename})\r
50   endforeach()\r
51 endif()\r
52 \r
53 if (INSTALL_C_EXAMPLES AND NOT WIN32)\r
54   file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd )\r
55   install(FILES ${C_SAMPLES}\r
56           DESTINATION share/opencv/samples/c\r
57           PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)\r
58 endif ()\r
59 \r