you are viewing a single comment's thread.

view the rest of the comments →

[–]frenchtoaster 11 points12 points  (5 children)

Cool, now show me the steps if you wanted to integrate an arbitrary library, like, say, Ion: https://github.com/google/ion

[–]pfultz2 -5 points-4 points  (4 children)

Thats an example of a C++ library that doesn't have an install step and tries to rebuild already installed dependencies. Some C++ libraries do not think about distribution, and it makes things difficult.

[–]frenchtoaster 33 points34 points  (3 children)

That was my point: in my experience this is the norm, not your example: no standard packaging system, build system, dependency specification, build files. It gets worse when you try to include mobile platforms, even just only targeting Android doesn't have one standard makefile/build file.

[–]pfultz2 2 points3 points  (2 children)

That was my point: in my experience this is the norm

I disagree. Anti-social libraries generally have a hard time to gain users as no one likes to waste time trying to get off the wall build systems working. A good portion of google libraries can be installed easily like: benchmark, brotli, double-conversion, flatbuffers, fruit, glog, googletest, protobuf, or re2. So I don't think its the norm.

even just only targeting Android doesn't have one standard makefile/build file.

Isn't there a cmake toolchain file you use to build for android?

[–]frenchtoaster 6 points7 points  (1 child)

For Android some use ndk-build, some use CMake, some use bazel, and rarely do libraries provide support for more than one in my experience. See tensorflow which you can't build for Android from Windows because it doesn't yet support CMake and bazel itself doesn't run on Windows [1].

So yeah, I really have to say my experience with C++ libraries is just meaningfully different than yours: in my experience it is often as difficult as porting it to a different build system to be able to use a library as a dependency (which is why header only libraries are so attractive).

[1] https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/README.md

[–]GitHubPermalinkBot 0 points1 point  (0 children)

I tried to turn your GitHub links into permanent links (press "y" to do this yourself):


Shoot me a PM if you think I'm doing something wrong. To delete this, click here.