From: Maksim Shabunin Date: Tue, 14 Nov 2017 14:07:04 +0000 (+0300) Subject: cmake: simplified configuration output X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~396^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ebb234746249a3b276a07a510764fcde3e89804;p=platform%2Fupstream%2Fopencv.git cmake: simplified configuration output --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e6fa2f..6f200a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,7 +200,7 @@ OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON IF (NOT WINRT) ) OCV_OPTION(WITH_VFW "Include Video for Windows support" ON IF WIN32 ) OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) ) -OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (NOT ANDROID) ) +OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) ) OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF ) OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) ) OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) @@ -229,8 +229,8 @@ OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32 OR MINGW) ) OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) ) OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) -OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) ) -OCV_OPTION(WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF IF (UNIX AND NOT ANDROID) ) +OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID AND NOT APPLE) ) +OCV_OPTION(WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF IF (UNIX AND NOT ANDROID AND NOT APPLE) ) OCV_OPTION(WITH_DSHOW "Build VideoIO with DirectShow support" ON IF (WIN32 AND NOT ARM AND NOT WINRT) ) OCV_OPTION(WITH_MSMF "Build VideoIO with Media Foundation support" OFF IF WIN32 ) OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT WINRT) ) @@ -247,7 +247,7 @@ OCV_OPTION(WITH_VA "Include VA support" OFF OCV_OPTION(WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF IF (UNIX AND NOT ANDROID) ) OCV_OPTION(WITH_MFX "Include Intel Media SDK support" OFF IF ((UNIX AND NOT ANDROID) OR (WIN32 AND NOT WINRT AND NOT MINGW)) ) OCV_OPTION(WITH_GDAL "Include GDAL Support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) ) -OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID) ) +OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_LAPACK "Include Lapack library support" ON IF (NOT ANDROID AND NOT IOS) ) OCV_OPTION(WITH_ITT "Include Intel ITT support" ON IF (NOT APPLE_FRAMEWORK) ) @@ -996,32 +996,28 @@ status("") status(" OpenCV modules:") string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}") string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}") +string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO}") string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}") -set(OPENCV_MODULES_DISABLED_AUTO_ST "") -foreach(m ${OPENCV_MODULES_DISABLED_AUTO}) - set(__mdeps "") - foreach(d ${OPENCV_MODULE_${m}_DEPS}) - if(d MATCHES "^opencv_" AND NOT HAVE_${d}) - list(APPEND __mdeps ${d}) - endif() - endforeach() - if(__mdeps) - list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}(deps: ${__mdeps})") - else() - list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}") - endif() -endforeach() -string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}") - +list(SORT OPENCV_MODULES_BUILD_ST) +list(SORT OPENCV_MODULES_DISABLED_USER_ST) +list(SORT OPENCV_MODULES_DISABLED_AUTO_ST) +list(SORT OPENCV_MODULES_DISABLED_FORCE_ST) status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-") status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-") status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-") status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-") -if(OPENCV_ENABLE_NONFREE) - status("") - status(" Non-free algorithms are enabled") -endif() +ocv_build_features_string(apps_status + IF BUILD_TESTS AND HAVE_opencv_ts THEN "tests" + IF BUILD_PERF_TESTS AND HAVE_opencv_ts THEN "perf_tests" + IF BUILD_EXAMPLES THEN "examples" + IF BUILD_opencv_apps THEN "apps" + IF BUILD_ANDROID_SERVICE THEN "android_service" + IF BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN "android_examples" + ELSE "-") +status(" Applications:" "${apps_status}") +status(" Documentation:" BUILD_DOCS AND DOXYGEN_FOUND THEN "YES (${DOXYGEN_EXECUTABLE} ${DOXYGEN_VERSION})" ELSE "NO") +status(" Non-free algorithms:" OPENCV_ENABLE_NONFREE THEN "YES" ELSE "NO") # ========================== Android details ========================== if(ANDROID) @@ -1038,8 +1034,6 @@ if(ANDROID) status(" Android toolchain:" "${ANDROID_STANDALONE_TOOLCHAIN}") endif() status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO) - status(" Google Play manager:" BUILD_ANDROID_SERVICE THEN YES ELSE NO) - status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO) endif() # ================== Windows RT features ================== @@ -1060,111 +1054,108 @@ endif(WIN32) status("") status(" GUI: ") -if(HAVE_QT5) - status(" QT 5.x:" HAVE_QT THEN "YES (ver ${Qt5Core_VERSION_STRING})" ELSE NO) - status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO) -elseif(HAVE_QT) - status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO) - status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO) -else() - if(DEFINED WITH_QT) - status(" QT:" NO) +if(WITH_QT OR HAVE_QT) + if(HAVE_QT5) + status(" QT:" "YES (ver ${Qt5Core_VERSION_STRING})") + status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO) + elseif(HAVE_QT) + status(" QT:" "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})") + status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO) + else() + status(" QT:" "NO") endif() - if(DEFINED WITH_WIN32UI) - status(" Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO) +endif() + +if(WITH_WIN32UI) + status(" Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO) +endif() + +if(APPLE) + if(WITH_CARBON) + status(" Carbon:" YES) else() - if(APPLE) - if(WITH_CARBON) - status(" Carbon:" YES) - else() - status(" Cocoa:" YES) - endif() - else() - if(HAVE_GTK3) - status(" GTK+ 3.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-3.0_VERSION})" ELSE NO) - elseif(HAVE_GTK) - status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO) - else() - status(" GTK+:" NO) - endif() - status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO) - status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO) - endif() + status(" Cocoa:" YES) + endif() +endif() + +if(WITH_GTK OR HAVE_GTK) + if(HAVE_GTK3) + status(" GTK+:" "YES (ver ${ALIASOF_gtk+-3.0_VERSION})") + elseif(HAVE_GTK) + status(" GTK+:" "YES (ver ${ALIASOF_gtk+-2.0_VERSION})") + else() + status(" GTK+:" "NO") + endif() + if(HAVE_GTK) + status( " GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO) + status( " GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO) endif() endif() -status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO) -status(" VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO) +if(WITH_OPENGL OR HAVE_OPENGL) + status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO) +endif() + +if(WITH_VTK OR HAVE_VTK) + status(" VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO) +endif() # ========================== MEDIA IO ========================== status("") status(" Media I/O: ") -status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})") +status(" ZLib:" ZLIB_FOUND THEN "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})" ELSE "build (ver ${ZLIB_VERSION_STRING})") -if(WITH_JPEG) - status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})") -else() - status(" JPEG:" "NO") +if(WITH_JPEG OR HAVE_JPEG) + status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})") endif() -if(WITH_WEBP) - status(" WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})") -else() - status(" WEBP:" "NO") +if(WITH_WEBP OR HAVE_WEBP) + status(" WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})") endif() -if(WITH_PNG) - status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})") -else() - status(" PNG:" "NO") +if(WITH_PNG OR HAVE_PNG) + status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})") endif() -if(WITH_TIFF) - if(TIFF_VERSION_STRING AND TIFF_FOUND) - status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})") - else() - status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})") - endif() -else() - status(" TIFF:" "NO") +if(WITH_TIFF OR HAVE_TIFF) + status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION} / ${TIFF_VERSION_STRING})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})") endif() -if(WITH_JASPER) - status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})") -else() - status(" JPEG 2000:" "NO") + +if(WITH_JASPER OR HAVE_JASPER) + status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})") endif() -if(WITH_OPENEXR) - status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})") -else() - status(" OpenEXR:" "NO") + +if(WITH_OPENEXR OR HAVE_OPENEXR) + status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})") endif() -if( WITH_GDAL ) - status(" GDAL:" GDAL_FOUND THEN "${GDAL_LIBRARY}" ELSE "NO") -else() - status(" GDAL:" "NO") +if(WITH_GDAL OR HAVE_GDAL) + status(" GDAL:" HAVE_GDAL THEN "YES (${GDAL_LIBRARY})" ELSE "NO") endif() -if(WITH_GDCM) - status(" GDCM:" GDCM_FOUND THEN "YES (ver ${GDCM_VERSION})" ELSE "NO") -else() - status(" GDCM:" "NO") +if(WITH_GDCM OR HAVE_GDCM) + status(" GDCM:" HAVE_GDCM THEN "YES (ver ${GDCM_VERSION})" ELSE "NO") endif() # ========================== VIDEO IO ========================== status("") status(" Video I/O:") -if (DEFINED WITH_VFW) +if(WITH_VFW OR HAVE_VFW) status(" Video for Windows:" HAVE_VFW THEN YES ELSE NO) -endif(DEFINED WITH_VFW) +endif() -if(DEFINED WITH_1394) - status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO) - status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO) -endif(DEFINED WITH_1394) +if(WITH_1394 OR HAVE_DC1394) + if (HAVE_DC1394_2) + status(" DC1394:" "YES (ver ${ALIASOF_libdc1394-2_VERSION})") + elseif (HAVE_DC1394) + status(" DC1394:" "YES (ver ${ALIASOF_libdc1394_VERSION})") + else() + status(" DC1394:" "NO") + endif() +endif() -if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG) +if(WITH_FFMPEG OR HAVE_FFMPEG) if(WIN32) status(" FFMPEG:" HAVE_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO) else() @@ -1177,7 +1168,7 @@ if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG) status(" avresample:" FFMPEG_libavresample_FOUND THEN "YES (ver ${FFMPEG_libavresample_VERSION})" ELSE NO) endif() -if(DEFINED WITH_GSTREAMER) +if(WITH_GSTREAMER OR HAVE_GSTREAMER) status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO) if(HAVE_GSTREAMER) status(" base:" "YES (ver ${GSTREAMER_BASE_VERSION})") @@ -1186,121 +1177,100 @@ if(DEFINED WITH_GSTREAMER) status(" riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})") status(" pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})") endif(HAVE_GSTREAMER) -endif(DEFINED WITH_GSTREAMER) +endif() -if(DEFINED WITH_OPENNI) - status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})" - ELSE NO) - status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE - THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO) -endif(DEFINED WITH_OPENNI) +if(WITH_OPENNI OR HAVE_OPENNI) + status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})" ELSE NO) + status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO) +endif() -if(DEFINED WITH_OPENNI2) - status(" OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})" - ELSE NO) -endif(DEFINED WITH_OPENNI2) +if(WITH_OPENNI2 OR HAVE_OPENNI2) + status(" OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})" ELSE NO) +endif() -if(DEFINED WITH_PVAPI) +if(WITH_PVAPI OR HAVE_PVAPI) status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO) -endif(DEFINED WITH_PVAPI) +endif() -if(DEFINED WITH_GIGEAPI) +if(WITH_GIGEAPI OR HAVE_GIGE_API) status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO) -endif(DEFINED WITH_GIGEAPI) +endif() -if(DEFINED WITH_ARAVIS) +if(WITH_ARAVIS OR HAVE_ARAVIS_API) status(" Aravis SDK:" HAVE_ARAVIS_API THEN "YES (${ARAVIS_LIBRARIES})" ELSE NO) -endif(DEFINED WITH_ARAVIS) +endif() -if(DEFINED APPLE) +if(APPLE) status(" AVFoundation:" HAVE_AVFOUNDATION THEN YES ELSE NO) if(WITH_QUICKTIME OR HAVE_QUICKTIME) - status(" QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO) + status(" QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO) endif() if(WITH_QTKIT OR HAVE_QTKIT) - status(" QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO) + status(" QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO) endif() -endif(DEFINED APPLE) +endif() -if(DEFINED WITH_UNICAP) +if(WITH_UNICAP OR HAVE_UNICAP) status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO) status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO) -endif(DEFINED WITH_UNICAP) +endif() -if(DEFINED WITH_V4L) - if(HAVE_CAMV4L) - set(HAVE_CAMV4L_STR "YES") - else() - set(HAVE_CAMV4L_STR "NO") - endif() - if(HAVE_CAMV4L2) - set(HAVE_CAMV4L2_STR "YES") - elseif(HAVE_VIDEOIO) - set(HAVE_CAMV4L2_STR "YES(videoio)") - else() - set(HAVE_CAMV4L2_STR "NO") - endif() - status(" V4L/V4L2:" HAVE_LIBV4L - THEN "Using libv4l1 (ver ${ALIASOF_libv4l1_VERSION}) / libv4l2 (ver ${ALIASOF_libv4l2_VERSION})" - ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}") -endif(DEFINED WITH_V4L) +if(WITH_V4L OR WITH_LIBV4L OR HAVE_LIBV4L OR HAVE_CAMV4L OR HAVE_CAMV4L2 OR HAVE_VIDEOIO) + status(" libv4l/libv4l2:" HAVE_LIBV4L THEN "${ALIASOF_libv4l1_VERSION} / ${ALIASOF_libv4l2_VERSION}" ELSE "NO") + ocv_build_features_string(v4l_status + IF HAVE_CAMV4L THEN "linux/videodev.h" + IF HAVE_CAMV4L2 THEN "linux/videodev2.h" + IF HAVE_VIDEOIO THEN "sys/videoio.h" + ELSE "NO") + status(" v4l/v4l2:" "${v4l_status}") +endif() -if(DEFINED WITH_DSHOW) +if(WITH_DSHOW OR HAVE_DSHOW) status(" DirectShow:" HAVE_DSHOW THEN YES ELSE NO) -endif(DEFINED WITH_DSHOW) +endif() -if(DEFINED WITH_MSMF) +if(WITH_MSMF OR HAVE_MSMF) status(" Media Foundation:" HAVE_MSMF THEN YES ELSE NO) -endif(DEFINED WITH_MSMF) +endif() -if(DEFINED WITH_XIMEA) +if(WITH_XIMEA OR HAVE_XIMEA) status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO) -endif(DEFINED WITH_XIMEA) +endif() -if(DEFINED WITH_XINE) +if(WITH_XINE OR HAVE_XINE) status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO) -endif(DEFINED WITH_XINE) +endif() -if(DEFINED WITH_INTELPERC) +if(WITH_INTELPERC OR HAVE_INTELPERC) status(" Intel PerC:" HAVE_INTELPERC THEN "YES" ELSE NO) -endif(DEFINED WITH_INTELPERC) +endif() -if(DEFINED WITH_MFX) +if(WITH_MFX OR HAVE_MFX) status(" Intel Media SDK:" HAVE_MFX THEN "YES (${MFX_LIBRARY})" ELSE NO) endif() -if(DEFINED WITH_GPHOTO2) +if(WITH_GPHOTO2 OR HAVE_GPHOTO2) status(" gPhoto2:" HAVE_GPHOTO2 THEN "YES" ELSE NO) -endif(DEFINED WITH_GPHOTO2) - +endif() # Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp -ocv_clear_vars(CV_PARALLEL_FRAMEWORK) -if(HAVE_TBB) - set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})") -elseif(HAVE_CSTRIPES) - set(CV_PARALLEL_FRAMEWORK "C=") -elseif(HAVE_OPENMP) - set(CV_PARALLEL_FRAMEWORK "OpenMP") -elseif(HAVE_GCD) - set(CV_PARALLEL_FRAMEWORK "GCD") -elseif(WINRT OR HAVE_CONCURRENCY) - set(CV_PARALLEL_FRAMEWORK "Concurrency") -elseif(HAVE_PTHREADS_PF) - set(CV_PARALLEL_FRAMEWORK "pthreads") -else() - set(CV_PARALLEL_FRAMEWORK "none") -endif() +ocv_build_features_string(parallel_status EXCLUSIVE + IF HAVE_TBB THEN "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" + IF HAVE_CSTRIPES THEN "C=" + IF HAVE_OPENMP THEN "OpenMP" + IF HAVE_GCD THEN "GCD" + IF WINRT OR HAVE_CONCURRENCY THEN "Concurrency" + IF HAVE_PTHREADS_PF THEN "pthreads" + ELSE "none") status("") -status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO) +status(" Parallel framework:" "${parallel_status}") if(CV_TRACE OR OPENCV_TRACE) - set(__msg "") - if(HAVE_ITT) - set(__msg "with Intel ITT") - endif() + ocv_build_features_string(trace_status EXCLUSIVE + IF HAVE_ITT THEN "with Intel ITT" + ELSE "built-in") status("") - status(" Trace: " OPENCV_TRACE THEN "YES (${__msg})" ELSE NO) + status(" Trace: " OPENCV_TRACE THEN "YES (${trace_status})" ELSE NO) endif() # ========================== Other third-party libraries ========================== @@ -1308,95 +1278,83 @@ status("") status(" Other third-party libraries:") if(WITH_IPP AND HAVE_IPP) - status(" Use Intel IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]") - status(" at:" "${IPP_ROOT_DIR}") + status(" Intel IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]") + status(" at:" "${IPP_ROOT_DIR}") if(NOT HAVE_IPP_ICV) - status(" linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static") + status(" linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static") endif() if(HAVE_IPP_IW) if(BUILD_IPP_IW) - status(" Use Intel IPP IW:" "sources (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})") + status(" Intel IPP IW:" "sources (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})") else() - status(" Use Intel IPP IW:" "binaries (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})") + status(" Intel IPP IW:" "binaries (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})") endif() - status(" at:" "${IPP_IW_PATH}") + status(" at:" "${IPP_IW_PATH}") else() - status(" Use Intel IPP IW:" NO) + status(" Intel IPP IW:" NO) endif() -else() - status(" Use Intel IPP:" WITH_IPP AND NOT HAVE_IPP THEN "IPP not found or implicitly disabled" ELSE NO) - status(" Use Intel IPP IW:" WITH_IPP AND NOT HAVE_IPP AND HAVE_IPP_IW THEN "IPP not found or implicitly disabled" ELSE NO) endif() -if(DEFINED WITH_VA) -status(" Use VA:" HAVE_VA THEN "YES" ELSE NO) -endif(DEFINED WITH_VA) +if(WITH_VA OR HAVE_VA) + status(" VA:" HAVE_VA THEN "YES" ELSE NO) +endif() -if(DEFINED WITH_VA_INTEL) -status(" Use Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO) -endif(DEFINED WITH_VA_INTEL) +if(WITH_VA_INTEL OR HAVE_VA_INTEL) + status(" Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO) +endif() -if(DEFINED WITH_LAPACK) -status(" Use Lapack:" HAVE_LAPACK THEN "YES (${LAPACK_LIBRARIES})" ELSE NO) -endif(DEFINED WITH_LAPACK) +if(WITH_LAPACK OR HAVE_LAPACK) + status(" Lapack:" HAVE_LAPACK THEN "YES (${LAPACK_LIBRARIES})" ELSE NO) +endif() -status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO) -status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO) -status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO) if(WITH_HALIDE OR HAVE_HALIDE) -status(" Use Halide:" HAVE_HALIDE THEN "YES (${HALIDE_LIBRARIES} ${HALIDE_INCLUDE_DIRS})" ELSE NO) + status(" Halide:" HAVE_HALIDE THEN "YES (${HALIDE_LIBRARIES} ${HALIDE_INCLUDE_DIRS})" ELSE NO) endif() -status(" Use OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO") -status(" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO") -if(HAVE_CUDA) - status("") - status(" NVIDIA CUDA") +if(WITH_EIGEN OR HAVE_EIGEN) + status(" Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO) +endif() - status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO) - status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO) - status(" USE NVCUVID:" HAVE_NVCUVID THEN YES ELSE NO) - status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN}) - status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX}) - status(" Use fast math:" CUDA_FAST_MATH THEN YES ELSE NO) +if(WITH_OPENVX OR HAVE_OPENVX) + status(" OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO") endif() -if(HAVE_OPENCL) +status(" Custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO") + +if(WITH_CUDA OR HAVE_CUDA) + ocv_build_features_string(cuda_features + IF HAVE_CUFFT THEN "CUFFT" + IF HAVE_CUBLAS THEN "CUBLAS" + IF HAVE_NVCUVID THEN "NVCUVID" + IF CUDA_FAST_MATH THEN "FAST_MATH" + ELSE "no extra features") status("") - if(HAVE_OPENCL_STATIC) - set(__opencl_type "") - else() - set(__opencl_type "") - endif() - status(" OpenCL:" ${__opencl_type}) - if(OPENCL_INCLUDE_DIRS) - status(" Include path:" ${OPENCL_INCLUDE_DIRS}) + status(" NVIDIA CUDA:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING}, ${cuda_features})" ELSE NO) + if(HAVE_CUDA) + status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN}) + status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX}) endif() - if(OPENCL_LIBRARIES) - set(__libs "") - foreach(l ${OPENCL_LIBRARIES}) - if(TARGET ${l}) - get_target_property(p ${l} IMPORTED_LOCATION) - if(p MATCHES NOTFOUND) - list(APPEND __libs "${l}") - else() - list(APPEND __libs "${p}") - endif() - else() - list(APPEND __libs "${l}") - endif() - endforeach() - status(" Link libraries:" ${__libs}) +endif() + +if(WITH_OPENCL OR HAVE_OPENCL) + ocv_build_features_string(opencl_features + IF HAVE_OPENCL_SVM THEN "SVM" + IF HAVE_CLAMDFFT THEN "AMDFFT" + IF HAVE_CLAMDBLAS THEN "AMDBLAS" + ELSE "no extra features") + status("") + status(" OpenCL:" HAVE_OPENCL THEN "YES (${opencl_features})" ELSE "NO") + if(HAVE_OPENCL) + status(" Include path:" OPENCL_INCLUDE_DIRS THEN "${OPENCL_INCLUDE_DIRS}" ELSE "NO") + status(" Link libraries:" OPENCL_LIBRARIES THEN "${OPENCL_LIBRARIES}" ELSE "Dynamic load") endif() - status(" Use AMDFFT:" HAVE_CLAMDFFT THEN YES ELSE NO) - status(" Use AMDBLAS:" HAVE_CLAMDBLAS THEN YES ELSE NO) endif() # ========================== python ========================== -status("") -status(" Python 2:") -status(" Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO) if(BUILD_opencv_python2) + status("") + status(" Python 2:") + status(" Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO) if(PYTHON2LIBS_VERSION_STRING) status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES} (ver ${PYTHON2LIBS_VERSION_STRING})" ELSE NO) else() @@ -1406,10 +1364,10 @@ if(BUILD_opencv_python2) status(" packages path:" PYTHON2_EXECUTABLE THEN "${PYTHON2_PACKAGES_PATH}" ELSE "-") endif() -status("") -status(" Python 3:") -status(" Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO) if(BUILD_opencv_python3) + status("") + status(" Python 3:") + status(" Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO) if(PYTHON3LIBS_VERSION_STRING) status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})" ELSE NO) else() @@ -1422,51 +1380,38 @@ endif() status("") status(" Python (for build):" PYTHON_DEFAULT_AVAILABLE THEN "${PYTHON_DEFAULT_EXECUTABLE}" ELSE NO) if(PYLINT_FOUND AND PYLINT_EXECUTABLE) -status(" Pylint:" PYLINT_FOUND THEN "${PYLINT_EXECUTABLE} (ver: ${PYLINT_VERSION}, checks: ${PYLINT_TOTAL_TARGETS})" ELSE NO) + status(" Pylint:" PYLINT_FOUND THEN "${PYLINT_EXECUTABLE} (ver: ${PYLINT_VERSION}, checks: ${PYLINT_TOTAL_TARGETS})" ELSE NO) endif() # ========================== java ========================== -status("") -status(" Java:") -status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO) -if(NOT ANDROID) - status(" JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO) +if(BUILD_opencv_java) + status("") + status(" Java:") + status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO) + if(NOT ANDROID) + status(" JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO) + endif() + status(" Java wrappers:" HAVE_opencv_java THEN YES ELSE NO) + status(" Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO) endif() -status(" Java wrappers:" HAVE_opencv_java THEN YES ELSE NO) -status(" Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO) # ========================= matlab ========================= -status("") -if(MATLAB_FOUND) - status(" Matlab:") - status(" mex:" MATLAB_MEX_SCRIPT THEN "${MATLAB_MEX_SCRIPT}" ELSE NO) - status(" Compiler/generator:" MEX_WORKS THEN "Working" ELSE "Not working (bindings will not be generated)") -else() - status(" Matlab:" WITH_MATLAB AND NOT MATLAB_FOUND THEN "Matlab not found or implicitly disabled" ELSE NO) -endif() - -# ========================== documentation ========================== -if(BUILD_DOCS) +if(WITH_MATLAB OR MATLAB_FOUND) status("") - status(" Documentation:") - status(" Doxygen:" DOXYGEN_FOUND THEN "${DOXYGEN_EXECUTABLE} (ver ${DOXYGEN_VERSION})" ELSE NO) + status(" Matlab:" MATLAB_FOUND THEN "YES" ELSE "NO") + if(MATLAB_FOUND) + status(" mex:" MATLAB_MEX_SCRIPT THEN "${MATLAB_MEX_SCRIPT}" ELSE NO) + status(" Compiler/generator:" MEX_WORKS THEN "Working" ELSE "Not working (bindings will not be generated)") + endif() endif() -# ========================== samples and tests ========================== -status("") -status(" Tests and samples:") -status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO) -status(" Performance tests:" BUILD_PERF_TESTS AND HAVE_opencv_ts THEN YES ELSE NO) -status(" C/C++ Examples:" BUILD_EXAMPLES THEN YES ELSE NO) - # ========================== auxiliary ========================== status("") -status(" Install path:" "${CMAKE_INSTALL_PREFIX}") -status("") -status(" cvconfig.h is in:" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}") +status(" Install to:" "${CMAKE_INSTALL_PREFIX}") status("-----------------------------------------------------------------") status("") + ocv_finalize_status() # ---------------------------------------------------------------------------- diff --git a/cmake/OpenCVDetectApacheAnt.cmake b/cmake/OpenCVDetectApacheAnt.cmake index 7b7e9a6..989cb40 100644 --- a/cmake/OpenCVDetectApacheAnt.cmake +++ b/cmake/OpenCVDetectApacheAnt.cmake @@ -26,6 +26,6 @@ if(ANT_EXECUTABLE) string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" ANT_VERSION "${ANT_VERSION_FULL}") set(ANT_VERSION "${ANT_VERSION}" CACHE INTERNAL "Detected ant vesion") - message(STATUS "Found apache ant ${ANT_VERSION}: ${ANT_EXECUTABLE}") + message(STATUS "Found apache ant: ${ANT_EXECUTABLE} (${ANT_VERSION})") endif() endif() diff --git a/cmake/OpenCVDetectVTK.cmake b/cmake/OpenCVDetectVTK.cmake index c92174f..cf4eb2b 100644 --- a/cmake/OpenCVDetectVTK.cmake +++ b/cmake/OpenCVDetectVTK.cmake @@ -57,4 +57,4 @@ if(HAVE_QT AND ${VTK_VERSION} VERSION_GREATER "6.0.0" AND NOT ${VTK_QT_VERSION} endif() set(HAVE_VTK ON) -message(STATUS "Found VTK ver. ${VTK_VERSION} (usefile: ${VTK_USE_FILE})") +message(STATUS "Found VTK ${VTK_VERSION} (${VTK_USE_FILE})") diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index 841a83e..e5ca276 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -600,6 +600,51 @@ endfunction() endif() # NOT DEFINED CMAKE_ARGC +# +# Generate a list of enabled features basing on conditions: +# IF THEN : check condition and append title to the result if it is true +# ELSE <title>: return provided value instead of empty result +# EXCLUSIVE: break after first successful condition +# +# Usage: +# ocv_build_features_string(out [EXLUSIVE] [IF feature THEN title] ... [ELSE title]) +# +function(ocv_build_features_string out) + set(result) + list(REMOVE_AT ARGV 0) + foreach(arg ${ARGV}) + if(arg STREQUAL "EXCLUSIVE") + set(exclusive TRUE) + elseif(arg STREQUAL "IF") + set(then FALSE) + set(cond) + elseif(arg STREQUAL "THEN") + set(then TRUE) + set(title) + elseif(arg STREQUAL "ELSE") + set(then FALSE) + set(else TRUE) + else() + if(then) + if(${cond}) + list(APPEND result "${arg}") + if(exclusive) + break() + endif() + endif() + elseif(else) + if(NOT result) + set(result "${arg}") + endif() + else() + list(APPEND cond ${arg}) + endif() + endif() + endforeach() + set(${out} ${result} PARENT_SCOPE) +endfunction() + + # remove all matching elements from the list macro(ocv_list_filterout lst regex) foreach(item ${${lst}})