-
Notifications
You must be signed in to change notification settings - Fork 293
Generate only one large library "libtoxcore". #442
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
Conversation
@iphydf can you explain what you are doing here and why? |
da4c1ea
to
183033a
Compare
@cebe I've added a top level comment to the CMakeLists.txt explaining what it does. Why: avoiding the ABI mess that is toxcore. |
Reviewed 11 of 11 files at r1. Comments from Reviewable |
Reviewed 11 of 11 files at r1. Comments from Reviewable |
f6a3602
to
384e62b
Compare
acdedb4
to
e5ad258
Compare
3be4ea0
to
557baf8
Compare
@zoff99 it's always activated when building with CMake. |
@iphydf making cmake and autotools build even more different is a bad idea. |
@iphydf What if someone wants to link his app without toxav, and simultaneously link with toxav for another app, for example? |
2ca8bd3
to
d6fb3df
Compare
@Diadlo do you or someone you know have that use case? Otherwise, YAGNI. |
@zoff99 I agree. So after this we should make autotools do the same. |
@iphydf It's just like interface segregation. I just don't understand, why you want to merge all function of public API in one library, if they logically different |
3e9c956
to
8ac463f
Compare
@Diadlo I'll happily split it out again if and when toxav does not depend on toxcore internals. The alternative is to have libraries split along the layer boundaries, so we end up having the many-small-libs situation, which we had before. That has different pros and cons. I hope toxav will eventually become independent of toxcore internals (@mannol has plans for this). At that point, I'd like toxav to be a separate repository, developed independently. In the meantime, the split is headaches for developers for no reason. |
Oh, and why that is an alternative: because then toxav can correctly depend on toxnetcrypto and other things it uses. Right now, toxav is lying because it says it only depend on toxcore, while actually it depends on its internals. If we expose the internals correctly (through libraries), we can have everything separated. |
Reviewed 1 of 11 files at r1, 2 of 3 files at r2, 3 of 3 files at r3. CMakeLists.txt, line 323 at r3 (raw file):
This should probably be removed. CMakeLists.txt, line 359 at r3 (raw file):
This should probably be removed. cmake/ModulePackage.cmake, line 154 at r3 (raw file):
This should probably be removed. cmake/ModulePackage.cmake, line 165 at r3 (raw file):
This should probably be removed. cmake/StrictAbi.cmake, line 36 at r3 (raw file):
Stray whitespace. Comments from Reviewable |
This library contains all the code for the old libtoxcore, libtoxav, libtoxdns, and libtoxencryptsave. The build for toxav is still optional, and disabling it causes libtoxcore to simply not contain those symbols and the pkg-config file to not include opus and vpx as dependencies.
Review status: all files reviewed at latest revision, 6 unresolved discussions, all commit checks successful. CMakeLists.txt, line 386 at r2 (raw file): Previously, cebe (Carsten Brandt) wrote…
It's specific to toktok-stack, which is available to everyone (it's a github repo). CMakeLists.txt, line 323 at r3 (raw file): Previously, robinlinden (Robin Lindén) wrote…
Done. CMakeLists.txt, line 359 at r3 (raw file): Previously, robinlinden (Robin Lindén) wrote…
Done. cmake/ModulePackage.cmake, line 154 at r3 (raw file): Previously, robinlinden (Robin Lindén) wrote…
Done. cmake/ModulePackage.cmake, line 165 at r3 (raw file): Previously, robinlinden (Robin Lindén) wrote…
Done. cmake/StrictAbi.cmake, line 36 at r3 (raw file): Previously, robinlinden (Robin Lindén) wrote…
Done. Comments from Reviewable |
Reviewed 3 of 3 files at r4. Comments from Reviewable |
This library contains all the code for the old libtoxcore, libtoxav,
libtoxdns, and libtoxencryptsave. The build for toxav is still optional,
and disabling it causes libtoxcore to simply not contain those symbols
and the pkg-config file to not include opus and vpx as dependencies.
This change is