Learning more stuff

Months pass by, and I still have a lot of catch up.

For example, being that I always worked in user-space in a native
compilation environment, I never went too much in depth about cross
compilation.  I've been using it before, for a few university projects,
but after 8 years or so, I forgot most of the "theory" behind it.

A colleague linked me to this very relevant 1-hour video:

       Anatomy of Cross-Compilation Toolchains:
       https://www.youtube.com/watch?v=Pbt330zuNPc&t=7s

Another thing I should get more handy with is CMake.

I have a few biases against CMake:

- I like 'make dist', and it seems not to support it[1] ...But I should
 really check if CPack[2] is what I seek for.

- I saw it used in what I think is the worst possible way at $job[4]
 ...But I know it can be used properly, with a target-based declarative form.

- It seems way more complex than what I want for my daily building ...But so
 or worse it is autotools.

I'm using it in these days at work, and I'm actually enjoying the experience
so far.

It obviously requires some reading of the documentation.  What I'm
currently doing is looking at other existing cmake configurations,
checking the invoked commands against the reference manual (I *need*
to know what I do).

I also improve my work with what I already know from my experience with
other build systems.  For example, I like to keep a distinction between
public and private headers: a thing that not many developers keep in mind,
as I can tell.  It is fairly easy to do so:

       add_library(foo ...)

       # well explained in docs:
       # https://cmake.org/cmake/help/latest/command/target_include_directories.html
       target_include_directories(foo
              PUBLIC  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
                      $<INSTALL_INTERFACE:include>
       )

I plan to read this document:

       An introduction to Modern CMake
       https://cliutils.gitlab.io/modern-cmake/

[1]: https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#where-is-make-dist
[2]: https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#what-is-the-best-way-to-distribute-source-code-or-binaries-for-a-cmake-based-project
[3]: https://cliutils.gitlab.io/modern-cmake/