CMake object library 的延迟解析与对象文件传递

给日志模块整理依赖时,目标很朴素:业务代码只面对 aplay_log,平台相关的输出实现留在 aplay_osal_log。 Linux 和 macOS 的平台实现要用 Quill;Android 和 HarmonyOS 则各自调用系统日志。这样一来,协议、播放器、渲染器都不需要知道平台日志头文件在哪里,也不该直接链接平台日志模块。 依赖图本来应该很干净: …

用 Android.mk 的写法组织 CMake:让跨平台 C++ 构建更像填表

一、为什么要再封一层 CMake CMake 很强,但刚开始接触时也很容易写乱。 比如我们想做一件很普通的事:写一个 hello object library,再写一个 basic_hello_world 可执行程序去使用它。原生 CMake 可能会这样写: add_library(hello OBJECT hello/src/hello.cpp) targ…