[CMake] How to find a specific version of a library?

Nils Gladitz nilsgladitz at gmail.com
Sun Jul 19 06:06:39 EDT 2015


On 19.07.2015 08:38, Yaron Cohen-Tal wrote:
> Hi,
>
> For example, I currently have both versions 2 and 3 of the GLFW 
> library installed on my Linux computer, named "libglfw.so.2" and 
> "libglfw.so.3". Is it possible to tell CMake to find a specific 
> version of GLFW (say, version 3), and it would be smart enough to look 
> for "libglfw.so.3" or "libglfw.so.3.*" or "libglfw.so.3.*.*"? (Or 
> something equivalent in Mac and Windows)

Those are SONAMEs of the library intended for the runtime loader.
Any number of those may be present in the same installation prefix to 
satisfy runtime dependencies.

By convention only one version within that prefix may be available for 
development at a time.
For that a symlink from libglfw.so to the actual library will be present 
and required header files matching that version will be present.

Hence libglfw.so is intended for development and its presence implies 
that appropriate headers should be available as well.
The sole presence of libglfw.so.2 or libglfw.so.3 neither implies that 
headers will be available nor do you know which of those versions those 
headers would be for.

Nils


More information about the CMake mailing list