Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build native libaries #3

Open
alexbirkett opened this issue Oct 22, 2016 · 6 comments
Open

Build native libaries #3

alexbirkett opened this issue Oct 22, 2016 · 6 comments

Comments

@alexbirkett
Copy link

Is it possible to build the NDK code as part of the build process rather than just including the pre-built binaries?

@brian-armstrong
Copy link
Member

Maybe - it's a fairly involved process. I decided to include the JNI source since that's specific to this repo but bundle the binaries for everything else.

The script that produces the binaries is https://github.com/quiet/quiet-scripts/blob/master/build-android.sh but it requires some changes that I haven't pushed yet. I'm going to wrap that up and push what's left in the next few days.

@ItsShadowCone
Copy link

This should not be too hard at all. Any updates on the script?

@brian-armstrong
Copy link
Member

I made some good progress on this recently. Previously this required building the NDK's standalone toolchains. Now I'm close to a build that doesn't require those. Once it's ready, I'll remove the static libs and just have it built alongside the library. It hasn't been a high priority for me though.

Is this something you'd like to see? I know shipping and using blobs isn't awesome.

@ItsShadowCone
Copy link

When I implemented a really similar thing in zstd it was as simple as adding two instructions to the cmake file to include the library for compilation plus adding a line to the Java part to load it (you probably already have that).

I might look at it, not sure yet.

@brian-armstrong
Copy link
Member

Before the unified headers, building was pretty complicated. The configure phase for libquiet's dependencies needed to be massaged carefully depending on the arch and API version targeted. Now it looks like this isn't needed, thankfully, but it's still somewhat fragile and bespoken. Still won't be as simple as adding a couple lines since the dependencies have to be built in a specific order. Also, one of the deps needs a CMakeLists.txt since it currently only builds with Make.

@aringot
Copy link

aringot commented Apr 12, 2018

@brian-armstrong , I would also be interested. It is not so straightforward to understand how all the components are interlinked, and being able to debug through the tests would really help !
Thanks !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants