[CMake] Proper way to find system copy of libxml2 on macOS

rleigh at codelibre.net rleigh at codelibre.net
Wed Oct 12 12:04:07 EDT 2016


On 2016-10-12 15:28, Konstantin Tokarev wrote:
> Hello,
> 
> In my cmake project I need to use system version of libxml2 on macOS
> (/usr/lib/libxml2.dylib), however in case it is installed in MacPorts
> the latter version is picked by find_package. On the other hand I'd
> like to avoid hardcoding absolute path, just in case Apple changes
> some path or file name in future OS version.
> 
> I've tried
> 
> find_package(LibXml2 2.8.0 REQUIRED PATHS "/usr" NO_DEFAULT_PATH)
> 
> however it fails to find anything at all. Any ideas?

Use

   find_package(LibXml2 2.8.0 REQUIRED)

and then use CMAKE_PREFIX_PATH to define the search locations (in your
environment or on the command-line; not in the script).  If you
hardcode paths in the script, you make it break on other systems.
That might not be a consideration in this case, but the less
assumptions you make, the more flexible it will be.


Regards,
Roger


More information about the CMake mailing list