Modern Cmake
现代化的CMake是围绕 Target 和 Property 来定义的,并且竭力避免出现变量variable的定义。Variable横行是典型CMake2.8时期的风格。现代版的CMake更像是在遵循OOP的规则,通过target来约束link、compile等相关属性的作用域。如果把一个Target想象成一个对象(Object),会发现两者的组织方式非常相似:
-
构造函数:
-
- add_executable
- add_library
-
成员函数:
-
- get_target_property()
- set_target_properties()
- get_property(TARGET)
- set_property(TARGET)
- target_compile_definitions()
- target_compile_features()
- target_compile_options()
- target_include_directories()
- target_link_libraries()
- target_sources()
-
成员变量
-
- Target properties(太多)
本文探讨了CMake从变量主导转向Target和Property为中心的现代化变革。现代CMake通过add_executable和add_library等构造函数创建目标,然后使用get_target_property和set_target_properties等成员函数管理Target的属性,实现类似面向对象编程的构建过程。这种组织方式提高了代码的可读性和可维护性。
944

被折叠的 条评论
为什么被折叠?



