Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit ed3c553

Browse files
authored
[linux] Allow overriding aot_library_path (#42555)
Support overriding `aot_library_path` in `FLDartProject` on Linux. Fixes: flutter/flutter#128213 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
1 parent 09c6ce4 commit ed3c553

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

shell/platform/linux/fl_dart_project.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ G_MODULE_EXPORT FlDartProject* fl_dart_project_new() {
6262
return self;
6363
}
6464

65+
G_MODULE_EXPORT void fl_dart_project_set_aot_library_path(FlDartProject* self,
66+
const gchar* path) {
67+
g_return_if_fail(FL_IS_DART_PROJECT(self));
68+
g_clear_pointer(&self->aot_library_path, g_free);
69+
self->aot_library_path = g_strdup(path);
70+
}
71+
6572
G_MODULE_EXPORT const gchar* fl_dart_project_get_aot_library_path(
6673
FlDartProject* self) {
6774
g_return_val_if_fail(FL_IS_DART_PROJECT(self), nullptr);

shell/platform/linux/fl_dart_project_test.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ TEST(FlDartProjectTest, GetPaths) {
2828
expected_icu_data_path);
2929
}
3030

31+
TEST(FlDartProjectTest, OverrideAotLibraryPath) {
32+
g_autoptr(FlDartProject) project = fl_dart_project_new();
33+
34+
char aot_library_path[] = "/normal/tuesday/night/for/shia/labeouf";
35+
fl_dart_project_set_aot_library_path(project, aot_library_path);
36+
EXPECT_STREQ(fl_dart_project_get_aot_library_path(project), aot_library_path);
37+
}
38+
3139
TEST(FlDartProjectTest, OverrideAssetsPath) {
3240
g_autoptr(FlDartProject) project = fl_dart_project_new();
3341

shell/platform/linux/public/flutter_linux/fl_dart_project.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@ G_DECLARE_FINAL_TYPE(FlDartProject, fl_dart_project, FL, DART_PROJECT, GObject)
3535
*/
3636
FlDartProject* fl_dart_project_new();
3737

38+
/**
39+
* fl_dart_project_set_aot_library_path:
40+
* @project: an #FlDartProject.
41+
* @path: the absolute path to the AOT library in the Flutter application.
42+
*
43+
* Sets the path to the AOT library in the Flutter application, which is
44+
* the path to libapp.so. By default this is lib/libapp.so relative to the
45+
* executable directory.
46+
*/
47+
void fl_dart_project_set_aot_library_path(FlDartProject* project,
48+
const gchar* path);
49+
3850
/**
3951
* fl_dart_project_get_aot_library_path:
4052
* @project: an #FlDartProject.

0 commit comments

Comments
 (0)