轻量构建系统 Premake
一 构建系统简介
1.1 什么是构建系统
构建系统(BuildSystem)是用来从源码生成用户可以使用的目标(Targets)的自动化工具。目标可以包括库,可执行文件,或者生成的脚本等等。
- 项目模块依赖关系维护 ;
- 目标的可配置化(不同系统:Windows,Mac…;不同平台:Win32,Win64,Amd64…)
- 目标生成的自动化
1.2 为什么使用构建系统
主要用于提高开发人员的效率与稳定,测试与发布的效率
- 减少开发人员的知识成本(比如对同一流程,但多种平台,多种开发环境差异化的了解)
- 减少项目项目变动的维护成本
– VisualStudio 的编译选项规则,配置方法
– Xcode 的编译选项规则,配置方法
– 其他。。。 - 减少模块的维护成本
– 协同人员对工程文件,目录的修改冲突 - 减少平台,系统生成的差异化成本(可以简洁地配置不同的平台与系统)
– 通过简单的配置,可以灵活,快速地添加,修改,更新模块
– 可以方便的处理依赖关系,提高稳定性和编译速度 - 使用脚本和配置文件,实现自动清理,生成所需平台,系统,调试环境,测试流程,然后发布版本。
总的来说,就是使生成过程更加简洁,灵活,高效,自动化。
1.3 常见的构建系统
主流的可以跨平台,支持C++的构建系统
- CMake
- Scons
- Premake
其他还有 GNU Make,GNU autotools,Apache Ant(主要用于Java),Gradle(主要用于Java)
二 Premake 的下载和使用
2.1 什么是Premake
Premake 是一种命令工具,通过读取项目脚本,来生成各种开发环境的项目文件。主要用于:
- 生成开发人员喜欢的平台,工具集(协同开发的人员,可以使用不同的平台和开发工具)
- 通过脚本保持不同平台,工具集下的项目配置同步(比如新建文件夹,引入新的库文件)
- 通过脚本来快速更新许多不同的大型代码库,并重新生成项目(比如对依赖的多种著名库的版本更新)
- 快速升级工具集的版本(比如无缝地从VisualStudio 2010升级到VisualStudio 2019)
目前支持:
- Microsoft Visual Studio 2005-2019
- GNU Make,包括 <