Meta Fan
Meta Fan

Reputation: 1585

How to let cmake use another opencv directory other than the system's in ubuntu?

Specifically, I want to include opencv from my/path/to/opencv/release where my own opencv is built other than the system's opencv lib in /usr/local/include. How can I set cmake to achieve this? I'm using Ubuntu 14.04.

Upvotes: 0

Views: 4131

Answers (2)

Lars
Lars

Reputation: 243

To provide an example, below is a Find-CMake file for the Luajit library. Your CMake project has one that's probably called something like "FindOpenCV.cmake". It most likely has a default installation path that was manually added, such as: "/usr/include/luajit-2.0 /usr/local/include/luajit-2.0" and you would change these DIR's to your desired install directory. If the default path is contained in a variable, you could either find the definition of that variable and change it (preferably through a configuration option), or override it with a string.

# Try to find Lua or LuaJIT depending on the variable ENABLE_LUAJIT.
# Sets the following variables:
#   LUA_FOUND
#   LUA_INCLUDE_DIR
#   LUA_LIBRARY
#

SET (LUA_FOUND FALSE)

SET (LUA_INTERPRETER_TYPE "")

SET (LUA_INTERPRETER_TYPE "LuaJIT")
SET (LUA_LIBRARY_NAME luajit-5.1)
SET (LUA_INCLUDE_DIRS /usr/include/luajit-2.0 /usr/local/include/luajit-2.0)

FIND_PATH (LUA_INCLUDE_DIR lua.h ${LUA_INCLUDE_DIRS} 
            HINT ${LUAJIT_INCLUDE_DIR_HINT}/include)
FIND_LIBRARY (LUA_LIBRARY NAMES ${LUA_LIBRARY_NAME} PATHS /usr/lib /usr/local/lib
            HINT ${LUAJIT_INCLUDE_DIR_HINT}/bin)

#...

MARK_AS_ADVANCED ( LUA_INCLUDE_DIR LUA_LIBRARY)

Upvotes: 1

SpamBot
SpamBot

Reputation: 1458

There are multiple ways to achieve this, you can modify a FindOpenCV.cmake file, you set the cmake variable OpenCV_DIR before the library is found https://stackoverflow.com/a/9835300/2079934, you can export the environment variable OpenCV_DIR before you run CMake https://stackoverflow.com/a/16959771/2079934.

I would recommend not to hard-code any library paths into CMakeLists.txt, that would take away all the benefits of CMake. In Linux, I would use export to set OpenCV_DIR, in other OSes CMake GUI is more common there you could edit the path variable in the GUI.

Upvotes: 0

Related Questions