blob: 23130f42f73568f13f19888043ab457fbd80b9c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
To build modules in our package we've used something like this:
```
$ build --platform=UefiLessonsPkg/UefiLessonsPkg.dsc \
--module=UefiLessonsPkg/HelloWorld/HelloWorld.inf \
--arch=X64 \
--buildtarget=RELEASE \
--tagname=GCC5
```
This is kinda long string. Let's simplify it.
First we can omit `module` option from the command and always compile our package entirely with all its modules:
```
$ build --platform=UefiLessonsPkg/UefiLessonsPkg.dsc \
--arch=X64 \
--buildtarget=RELEASE \
--tagname=GCC5
```
When we initiate our environment with:
```
. edk2setup.sh
```
`Conf` directory is created in the edk2 folder. This directory is populated with a bunch of files.
Also the `CONF_PATH` environment variable is created which points to the newly created `Conf` folder.
Right now we are interested in the `Conf/target.txt` file.
By default it has many comments (lines that start with `#` symbol) and is prepopulated with these values:
```
ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc
TARGET = DEBUG
TARGET_ARCH = IA32
TOOL_CHAIN_CONF = Conf/tools_def.txt
TOOL_CHAIN_TAG = VS2015x86
BUILD_RULE_CONF = Conf/build_rule.txt
```
We can put all our build command options in this file to simplify our everyday life.
```
ACTIVE_PLATFORM = UefiLessonsPkg/UefiLessonsPkg.dsc
TARGET = RELEASE
TARGET_ARCH = X64
TOOL_CHAIN_CONF = Conf/tools_def.txt
TOOL_CHAIN_TAG = GCC5
BUILD_RULE_CONF = Conf/build_rule.txt
```
After that we could build our package with all its modules with the one single command:
```
build
```
|