Christian Ravn
Christian Ravn

Reputation: 187

How do I include packages in different directory with CMake?

I am trying to compile a piece of C++ code on a server with CentOS. I need to include a library (NLopt) that is installed as a module at the location "/services/tools". I have tried "module load NLopt", but CMake does still not find the library.

What do I need to do to make CMake find the package?

Upvotes: 3

Views: 1317

Answers (2)

Dimitri Merejkowsky
Dimitri Merejkowsky

Reputation: 1060

Assuming your libraries are in /service/tools/lib and the headers in /service/tools/include, you can also set CMAKE_PREFIX_PATH, like this:

list(APPEND CMAKE_PREFIX_PATH /service/tools)

Upvotes: 0

Ramon
Ramon

Reputation: 1299

"By default, [it] installs the NLopt static library (libnlopt.a) in /usr/local/lib and the NLopt header file (nlopt.h) in /usr/local/include, as well manual pages and a few other files."

So, you can include the header as

include_directories("/usr/local/include")

and link the library as

target_link_libraries(project "/usr/local/lib/lbnlopt.a")

Ideally you could try to find a CMake find module for the library.

Upvotes: 2

Related Questions