Agenda: CMake: Advanced Topics (2024-06-11)¶
Basics¶
Optional Code And External Dependencies¶
Testing, Code Coverage, Code Analysis¶
OpenCppCoverage
Sonarqube
Exercise
Multiplatform (And Cross) Development¶
Architecture/platform specific settings: best practices, and problems to avoid
Code Generators¶
Problems and limitations ⟶ dependencies in generated code
Possibilities
Code generation through CMake itself
Code generation in the backend build tool
Example: generating stubs using Mico (www.mico.org)
Exercise
Architectural Considerations¶
Common build configuration: toolchain setting (compiler versions, compiler and linker flags, commandline macros, …)
Dependency management
Relation with version control
(Linux only) Shared library versioning, ABI
Packaging and staging (preparing an installable image by installing into a staging area)