From 2935fcea6262c66a0ce072c578727bae6b30fc73 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 14 Sep 2016 09:22:54 +0300 Subject: [PATCH] apps: add opencv_version command line tool --- apps/CMakeLists.txt | 1 + apps/version/CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ apps/version/opencv_version.cpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 apps/version/CMakeLists.txt create mode 100644 apps/version/opencv_version.cpp diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index e24bd4beff..f2cdc8751c 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -6,3 +6,4 @@ add_subdirectory(createsamples) add_subdirectory(annotation) add_subdirectory(visualisation) add_subdirectory(interactive-calibration) +add_subdirectory(version) diff --git a/apps/version/CMakeLists.txt b/apps/version/CMakeLists.txt new file mode 100644 index 0000000000..6ced527181 --- /dev/null +++ b/apps/version/CMakeLists.txt @@ -0,0 +1,32 @@ +SET(OPENCV_APPLICATION_DEPS opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio) +ocv_check_dependencies(${OPENCV_APPLICATION_DEPS}) + +if(NOT OCV_DEPENDENCIES_FOUND) + return() +endif() + +project(opencv_version) +set(the_target opencv_version) + +ocv_target_include_directories(${the_target} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" "${OpenCV_SOURCE_DIR}/include/opencv") +ocv_target_include_modules_recurse(${the_target} ${OPENCV_APPLICATION_DEPS}) + +file(GLOB SRCS *.cpp) + +ocv_add_executable(${the_target} ${SRCS}) +ocv_target_link_libraries(${the_target} ${OPENCV_APPLICATION_DEPS}) + +set_target_properties(${the_target} PROPERTIES + DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" + RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} + OUTPUT_NAME "opencv_version") + +set_target_properties(${the_target} PROPERTIES FOLDER "applications") + +if(INSTALL_CREATE_DISTRIB) + if(BUILD_SHARED_LIBS) + install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} CONFIGURATIONS Release COMPONENT libs) + endif() +else() + install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs) +endif() diff --git a/apps/version/opencv_version.cpp b/apps/version/opencv_version.cpp new file mode 100644 index 0000000000..78f28108ed --- /dev/null +++ b/apps/version/opencv_version.cpp @@ -0,0 +1,28 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#include + +#include + +int main(int argc, const char** argv) +{ + cv::CommandLineParser parser(argc, argv, + "{ help h usage ? | | show this help message }" + "{ verbose v | | show build configuration log }" + ); + if (parser.has("help")) + { + parser.printMessage(); + } + else if (parser.has("verbose")) + { + std::cout << cv::getBuildInformation().c_str() << std::endl; + } + else + { + std::cout << CV_VERSION << std::endl; + } + return 0; +}