-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Closed
Labels
a: buildBuilding flutter applications with the toolBuilding flutter applications with the toola: desktopRunning on desktopRunning on desktopplatform-linuxBuilding on or for Linux specificallyBuilding on or for Linux specificallytoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.
Description
Currently the runner and plugins are built using Makefiles, and the flutter tool integrates accordingly. After more discussions and research, the plan is to switch to using CMake. Other options were considered, but CMake has the distinct advantage (for something we expect all Flutter developers to potentially have to interact with) of being widely used and thus familiar to more people—and therefore easier to get help with—than other options (meson, gn, etc.). It also has integration with a number of popular IDEs.
The work here:
- Set up a workable CMake build for the apps and runners in the template.
- Generate supporting CMake files rather than Makefile files in the tool during builds (e.g., for variables used by the backend script), and have it invoke CMake.
- Update
doctorto check for a sufficient version of CMake (probably 3.10 if we're okay without some of the latest features, for easy compatibility with Ubuntu 18.04). - Maybe add a CMake file to the engine artifacts, the way we do with the framework podfile on macOS/iOS, to reduce coupling of app build details to the framework. (If we do this, we'll need to enforce artifact population in the ephemeral directory prior to starting the build, rather than having it be driven from within the build, since we would need that file at generation time, before starting the build.)
I have the first two steps in progress, and will continue on that when I have time.
pingbird
Metadata
Metadata
Assignees
Labels
a: buildBuilding flutter applications with the toolBuilding flutter applications with the toola: desktopRunning on desktopRunning on desktopplatform-linuxBuilding on or for Linux specificallyBuilding on or for Linux specificallytoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.