I’m trying to build a snap on core22
that consists of an application and a plugin module (shared library) for that application. The plugin needs, besides Ubuntu standard libraries, three libraries that we need to build ourselves. Building the application works fine.
Now I added parts for the libraries. Below is one of them. This works just fine, but so far no part depended on another.
magic_enum:
source: https://github.com/Neargye/magic_enum
source-type: git
source-commit: 43a9272f450fd07e85868ed277ebd793e40806df
plugin: cmake
Next step, I need to build the plugin. I was hoping I could do that using after
, as in
reasoning:
after:
- swipl
- magic_enum
- catch2
- spdlog
...
But, it cannot find these dependencies Running snapcraft --debug
, the dependencies appear in /root/stage
where CMake doesn’t find them. We could use -DCMAKE_PREFIX_PATH=/root/stage/usr
, but then trying to run the staged binary (/root/stage/usr/bin/swipl
) says it cannot find its shared library dependency. I can hack around that by setting LD_LIBRARY_PATH
.
While eventually this may work, I’d assume there must be a simpler way, no?