36 Commits

Author SHA1 Message Date
Robert Ancell
bdbffa11cd
Fix code style in Linux embedder template (#176256)
As noticed by Gemini in another PR
2025-10-07 02:14:21 +00:00
Robert Ancell
5d5355f48d
Show window on first frame on Linux (#170844)
Wait for the first Flutter frame before showing the window. This avoids
showing a window with empty Flutter content, which defaults to a black
background.

Part of https://github.com/flutter/flutter/issues/55427
Fixes https://github.com/flutter/flutter/issues/118269
2025-06-22 22:46:36 +00:00
Robert Ancell
d43d3928c0
Set the background in the Linux template (#170841)
Defaults to the same black as before, but this makes it easier for this
to be overridden if necessary.
2025-06-20 15:45:35 +00:00
Matan Lurey
0ffc4ce00e
Remove --template=skeleton and add a placeholder error message instead. (#160695)
Closes https://github.com/flutter/flutter/issues/160673.

Does the following:

- Renames `FlutterProjectType` to `FlutterTemplateType`; did some
enhanced enum cleanups while at it
- Creates a hierarchy of `RemovedFlutterTemplateType` from
`ParsedFlutterTemplateType`
- Removes the `skeleton` directory
- Merges `app_shared` back into `app` (no longer required now that
`skeleton` is removed)

Final cleanups are tracked in
https://github.com/flutter/flutter/issues/160692.

(Added @zanderso just to spot check this is what he meant by
https://github.com/flutter/flutter/issues/160673#issuecomment-2557742347)
2024-12-24 00:02:29 +00:00
Filip Hracek
76d5e62f42
Add a more complete app template for Flutter (skeleton) (#83530) 2021-06-28 15:26:04 -07:00
stuartmorgan
27d1e5892f
Minor cleanup to Linux application template format (#81561) 2021-05-07 09:49:03 -07:00
Marcus Tomlinson
01c772cc8d
Revert "Add libblkid / liblzma / libgcrypt as an explicit dependancy on Linux" (#78415)
* Revert "Add libgcrypt as an explicit dependancy on Linux"

This reverts commit bf65b3d03ccdc1dd21c09f34d600d72b0636a784.

* libblkid & liblzma not explicitly required either
2021-03-18 09:14:44 -07:00
Marcus Tomlinson
82675474ea
Add libgcrypt as an explicit dependancy on Linux (#77926) 2021-03-12 07:50:03 -08:00
Hidenori Matsubayashi
4cc0ab2d19
[flutter_tools] Add ARM64 Linux host and cross-building option support (#61221) 2021-02-12 14:25:30 -08:00
Robert Ancell
09adc359b8
Make Linux apps non-unique by default. (#74959)
This stops them attempting to own a D-Bus name, which may not be possible if the
app is sandboxed (e.g. in a Snap). It's also probably what most developers would
expect is the correct behaviour by default.
2021-02-02 11:34:40 +13:00
J-P Nurmi
f2536da16f
[flutter_tools] Let CMake handle escaping (#70026) 2020-12-21 16:04:04 -08:00
Marcus Tomlinson
343577afb6
Add liblzma as an explicit dependancy on Linux (#70617) 2020-11-16 14:48:02 -08:00
George Wright
678f3cb4fb
Update Linux template app to pass through command line arguments to the Dart entrypoint (#68535) 2020-10-30 12:26:16 +13:00
Robert Ancell
16b9933d85
Disable header bar when not using GNOME Shell. (#68452)
Fixes https://github.com/flutter/flutter/issues/68253
2020-10-22 10:24:19 +13:00
Robert Ancell
b200baebd7
Try the Wayland GDK backend, the engine now supports it (#66519)
* Try the Wayland GDK backend, the engine now supports it

* Update comment from review

* Just do default GTK behaviour
2020-10-22 09:38:11 +13:00
stuartmorgan
bcfad2068e
Put the unbundled Linux executable in a subdirectory (#64992)
People frequently assume they can run the executable they find at the
top level of the build directory, and don't understand why they get
resource errors from the engine. To avoid that, this puts the unbundled
copy of the executable in a subdirectory with a name that should warn
people away from running it.

Fixes #64963
2020-09-01 05:34:25 -07:00
Marcus Tomlinson
145df39953
Explicitly find and link blkid using pkg-config (#62979) 2020-08-05 14:56:19 -07:00
Robert Ancell
392e25c8f2
Set the application-id in the Linux shell (#60053) 2020-07-30 08:46:29 +12:00
Robert Ancell
266aeb81a0
Only try the GDK X11 backend, as the FlView only currently supports X11 (#60654) 2020-07-09 14:23:48 +12:00
stuartmorgan
d9902a5474
Consider the Linux template stable (#60163)
Remove the version checking and associated warnings. The Linux template
and build process will now be subject to more typical Flutter breaking
change policy, and should no longer require regularly deleting and
recreating the platform directory.
2020-06-24 12:23:57 -07:00
Robert Ancell
65ea2be51b
Remove Linux shell window_configuration.cc (#59802)
Remove Linux shell window_configuration.cc/.h

It was a temporary solution while the shell was changing.
2020-06-23 15:18:30 +12:00
stuartmorgan
b5ddf85595
Fix typo in Linux CMake template (#60017) 2020-06-22 19:08:02 -07:00
Robert Ancell
e6de0de8f7
Fix Linux shell window default size (#59630)
The previous call set the minimum size, not just the initial size.
2020-06-19 11:56:01 +12:00
Robert Ancell
dd9fd2c851
Use a HeaderBar for Linux applications. (#59714) 2020-06-19 11:30:36 +12:00
stuartmorgan
61c198e766
Switch Linux to the GTK embedding (#59287)
Updates the tooling to use the GTK embedding, rather than the GLFW embedding:
- Adds new requirements to `doctor`
- Updates the app and plugin templates to make GTK-based runners and plugins
- Stops downloading and installing the GLFW artifacts

Final part of #54860, other than cleanup.
2020-06-16 13:31:24 -07:00
stuartmorgan
401690a64f
CMake fix for projects without plugins (#59343)
This install step fails if the list is empty, which is the case for projects without plugins (or Dart-only plugins, so flutter/plugins presubmits are currently broken).
2020-06-12 19:45:48 -07:00
Marcus Tomlinson
1fe0f22645
Remove use of BundleUtilities in Linux build (#59080)
* Explicitly install the Flutter library

* Publish ${FLUTTER_LIBRARY} to parent scope

* Bundle plugin libraries

* Bundle <plugin_name>_bundled_libraries too

* BUNDLED_LIBRARIES -> PLUGIN_BUNDLED_LIBRARIES

* Update Linux plugin test

* Address review comments
2020-06-11 22:00:28 +01:00
Marcus Tomlinson
5ee5490a63
[flutter_tools] Support profile and release builds on Linux (#57135) 2020-05-29 15:38:02 -07:00
stuartmorgan
ca0d60087b
Start from a clean slate when bundling Linux build (#58174)
BundleUtilities apparently doesn't do build-system-style timestamp
analysis when deciding what to copy, and instead just doesn't copy
things that are already present. This cleans that bundle directory on
each build, so that it includes the up-to-date library versions.

Since this is just copying from build artifacts, this is very fast; the
build steps themselves are not affected.

Fixes https://github.com/flutter/flutter/issues/58049
2020-05-28 12:14:57 -07:00
stuartmorgan
27e652c882
Fix Linux plugin template build visibility (#58069)
The CMake plugin build wasn't setting visibility to hidden by default,
which meant that plugins exported everything by default. This would make
bad interactions between plugins much more likely; only the intended API
should be exported by the shared library.
2020-05-27 10:55:34 -07:00
Ken VanDine
e013fc2484
Desktop default window size (#57274) 2020-05-21 14:42:03 -07:00
stuartmorgan
97b7e15532
Re-add line to Linux template CMakeLists.txt (#57538)
Re-adds a line that was accidentally removed in #57515
2020-05-19 18:17:41 -07:00
stuartmorgan
b07516875d
Remove TRANSFORM from Linux CMake files (#57515)
The Linux CMakeLists.txt are intended to be compatible with 3.10, but
accedintally used a list construct that wasn't added until 3.12. This
adds a custom replacement function.

This makes the build compatible with 3.10 as originally intended.
2020-05-18 12:42:01 -07:00
stuartmorgan
8abf0a6d8c
Switch to CMake for Linux desktop (#57238)
Updates the Linux templates to use CMake+ninja, rather than Make, and updates the tooling to generate CMake support files rather than Make support files, and to drive the build using cmake and ninja.

Also updates doctor to check for cmake and ninja in place of make.

Note: While we could use CMake+Make rather than CMake+ninja, in testing ninja handled the tool_backend.sh call much better, calling it only once rather than once per dependent target. While it does add another dependency that people are less likely to already have, it's widely available in package managers, as well as being available as a direct download. Longer term, we could potentially switch from ninja to Make if it's an issue.

Fixes #52751
2020-05-16 15:07:34 -07:00
stuartmorgan
9d4b0cb844
Update Linux template for headless mode (#56618) 2020-05-09 21:09:03 -07:00
stuartmorgan
8d8439f8e3
Add pre-stable support for create on Linux (#51832)
Adds initial support for `flutter create` of apps and plugins. This is derived from the current FDE example app and sample plugin, with a few changes:
- Added template values where it makes sense.
- Moved some likely-to-change values into separate files for now, to simplify the delete/recreate cycle that will be necessary until it's stable.
- Added some minor Makefile flag handling improvements

Since the APIs/tooling/template aren't stable yet, the app template includes a version marker, which will be updated each time there's a breaking change. The build now checks that the template version matches the version known by that version of the tool, and gives a specific error message when there's a mismatch, which improves over the current breaking change experience of hitting whatever build failure the breaking change causes and having to figure out that the problem is that the runner is out of date. It also adds a warning to the `create` output about the fact that it won't be stable.
2020-03-03 22:42:52 +01:00