[edk2-devel] [edk2-platforms/devel-MinPlatform] [PATCH v3 0/2] Adding python build script.
Kubacki, Michael A
michael.a.kubacki at intel.com
Sat May 4 02:14:21 UTC 2019
Reviewed-by: Michael Kubacki <michael.a.kubacki at intel.com>
> -----Original Message-----
> From: devel at edk2.groups.io [mailto:devel at edk2.groups.io] On Behalf Of
> Agyeman, Prince
> Sent: Friday, May 3, 2019 4:19 PM
> To: devel at edk2.groups.io
> Cc: Kubacki, Michael A <michael.a.kubacki at intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone at intel.com>; Sinha, Ankit
> <ankit.sinha at intel.com>; Kinney, Michael D <michael.d.kinney at intel.com>;
> Oram, Isaac W <isaac.w.oram at intel.com>; Gao, Liming
> <liming.gao at intel.com>
> Subject: [edk2-devel] [edk2-platforms/devel-MinPlatform] [PATCH v3 0/2]
> Adding python build script.
>
> Cc: Michael Kubacki <michael.a.kubacki at intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
> Cc: Ankit Sinha <ankit.sinha at intel.com>
> Cc: Michael D Kinney <michael.d.kinney at intel.com>
> Cc: Isaac W Oram <isaac.w.oram at intel.com>
> Cc: Liming Gao <liming.gao at intel.com>
>
> Contributed-under: TianoCore Contribution Agreement 0.1
> Signed-off-by: Agyeman <prince.agyeman at intel.com>
>
>
> changes from v2:
> - fixed pep8 violations
> - implemented v2 review recommendations
> - added clean flag to clean specified platform
>
> Overview:
> WORKSPACE
> |
> |------edk2
> |------edk2-non-osi
> |------edk2-platforms
> | |--Platform
> | |---Intel
> | | |------build.cfg: Default build settings. These are overridden by
> | | | platform specific settings (build_config.cfg) and
> | | | then command-line settings.
> | | |
> | | |------build_bios.py: Main build script. Generic pre-build, build,
> | | | post-build, and clean functions.
> | | |
> | | |------ClevoOpenBoardPkg
> | | | |------N1xxWU
> | | | |---build_config.cfg: N1xxWU specific build
> | | | settings environment variables.
> | | |
> | | |------KabylakeOpenBoardPkg
> | | | |------KabylakeRvp3
> | | | |---build_config.cfg: KabylakeRvp3 specific
> | | | | build settings, environment variables.
> | | | |---build_board.py: Optional board-specific pre-build,
> build
> | | | and clean post-build functions.
> | | |------PurleyOpenBoardPkg
> | | | |------BoardMtOlympus
> | | | |---build_config.cfg: BoardMtOlympus specific
> | | | build settings, environment variables.
> | | | |---build_board.py: Optional board-specific pre-build,
> | | | | build, post-build and clean functions.
> |------FSP
>
>
> -------------------
> Details:
> -------------------
> What it is
> ----------
> These patches add python BIOS build scripts and build configuration files to
> build platforms under Intel/Platform.
>
>
> Why
> ----
> The reason behind this implementation is to use a cross platform build script
> to build minplaform BIOS.
>
>
> How it is done
> ----------------
> The python files:
> -----------------
> build_bios.py: The main build file. This script sets up the edk2 build
> enviroment using the default build.cfg settings and platform specific settings.
> It uses the configurations found in the build.cfg file to locate the platforms
> that are configured to use this build script.
> The path to each of the platform settings can be found under the
> "PLATFORMS"
> field within the build.cfg file. The platform specific settings are located in the
> platform's main directory.
> Example edk2-
> platforms/Platform/Intel/ClevoOpenBoardPkg/N1xxWU/build_config.cfg.
>
> The build_bios.py script contains the four main functions:
> - pre_build: Sets up the edk2 build enviroment variables, target.txt file
> - build: Uses the configurations to Build BIOS
> - post_build: Does post build processes like cleaning up files
> generated during the build process
> - clean: Cleans up the build directory.
>
> There are four addtional functions that dynamically import functions from
> the board's Optional/Additional python script if specified in board settings
> file's ADDITIONAL_SCRIPTS These four functions are the pre_build_board,
> build_board, post_build_board, clean_ex functions
>
>
> Board additional (Optional) python build script:
> ------------------------------------------------
> These are python scripts located in the board's main directory, An example
> Intel/KabylakeOpenBoardPkg/KabylakeRvp3/build_board.py
> If added, its path must be specified in board's settings file, under the field
> ADDITIONAL_SCRIPTS.
> Example ADDITIONAL_SCRIPTS =
> PurleyOpenBoardPkg/BoardMtOlympus/build_board.py
> If specified, the build_board, pre_build_board, post_build_board, clean_ex
> must be defined even if they are not use
>
>
> The config files
> -----------------
> build.cfg:
> -----------
> This is file contains the default BIOS build configuration.
>
> The default configurations are defined under the "DEFAULT_CONFIG" section
> of the file.
> Each of these can be overridden by the board specific setting as defined in
> the board's build config file. All paths must be separated by forward slashes.
> All the paths in the main build.cfg are relative to the minplaform
> WORKSPACE.
> Example:
> --------
> [DEFAULT_CONFIG]
> MIN_PACKAGE_TOOLS = edk2-
> platforms/Platform/Intel/MinPlatformPkg/Tools
>
> The PLATFORMS field in the build.cfg file informs build_bios.py about the
> available platforms that can be built with the build_bios.py.
> The path to the board specific config file must be relative to location of
> build_bios.py, Platform/Intel. It is in the format Boardname = BoardPath
>
> Example:
> --------
> [PLATFORMS]
> KabylakeRvp3 = KabylakeOpenBoardPkg/KabylakeRvp3/build_config.cfg
>
>
> Board Specific Build Settings file:
> ----------------------------------------
> This file is located in the board's main directory.
> The CONFIG field contains all the build enviroment variables.
> These values will override any the were specific under DEFAULT_CONFIG in
> the default build.cfg file.
> Example is Intel/KabylakeOpenBoardPkg/KabylakeRvp3/build_config.cfg
>
>
> Building BIOS
> -------------
>
> python build_bios.py -p BOARDNAME -t TOOLCHAIN
>
> usage: build_bios.py [-h] --platform
> {N1xxWU,KabylakeRvp3,BoardMtOlympus}
> [--toolchain TOOLCHAIN] [--DEBUG] [--RELEASE]
> [--TEST_RELEASE] [--RELEASE_PDB] [--list] [--cleanall]
> [--capsule] [--silent] [--performance] [--fsp] Build Help
>
> optional arguments:
> -h, --help show this help message and exit
> --platform {N1xxWU,KabylakeRvp3,BoardMtOlympus}, -p
> {N1xxWU,KabylakeRvp3,BoardMtOlympus}
> the platform to build
> --toolchain TOOLCHAIN, -t TOOLCHAIN
> using the Tool Chain Tagname to build the
> platform, overriding target.txt's TOOL_CHAIN_TAG
> definition
> --DEBUG, -d debug flag
> --RELEASE, -r release flag
> --TEST_RELEASE, -tr test release flag
> --RELEASE_PDB, -rp release flag
> --list, -l lists available platforms
> --cleanall cleans all
> --clean cleans specific platform
> --capsule capsule build enabled
> --silent silent build enabled
> --performance performance build enabled
> --fsp fsp build enabled
>
> Agyeman (2):
> Platform/Intel: Added python build script.
> Updated the build instructions to include the python script build
> instructions
>
> .../ClevoOpenBoardPkg/N1xxWU/build_config.cfg | 33 +
> .../KabylakeRvp3/build_board.py | 68 ++
> .../KabylakeRvp3/build_config.cfg | 34 +
> .../BoardMtOlympus/build_board.py | 177 ++++
> .../BoardMtOlympus/build_config.cfg | 32 +
> Platform/Intel/build.cfg | 56 +
> Platform/Intel/build_bios.py | 976 ++++++++++++++++++
> ReadMe.md | 76 ++
> 8 files changed, 1452 insertions(+)
> create mode 100644
> Platform/Intel/ClevoOpenBoardPkg/N1xxWU/build_config.cfg
> create mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/build_board.py
> create mode 100644
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/build_config.cfg
> create mode 100644
> Platform/Intel/PurleyOpenBoardPkg/BoardMtOlympus/build_board.py
> create mode 100644
> Platform/Intel/PurleyOpenBoardPkg/BoardMtOlympus/build_config.cfg
> create mode 100644 Platform/Intel/build.cfg create mode 100644
> Platform/Intel/build_bios.py
>
> --
> 2.19.1.windows.1
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#39974): https://edk2.groups.io/g/devel/message/39974
Mute This Topic: https://groups.io/mt/31489353/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list