BinaryBuilder -- unable to find shared library product

Hi – I’m using the BinaryBuilder CLI to create a JLL for the liquid-dsp github repo. The build is failing during the audit as unable to find the shared library – appears to be looking in the wrong build directories? My build script is below, the CLI command, and so on. Any help would be appreciated!

using BinaryBuilder

name = "libliquid"
version = v"1.7.0"
sources = [
    GitSource("https://github.com/jgaeddert/liquid-dsp.git", "a8cc94a6f1f4386c294f5609dc2a373806cafd9c"),
    DirectorySource("./bundled"),
]

script = raw"""
cd ${WORKSPACE}/srcdir/liquid-dsp

mkdir build
cd build

cmake ..
make
make install

install_license ${WORKSPACE}/srcdir/liquid-dsp/LICENSE
"""

platforms = filter(x->contains(triplet(x), "x86_64-linux-gnu"), supported_platforms(experimental=false))

products = [
    LibraryProduct("libliquid", :libliquid),
]

dependencies = [
    Dependency("FFTW_jll"),
]

build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies, julia_compat="1.7")

Output from running BinaryBuilder via CLI :

$:~/projects/tmp2$ julia +1.7 --project=./ --color=yes build_tarballs.jl 

[ Info: Building for x86_64-linux-gnu
┌ Warning: Unable to run unprivileged containers on this system! This may be because your kernel does not support mounting overlay filesystems within user namespaces. To work around this, we will switch to using privileged containers. This requires the use of sudo. To choose this automatically, set the BINARYBUILDER_RUNNER environment variable to "privileged" before starting Julia.
└ @ BinaryBuilderBase ~/.julia/packages/BinaryBuilderBase/yt9V4/src/UserNSRunner.jl:97
[ Info: Running privileged container via `sudo`, may ask for your password:
 
[ Info: Found a valid dl path libfftw3.so while looking for libliquid
[ Info: Found a valid dl path libfftw3.so.3 while looking for libliquid
[ Info: Found a valid dl path libfftw3.so.3.6.10 while looking for libliquid
[ Info: Found a valid dl path libfftw3f.so while looking for libliquid
[ Info: Found a valid dl path libfftw3f.so.3 while looking for libliquid
[ Info: Found a valid dl path libfftw3f.so.3.6.10 while looking for libliquid
[ Info: Could not locate libliquid inside ["/home/XXXX/projects/tmp2/build/x86_64-linux-gnu/TgI3iTLB/x86_64-linux-gnu-libgfortran3-cxx03/destdir/lib64", "/home/XXXX/projects/tmp2/build/x86_64-linux-gnu/TgI3iTLB/x86_64-linux-gnu-libgfortran3-cxx03/destdir/lib"]
┌ Error: Built libliquid but libliquid still unsatisfied:
└ @ BinaryBuilder ~/.julia/packages/BinaryBuilder/3eUfg/src/AutoBuild.jl:987
ERROR: LoadError: Cannot continue with unsatisfied build products!
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] autobuild(dir::AbstractString, src_name::AbstractString, src_version::VersionNumber, sources::Vector{<:BinaryBuilderBase.AbstractSource}, script::AbstractString, platforms::Vector, products::Vector{<:Product}, dependencies::Vector{<:BinaryBuilderBase.AbstractDependency}; verbose::Bool, debug::Bool, skip_audit::Bool, ignore_audit_errors::Bool, autofix::Bool, code_dir::Union{Nothing, String}, require_license::Bool, dont_dlopen::Bool, compression_format::String, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
   @ BinaryBuilder ~/.julia/packages/BinaryBuilder/3eUfg/src/AutoBuild.jl:992
 [3] build_tarballs(ARGS::Any, src_name::Any, src_version::Any, sources::Any, script::Any, platforms::Any, products::Any, dependencies::Any; julia_compat::String, validate_name::Bool, compression_format::String, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
   @ BinaryBuilder ~/.julia/packages/BinaryBuilder/3eUfg/src/AutoBuild.jl:380
 [4] top-level scope
   @ ~/projects/tmp2/build_tarballs.jl:35
in expression starting at /home/XXXX/projects/tmp2/build_tarballs.jl:35

Using the find command to confirm shared library does exist:

$:~/projects/tmp2$ find . -name *libliquid.so* -print

./build/x86_64-linux-gnu/TgI3iTLB/srcdir/liquid-dsp/build/libliquid.so
./build/x86_64-linux-gnu/TgI3iTLB/srcdir/liquid-dsp/build/libliquid.so.1.7.0
./build/x86_64-linux-gnu/TgI3iTLB/srcdir/liquid-dsp/build/libliquid.so.1

Please read the documentation

What BinaryBuilder does is to create a tarball containing all files that are found inside the ${prefix} directory at the end of the build and which don’t come from the dependencies listed in the build recipe.
Thus, what you want to do in a build script is to install the relevant files under the appropriate directories in ${prefix} (see the Automatic environment variables section): the libraries in ${libdir}, the binary executables in ${bindir}, etc…
Most packages come with a build system to automate this process (GNU Autoconf, CMake, Meson, a plain Makefile, etc…), but sometimes you may need to manually move the files as appropriate.

For cmake builds specifically see Build Tips · BinaryBuilder.jl