Hello Spencer
I have ported some libraries/applications using Goa, but it is a while since the last one.
On 7/17/24 06:15, Spencer via users wrote:
Hopefully a simple question- I am trying to port a CMake project (arcan https://github.com/letoram/arcan/tree/master) that uses Freetype and looks for it using find_package(Freetype REQUIRED QUIET). I've added 'freetype' to 'used_apis' but that did not seem to make it happy. Worth noting, I am doing this in a separate directory from my Genode git clone, I assume that is not a problem? This article https://genodians.org/jschlatow/2024-01-11-lomiri-calculator-porting seems to suggest that there is a way to add a CMake file that satisfies it. I found this file https://github.com/Manabu-GT/sdl_core/blob/aed19cd68e02b11e27275c05e00cf242a337553a/cmake/Modules/FindQt5Core.cmake#L4 on github, but I don't understand what it's doing and it's not the same one referenced in the article.
It is the "normal" way to have Goa projects in a dedicated repository. IMHO this helps to make it clear that it uses a different build system.
There were added some `FindXxx.cmake` files in the `genode` and `genode-world` repositories, but for all libraries (only actually used ones). looking at e6c4913a256231918ca09d5ee18a9e6e12cfe238 in the `genode-world` repository, I think it should be fairly easy to add the file for most libraries. Before the support for `FindXxx.cmake` files was there, I usually patched the CMakeLists.txt file to set the variables accordingly.
Additionally, the arcan cmake https://github.com/letoram/arcan/blob/master/src/CMakeLists.txt calls for find_package(Threads REQUIRED) and fails here too. I see that PThreads seem to be supported in the libc port, and foundations 8.13.1 gives a genode native way of starting threads. I assume the method for this is similar to the one for Freetype?
For threads there is a patch required (at least when I last encountered it), as that integrated in `libc`. I normally just commented out the corresponding line.
Hope that this helps, best regards Pirmin