Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to know variable such as 'OpenCV' in CMake

Tags:

c++

opencv

cmake

I am using OpenCV with gcc and cmake. And I found a tutorial https://docs.opencv.org/3.4.0/db/df5/tutorial_linux_gcc_cmake.html .In the file CMakeLists.txt, there are some variables such as OpenCV and OpenCV_INCLUDE_DIRS.

cmake_minimum_required(VERSION 3.9)
project(VideoRecord)

set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(VideoRecord main.cpp)
target_link_libraries(VideoRecord ${OpenCV_LIBS})

I want to know where to find these variables definition.

EDIT

Thanks @qbranchmaster's answer. I tried to search FindOpenCV.cmake but failed.

First try.

➜  ~ cmake --help-module-list | grep "FindOpen"
FindOpenACC
FindOpenAL
FindOpenCL
FindOpenGL
FindOpenMP
FindOpenSSL
FindOpenSceneGraph
FindOpenThreads

Another try.

➜  / find . "FindOpenCV.cmake"

In addition, my os is osx and I install cmake with brew. I comiple and install OpenCV manually.

like image 300
CoXier Avatar asked Oct 11 '25 08:10

CoXier


1 Answers

These variables are part of the package config script shipping with OpenCV.

Note that find_package is a two-headed beast. The classic mode of operation is finding libraries through find-scripts. This is still the approach being used today for third-party libraries that are not aware of CMake. However, if your dependency is itself being built with CMake, it can provide a package config file instead, which allows for a more powerful mode of operation.

The idea here is that instead of you telling CMake how to find a dependency, the dependency itself tells CMake how clients can find it. This is the approach that is taken by libraries like OpenCV and Qt.

To answer your question, those variables are being set by the package config file in your local OpenCV installation, the template of which can be found in the OpenCV source code under cmake/templates/OpenCVConfig.cmake.in.

like image 91
ComicSansMS Avatar answered Oct 14 '25 00:10

ComicSansMS



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!