Non-standard compiling script for EDK II Libraries using LLVM
This repository is intended for building EDK II Libraries in a non-standard method. It is designed as an auxiliary project for NoirVisor EFI branch since certain stuff included in EDK II is of course quite useful. However, including the entire EDK II into NoirVisor is somewhat inappropriate. Hence, this project will include the release version of source code of EDK II.
Duly note that this is a non-standard method to build EDK II Libraries! Such non-standard method is designed for project NoirVisor.
Download and install LLVM for Win64: https://github.com/llvm/llvm-project/releases
Download and install Netwide Assembler (a.k.a NASM) for Win64: https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
Download source code of EDK II: https://github.com/tianocore/edk2/releases and extract to C:\UefiDKII
path.
If this is your first time to build this repository, run build_prep.bat
script prior to building it.
Run cleanup.bat
like that you did in Visual Studio cleanup.
Currently, certain parts of MdePkg
are included in compilation. Parts included in compilation depends on the need of project NoirVisor: https://github.com/Zero-Tang/NoirVisor
Seldom, there might be some typos in EDK II, resulted in compilation errors. These errors will remove the erroneous modules from library. Unless these modules are required for you to use, it is fine since it will not prevent the library from being generated. In case you require them, report the issue to TianoCore Bugzilla.
Alex Ionescu made a project called VisualUefi.
However, compilation is done by Visual Studio. In project NoirVisor, EFI executables are compiled by LLVM-Clang. Static libraries compiled by VisualUefi are not linkable via LLVM-LLD, so I made this project: compile EDK II libraries via LLVM-Clang and via Netwide Assembler and link them into static libraries so that they are linkable via LLVM-LLD.
This repository is licensed under the MIT license.
EDK II is licensed under the BSD-2-Clause+Patent License. View it on EDK II GitHub Repository