Fixed some warnings and install problems on linux
[profile/ivi/opencv.git] / samples / c / CMakeLists.txt
index fd29b0b..8e7f290 100644 (file)
@@ -3,61 +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/flann/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
-\r
-    # ---------------------------------------------\r
-    #      Define executable targets\r
-    # ---------------------------------------------\r
-    MACRO(MY_DEFINE_EXAMPLE name srcs)\r
-        set(the_target "example_${name}")\r
-       add_executable(${the_target} ${srcs})\r
-               set_target_properties(${the_target} PROPERTIES\r
-                   OUTPUT_NAME "${name}"\r
-                   PROJECT_LABEL "(EXAMPLE) ${name}")\r
-       add_dependencies(${the_target} opencv_core opencv_imgproc opencv_highgui\r
-           opencv_ml opencv_video opencv_objdetect opencv_features2d\r
-           opencv_calib3d opencv_legacy opencv_contrib)\r
-       target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} opencv_core\r
-           opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect\r
-           opencv_features2d opencv_calib3d opencv_legacy opencv_contrib)\r
-\r
-        if(WIN32)\r
-            install(TARGETS ${the_target}\r
-                RUNTIME DESTINATION "samples/c" COMPONENT main)\r
-        endif()\r
-    ENDMACRO(MY_DEFINE_EXAMPLE)\r
-    \r
-    file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.c)\r
-    \r
-    foreach(sample_filename ${cpp_samples})\r
-        get_filename_component(sample ${sample_filename} NAME_WE)\r
-        MY_DEFINE_EXAMPLE(${sample}  ${sample_filename})\r
-    endforeach()\r
-endif(BUILD_EXAMPLES)\r
+  ENDMACRO()\r
+\r
+  file(GLOB cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.c)\r
+\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