Gaia/Build/NewBuildSystem: Difference between revisions

Jump to navigation Jump to search
Line 3: Line 3:
After surveying, we decide to split build system into 2 steps: configure step and build step [https://gecko.readthedocs.org/en/latest/build/buildsystem/build-overview.html]. For detailed information, please visit change proposal in dev-gaia [https://groups.google.com/forum/#!topic/mozilla.dev.gaia/rnvefXH8cng Update on Gaia build changes: A configure step, and Make v.s. Gulp].
After surveying, we decide to split build system into 2 steps: configure step and build step [https://gecko.readthedocs.org/en/latest/build/buildsystem/build-overview.html]. For detailed information, please visit change proposal in dev-gaia [https://groups.google.com/forum/#!topic/mozilla.dev.gaia/rnvefXH8cng Update on Gaia build changes: A configure step, and Make v.s. Gulp].


New architecture plan is going to construct a powerful configure to generate an appropriate Makefile for build back-end as know as build step to consume. Thus, [http://www.gnu.org/software/make/ GNU Make] will be adopted as our firstly choose build back-end tool. We're going to reference the architecture of [http://www.cmake.org CMake], they also have adopted the concept of splitting configure step and build step. Learning from CMake could be a huge help for us mitigate circumstances while we're fighting in new architecture transition. A study of CMake is ongoing within our implementation phase, and moreover we are trying to dig into CMake from it's source [https://github.com/Kitware/CMake https://github.com/Kitware/CMake] and play with those popular CMake projects such as [https://github.com/Itseez/opencv opencv] or [https://github.com/warmcat/libwebsockets libwebsockets]
New architecture plan is going to construct a powerful configure to generate an appropriate Makefile for build back-end as know as build step to consume. Thus, [http://www.gnu.org/software/make/ GNU Make] will be adopted as our firstly choose build back-end tool. We're going to reference the architecture of [http://www.cmake.org CMake], they also have adopted the concept of splitting configure step and build step early and it's a fully fledged tool already have good solution to build up a powerful configure such as detecting the changing of ENV variable and computing those complicated file dependency to decide whether to re-generate Makefile or not.
 
Learning from CMake could be a huge help for us mitigate circumstances while we're fighting in new architecture transition. A study of CMake is ongoing within our implementation phase, and moreover we are trying to dig into CMake from it's source [https://github.com/Kitware/CMake https://github.com/Kitware/CMake] and play with those popular CMake projects such as [https://github.com/Itseez/opencv opencv] or [https://github.com/warmcat/libwebsockets libwebsockets]


Our goal is to fasten incremental build and easier to customize and manage new/current building step. However, new architecture would be slow down clobber build which means first time build would take more time than old build system. We still believe that the only thing developers are concerned is the time of incremental build  
Our goal is to fasten incremental build and easier to customize and manage new/current building step. However, new architecture would be slow down clobber build which means first time build would take more time than old build system. We still believe that the only thing developers are concerned is the time of incremental build  
Confirmed users
429

edits

Navigation menu