Buildroot is a GN toolset that optimizes parameters and expands features based on Chromium/build, specifically tailored for the management and construction of the Lynx project. It offers a comprehensive set of GN multi-platform build configurations and tools, enabling developers to efficiently build and deploy the Lynx project.
//build/[android/apple/fuchsia/ios/linux/mac/win]: GN templates and Python build scripts specific to the corresponding system platforms.//build/config: Common GN templates and default configurations for builtin templates.//build/config/BUILDCONFIG.gn: AllBUILD.gnfiles will include this file by settingbuildconfig = "//build/config/BUILDCONFIG.gn"in the.gnfile.//build/toolchain: Definitions of GN compilation toolchains.//build/secondary: An overlay for BUILD.gn files. Enables adding BUILD.gn to directories that live in sub-repositories by settingsecondary_source = "//build/secondary/"in the .gn file.- Other
.pyfiles: Some are used by GN/Ninja. Some are used by gclient hooks, and some are just random utilities.
- Pull this repository into a subdirectory of the project.
cd path/to/project git clone [email protected]:lynx-infra/buildroot.git build # You will get the following directory structure project ├── build # buildroot directory ├── .gn ├── BUILD.gn └── ...
- Configure the .gn file in the root directory.
# project/.gn file script_executable = "python3" buildconfig = "//build/config/BUILDCONFIG.gn" secondary_source = "//build/secondary/"
- Then you can enjoy the default compilation configurations and tools provided by buildroot.
- Fork the repository and clone it to your local machine.
- Create a new branch:
git checkout -b name-of-your-branch. - Make your changes.
- Once you have finished the necessary tests and verification locally, you can commit the changes with a commit message in the following format to you branch.
The title should start with at least one label, and the first label should be one of the following:
[Label] Title of the commit message(one line) Summary of change: Longer description of change addressing as appropriate: why the change is made, context if it is part of many changes, description of previous behavior and newly introduced differences, etc.Feature,BugFix,Refactor,Optimize,Infra,Testing,Doc. The format should be:[Label], e.g.,[BugFix],[Feature],[BugFix][Tools]. Please choose an appropriate label according to your changes. - Push the changes to your remote branch and start a pull request to the
mainbranch of the original repository.