Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
fastbuild
High performance build system for Windows, OSX and Linux. Supporting caching, network distribution and more.
You don't need to go for hours. You are probably just doing more than describing build and usage requirements in your lists files, which is the most common cause of issues. Granted, resources are scarce on how to structure the build tooling code and people always spend all their discipline on other parts of the project, so it's understandable people end up in this situation. In the meantime, may I interest you in cmake-init?
But also a lot of problems come from people not understanding that regardless of CMake and C++, how shared and static libraries work and why they work the way they work. For example, if your CMake project has multiple targets, one being the main export and another being just a "utilities" target of sorts, then you must do some extra work to make the main export target be installed properly when it is built as a static library. This has nothing to do with CMake or C++, but that fact that static libraries are "just" archives of object files that the linker will later roll into a "real" binary (shared library or executable). When you are creating a project you must account for propagating the "utility" target as well, because otherwise the consuming project will not get the code for the "utility" target that was linked to your main export PRIVATEly. I created an example repository on how to deal with this, because a Conan package maintainer was curious about why CMake was inserting $ genex into the installed export set.
It's not mentioned often but there's also FASTBuild. The DSL isn't that expressive, but it lives up to its names. It's like being shipped the parts for a Formula-1 car and a HOW-TO.txt.
No. See https://github.com/tensorflow/tensorflow/