Transition guide: how to check library version
This commit is contained in:
parent
8e392251ba
commit
44d1738d47
@ -257,3 +257,49 @@ _cuda_ module has been split into several smaller pieces:
|
|||||||
Documentation format {#tutorial_transition_docs}
|
Documentation format {#tutorial_transition_docs}
|
||||||
--------------------
|
--------------------
|
||||||
Documentation has been converted to Doxygen format. You can find updated documentation writing guide in _Tutorials_ section of _OpenCV_ reference documentation (@ref tutorial_documentation).
|
Documentation has been converted to Doxygen format. You can find updated documentation writing guide in _Tutorials_ section of _OpenCV_ reference documentation (@ref tutorial_documentation).
|
||||||
|
|
||||||
|
Support both versions {#tutorial_transition_both}
|
||||||
|
---------------------
|
||||||
|
In some cases it is possible to support both versions of OpenCV.
|
||||||
|
|
||||||
|
### Source code
|
||||||
|
|
||||||
|
To check library major version one of the following methods can be used:
|
||||||
|
- if __CV_VERSION_EPOCH__ is defined - you are using 2.4 branch, otherwise - 3.x
|
||||||
|
- __CV_MAJOR_VERSION__ is defined as `2` or `3` for corresponding version
|
||||||
|
|
||||||
|
One of `opencv2/core/version.hpp` or `opencv2/core/core.hpp` files should be included to use these definitions.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
@code{.cpp}
|
||||||
|
#ifdef CV_VERSION_EPOCH
|
||||||
|
// do opencv 2 code
|
||||||
|
#else
|
||||||
|
// do opencv 3 code
|
||||||
|
#endif
|
||||||
|
@endcode
|
||||||
|
or
|
||||||
|
@code{.cpp}
|
||||||
|
#if CV_MAJOR_VERSION == 2
|
||||||
|
// do opencv 2 code
|
||||||
|
#elif CV_MAJOR_VERSION == 3
|
||||||
|
// do opencv 3 code
|
||||||
|
#endif
|
||||||
|
@endcode
|
||||||
|
@note Do not use __CV_VERSION_MAJOR__, it has different meaning for 2.4 and 3.x branches!
|
||||||
|
|
||||||
|
### Build system
|
||||||
|
|
||||||
|
It is possible to link different modules or enable/disable some of the features in your application by checking library version in the build system. Standard cmake or pkg-config variables can be used for this:
|
||||||
|
- `OpenCV_VERSION` for cmake will contain full version: "2.4.11" or "3.0.0" for example
|
||||||
|
- `OpenCV_VERSION_MAJOR` for cmake will contain only major version number: 2 or 3
|
||||||
|
- pkg-config file has standard field `Version`
|
||||||
|
|
||||||
|
Example:
|
||||||
|
@code{.cmake}
|
||||||
|
if(OpenCV_VERSION VERSION_LESS "3.0")
|
||||||
|
# use 2.4 modules
|
||||||
|
else()
|
||||||
|
# use 3.x modules
|
||||||
|
endif()
|
||||||
|
@endcode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user