目录
1. Commands: 输入希望命令 shell 在该构建阶段处理的构建命令。有两种输入命令的方法:
四、Delphi开发环境IDE中预定义的宏变量列表(区分大小写)
使用Delphi或者RAD Studio的朋友,肯定会构建一个程序,所谓构建也就是最终生成一个EXE可执行文件(对于android或者ios不一定是EXE,但最终肯定是可运行文件)。会使用Delphi开发工具的,肯定会构建,但是不一定都知道构建事件,本文就详细谈谈构建事件。
一、什么是构建事件(Build Events)?
所谓构建事件就是在Delphi (RAD Studio是一样的)在生成可执行程序的时候,IDE允许我们执行自己的程序(对于开发者来说是自己,但是对于IDE来说是第三方),以便能够修改配置参数或者对生成的结果进行处理。
例如:我们可能想生成玩EXE程序后,我们需要将EXE程序拷贝到其他的目录;或者我们可能需要在进行构建前先将源程序备份到一个地方。如果我们不使用构建事件,那么我们只能手工一步一步来操作了,使用了构建事件,IDE就会自动在核实的时候调用我们需要执行的程序。
二、构建事件类别
构建事件有如下三种类型:
序号 | 类别 | 说明 |
1 | Post-build events | 在成功生成EXE文件之后触发的事件 |
2 | Pre-build events | 在生成EXE之前触发的事件 |
3 | Pre-link events | 在连接之前触发的事件(只对C++ Build有效) |
三、IDE中构建事件的设置
Project > Options > Build Events。在项目文件上右键先择项目选项中的Build Events
对于有需要的构建阶段(构建前和构建后),可以输入想要的任何命令,并按如下方式启用事件:
1. Commands: 输入希望命令 shell 在该构建阶段处理的构建命令。有两种输入命令的方法:
- 直接在 "构建事件 "对话框的 "命令 "输入框中键入命令。
- 使用 "Build Event Commands "对话框中更大的编辑栏和有用的宏列表
- 要打开 "Build Event Commands "对话框,请双击 "Commands "输入字段,或单击该字段,然后单击出现的省略号 [...] 。您可以在 "Build Event Commands"对话框的上半部分编辑命令字符串。
- 命令包括任何有效的 DOS 命令,例如: copy $(OutputPath) c:\Built\$(OutputName).
- 您可以每行输入一条命令(在每条命令后按 Return 键),也可以用"&"将命令分隔开来。
- 要在命令中添加预定义宏(如 OUTPUTDIR),请双击 "Build Event Commands"对话框下半部分宏列表中的宏名称。
2. Events 事件:为构建阶段启用特定事件:
- Cancel on error - 如果出现错误,则取消构建。选择 "True "或 "False"
- Execute when(仅支持 Post-build 事件)- 指定何时执行指定的命令。选择其中之一:
- Always (每次构建后都执行命令)
- Target is out of date (只有在项目发生更改时才会执行命令)
3. 为每个阶段输入命令并启用事件后,单击 "OK"。
四、Delphi开发环境IDE中预定义的宏变量列表(区分大小写)
序号 | 宏变量 | 说明 |
1 | BDS | The environment variable $(BDS) |
2 | Config | The project's active configuration name |
3 | DEFINES | The project's conditional defines. |
4 | DIR | The environment variable $(BDS) |
5 | INCLUDEPATH | The project's include path. |
6 | INPUTDIR | The input file's directory |
7 | INPUTEXT | The input file's extension |
8 | INPUTFILENAME | The input file's name, with extension |
9 | INPUTNAME | The input file's name, without extension |
10 | INPUTPATH | The input file's full path |
11 | LOCALCOMMAND | Local command entered by user in project manager. |
12 | OUTPUTDIR | The output file's directory |
13 | OUTPUTEXT | The output file's extension |
14 | OUTPUTFILENAME | The output file's name, with extension |
15 | OUTPUTNAME | The output file's name, without extension |
16 | OUTPUTPATH) | The output file's full path |
17 | Path | The environment variable $(Path) |
18 | Platform | The project's active platform name |
19 | PROJECTDIR | The project's directory |
20 | PROJECTEXT | The project file's extension |
21 | PROJECTFILENAME | The project file's name, with extension |
22 | PROJECTNAME | The project's name |
23 | PROJECTPATH | The project file's full path |
24 | SAVE | Save the input file to disk before it is compiled. |
25 | SystemRoot | The environment variable $(SystemRoot) |
26 | WINDIR | The environment variable $(WINDIR) |
例如:..\..\EXE\APP_BOX_ALL\$(Platform)\$(Config)中使用了宏变量。