92ab049719
When a module "Module" depends on a library instance "Lib1" which depends on "Lib2" which depends on "Lib3" ... depends on "LibN", but "LibN" doesn't support the type (e.g.: SEC) of the "Module", the following error messages are printed by build tool: <DSC path>(...): error 1001: Module by library instance [<LibN path>] consumed by [<Module path>] But it's unclear to user how LibN is consumed by the Module. With the patch, following errors are printed: <DSC path>(...): error 1001: Module by library instance [<LibN path>] consumed by library instance [<Lib N-1 path>] which is consumed by module[<Module path>] It doesn't print all the intermediate library instances between the Module and LibN but at least the path of Lib N-1 can help users to help how to fix the build errors. I hope this patch can be a trigger point that a better solution could be developed by tool experts to print all the library instances between the Module and LibN. Signed-off-by: Ray Ni <ray.ni@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Yuwei Chen <yuwei.chen@intel.com> Reviewed-by: Bob Feng <bob.c.fen@intel.com> |
||
---|---|---|
.. | ||
AmlToC | ||
AutoGen | ||
BPDG | ||
Capsule | ||
Common | ||
CommonDataClass | ||
Ecc | ||
Eot | ||
FMMT | ||
FirmwareStorageFormat | ||
GenFds | ||
GenPatchPcdTable | ||
PatchPcdValue | ||
Pkcs7Sign | ||
Rsa2048Sha256Sign | ||
Split | ||
Table | ||
TargetTool | ||
Trim | ||
UPT | ||
Workspace | ||
build | ||
tests/Split | ||
GNUmakefile | ||
Makefile | ||
README.md | ||
basetool_tiano_python_path_env.yaml | ||
sitecustomize.py |
README.md
Edk2 Basetools
This folder has traditionally held the source of Python based tools used by EDK2.
The official repo this source has moved to https://github.com/tianocore/edk2-basetools.
This folder will remain in the tree until the next stable release (expected 202102).
There is a new folder under Basetools BinPipWrappers
that uses the pip module rather than this tree for Basetools.
By adding the scope pipbuild-win
or pipbuild-unix
(depending on your host system), the SDE will use the
BinPipWrappers
instead of the regular BinWrappers
.
Why Move It?
The discussion is on the mailing list. The RFC is here: https://edk2.groups.io/g/rfc/topic/74009714#270 The benefits allow for the Basetools project to be used separately from EDK2 itself as well as offering it in a globally accessible manner. This makes it much easier to build a module using Basetools. Separating the Basetools into their own repo allows for easier CI and contribution process. Additional pros, cons, and process can be found on the mailing list.
How Do I Install It?
By default, EDK2 is tied to and tested with a specific version of the Basetools through pip-requirements.txt
.
You can simply run:
pip install -r pip-requirements.txt
This will install the required module, thought we strongly suggest setting up a virtual environment. Additionally, you can also install a local clone of the Basetools as well as a specific git commit.