# LibraryCheck Determine whether a shared library is available to be loaded by Raku [![Build Status](https://travis-ci.org/jonathanstowe/LibraryCheck.svg?branch=master)](https://travis-ci.org/jonathanstowe/LibraryCheck) ## Synopsis ```perl6 use LibraryCheck; if !library-exists('sndfile', v1) { die "Cannot load sndfile"; } ``` ## Description This module provides a mechanism that will determine whether a named shared library is available and can be used by NativeCall. It exports a single function 'library-exists' that returns a boolean to indicate whether the named shared library can be loaded and used. This can be used in a builder to determine whether a module has a chance of working (and possibly aborting the build,) or in tests to cause the tests that may rely on a shared library to be skipped, but other use-cases are possible. use LibraryCheck; if !library-exists('sndfile', v1) { die "Cannot load sndfile"; } The case above can be more simply written as: library-check('sndfile',v1, :exception); Which will throw an ```X::NoLibrary``` exception rather than return False. The implementation is somewhat of a hack currently and definitely shouldn't be taken as an example of nice Raku code. ## Installation Assuming you have a working Rakudo installation you should be able to install this with *zef* : # From the source directory zef install . # Remote installation zef install LibraryCheck Other install mechanisms may be become available in the future. ## Support Suggestions/patches are welcomed via github at https://github.com/jonathanstowe/LibraryCheck/issues I'd be particularly interested in having it work properly on all the platforms that rakudo will work on. ## Licence Please see the [LICENCEi](LICENCE) file in the distribution © Jonathan Stowe 2015 - 2019