Fixed some warnings and install problems on linux
[profile/ivi/opencv.git] / samples / c / CMakeLists.txt
index 5e2b220..8e7f290 100644 (file)
@@ -3,95 +3,58 @@
 #\r
 # ----------------------------------------------------------------------------\r
 \r
-if (BUILD_EXAMPLES)\r
-    project(c_samples)\r
+SET(OPENCV_C_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc\r
+    opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo opencv_nonfree\r
+    opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
 \r
-    if(CMAKE_COMPILER_IS_GNUCXX)\r
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")\r
+ocv_check_dependencies(${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
+\r
+if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)\r
+  project(c_samples)\r
+\r
+  if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS)\r
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")\r
+  endif()\r
+\r
+  ocv_include_modules(${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
+\r
+  # ---------------------------------------------\r
+  #      Define executable targets\r
+  # ---------------------------------------------\r
+  MACRO(OPENCV_DEFINE_C_EXAMPLE name srcs)\r
+    set(the_target "example_${name}")\r
+    add_executable(${the_target} ${srcs})\r
+    target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_C_SAMPLES_REQUIRED_DEPS})\r
+\r
+    set_target_properties(${the_target} PROPERTIES\r
+      OUTPUT_NAME "${name}"\r
+      PROJECT_LABEL "(EXAMPLE) ${name}")\r
+\r
+    if(ENABLE_SOLUTION_FOLDERS)\r
+      set_target_properties(${the_target} PROPERTIES FOLDER "samples//c")\r
+    endif()\r
+\r
+    if(WIN32)\r
+      if(MSVC AND NOT BUILD_SHARED_LIBS)\r
+        set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")\r
+      endif()\r
+      install(TARGETS ${the_target}\r
+              RUNTIME DESTINATION "samples/c" COMPONENT main)\r
     endif()\r
-    \r
-       include_directories(\r
-               "${CMAKE_SOURCE_DIR}/modules/core/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/imgproc/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/video/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/highgui/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/ml/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/calib3d/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/features2d/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/objdetect/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/legacy/include"\r
-               "${CMAKE_SOURCE_DIR}/modules/contrib/include"\r
-       )\r
+  ENDMACRO()\r
 \r
-    # ---------------------------------------------\r
-    #      Define executable targets\r
-    # ---------------------------------------------\r
-    MACRO(MY_DEFINE_EXAMPLE name srcs)\r
-       add_executable(${name} ${srcs})\r
-               set_target_properties(${name} PROPERTIES PROJECT_LABEL "(EXAMPLE) ${name}")\r
-       add_dependencies(${name} opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
-       target_link_libraries(${name} ${OPENCV_LINKER_LIBS} opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
+  file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.c)\r
 \r
-        if(WIN32)\r
-            install(TARGETS ${name}\r
-                RUNTIME DESTINATION "samples/c" COMPONENT main)\r
-        endif()\r
-    ENDMACRO(MY_DEFINE_EXAMPLE)\r
-    \r
-    MY_DEFINE_EXAMPLE(adaptiveskindetector     adaptiveskindetector.cpp)\r
-    MY_DEFINE_EXAMPLE(bgfg_codebook    bgfg_codebook.cpp)\r
-    MY_DEFINE_EXAMPLE(bgfg_segm                        bgfg_segm.cpp)\r
-    MY_DEFINE_EXAMPLE(blobtrack_sample                 blobtrack_sample.cpp)\r
-    MY_DEFINE_EXAMPLE(camshiftdemo             camshiftdemo.c)\r
-    MY_DEFINE_EXAMPLE(contours                 contours.c)\r
-    MY_DEFINE_EXAMPLE(convert_cascade  convert_cascade.c)\r
-    MY_DEFINE_EXAMPLE(convexhull               convexhull.c)\r
-    MY_DEFINE_EXAMPLE(delaunay                 delaunay.c)\r
-    MY_DEFINE_EXAMPLE(demhist                  demhist.c)\r
-    MY_DEFINE_EXAMPLE(detectors_sample         detectors_sample.cpp)\r
-    MY_DEFINE_EXAMPLE(dft                              dft.c)\r
-    MY_DEFINE_EXAMPLE(distrans                 distrans.c)\r
-    MY_DEFINE_EXAMPLE(drawing                  drawing.c)\r
-    MY_DEFINE_EXAMPLE(edge                             edge.c)\r
-    MY_DEFINE_EXAMPLE(facedetect               facedetect.cpp)\r
-    MY_DEFINE_EXAMPLE(ffilldemo                        ffilldemo.c)\r
-    MY_DEFINE_EXAMPLE(fback                        fback.cpp)\r
-    MY_DEFINE_EXAMPLE(fback_c              fback_c.c)\r
-    MY_DEFINE_EXAMPLE(find_obj                 find_obj.cpp)\r
-    MY_DEFINE_EXAMPLE(fitellipse               fitellipse.cpp)\r
-    MY_DEFINE_EXAMPLE(houghlines               houghlines.c)\r
-    MY_DEFINE_EXAMPLE(image                            image.cpp)\r
-    MY_DEFINE_EXAMPLE(inpaint                  inpaint.cpp)\r
-    MY_DEFINE_EXAMPLE(kalman                   kalman.c)\r
-    MY_DEFINE_EXAMPLE(kmeans                   kmeans.c)\r
-    MY_DEFINE_EXAMPLE(laplace                  laplace.c)\r
-    MY_DEFINE_EXAMPLE(letter_recog             letter_recog.cpp)\r
-    MY_DEFINE_EXAMPLE(lkdemo                   lkdemo.c)\r
-    MY_DEFINE_EXAMPLE(minarea                  minarea.c)\r
-    MY_DEFINE_EXAMPLE(morphology               morphology.c)\r
-    MY_DEFINE_EXAMPLE(motempl                  motempl.c)\r
-    MY_DEFINE_EXAMPLE(mushroom                 mushroom.cpp)\r
-       MY_DEFINE_EXAMPLE(tree_engine           tree_engine.cpp)\r
-       MY_DEFINE_EXAMPLE(one_way_sample        one_way_sample.cpp)\r
-    MY_DEFINE_EXAMPLE(peopledetect      peopledetect.cpp)\r
-    MY_DEFINE_EXAMPLE(pyramid_segmentation     pyramid_segmentation.c)\r
-    MY_DEFINE_EXAMPLE(squares                  squares.c)\r
-    MY_DEFINE_EXAMPLE(stereo_calib             stereo_calib.cpp)\r
-    MY_DEFINE_EXAMPLE(stereo_match             stereo_match.cpp)\r
-    MY_DEFINE_EXAMPLE(watershed                        watershed.cpp)\r
-       MY_DEFINE_EXAMPLE(grabcut                       grabcut.cpp)\r
-    MY_DEFINE_EXAMPLE(polar_transforms polar_transforms.c)\r
-    MY_DEFINE_EXAMPLE(calibration      calibration.cpp)\r
-    MY_DEFINE_EXAMPLE(calibration_artificial calibration_artificial.cpp)\r
-    MY_DEFINE_EXAMPLE(mser mser_sample.cpp)\r
-    MY_DEFINE_EXAMPLE(find_obj_calonder find_obj_calonder.cpp)\r
-    MY_DEFINE_EXAMPLE(find_obj_ferns find_obj_ferns.cpp)\r
-endif(BUILD_EXAMPLES)\r
+  foreach(sample_filename ${cpp_samples})\r
+    get_filename_component(sample ${sample_filename} NAME_WE)\r
+    OPENCV_DEFINE_C_EXAMPLE(${sample}  ${sample_filename})\r
+  endforeach()\r
+endif()\r
 \r
 if (INSTALL_C_EXAMPLES AND NOT WIN32)\r
-    file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd )\r
-    install(FILES ${C_SAMPLES}\r
-            DESTINATION share/opencv/samples/c\r
-            PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)\r
+  file(GLOB C_SAMPLES *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd )\r
+  install(FILES ${C_SAMPLES}\r
+          DESTINATION share/OpenCV/samples/c\r
+          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)\r
 endif ()\r
 \r