How do I tell cmake I want my project to link libraries statically?
You build static OpenCV libraries by just setting the BUILD_SHARED_LIBS
flag to false in CMake. Then all you need to do to build your own application with those static libraries is to add a dependency on OpenCV in your CMakeLists.txt
:
FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (your-application ${OpenCV_LIBS})
and CMake will take care of everything.
Actually this issue seems to have already been fixed in the OpenCVConfig.cmake
that comes with OpenCV. All you have to do is define OpenCV_STATIC
in your CMakeLists.txt
. I.e.
set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)