Separate builds for profiles#67
Conversation
9ca99b8 to
6115693
Compare
|
I tested on
jsonexample and gallery worked fine on every device. (I didn't measure performance but there was no obvious regression.) Currently the video_player plugin doesn't work properly in Evas GL mode (watch) - this will be addressed later. |
bbrto21
left a comment
There was a problem hiding this comment.
Generally, LGTM
However, I would like other reviewers to review Evas GL related things (loop, render and etc), because there were no reviewers other than those who participated in the PoC at that time
- Cherry-pick the commit from flutter-2.0.1-tizen-dev - Rename FLUTTER_TIZEN_EVASGL with TIZEN_RENDERER_EVAS_GL - Add missing switches and fix build errors Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
e8f434f to
97ef634
Compare
|
Resolved a conflict with #69. |
| for (const auto& task : expired_tasks_) { | ||
| on_task_expired_(&task); | ||
| } | ||
| expired_tasks_.clear(); |
There was a problem hiding this comment.
Shouldn't we lock expired_tasks_mutex_ here?
There was a problem hiding this comment.
I designed to lock the mutex in the caller of OnTaskExpired if necessary.
There was a problem hiding this comment.
@bbrto21 Apparently the caller (ExcuteTaskEvents) of OnTaskExpired doesn't hold the lock and the TizenRenderEventLoop::OnTaskExpired() implementation uses the lock. I'm not still sure what you intended.
There was a problem hiding this comment.
@swift-kim Well, now that I've reviewed it again.... I think that it looks good to lock the mutex here too. It's been so long since I implemented this part, so I can't remember exactly what I was thinking then. 😁 😁 😁
| use_evas_gl_renderer = false | ||
| } | ||
|
|
||
| shared_library("flutter_tizen_${target_name}") { |
There was a problem hiding this comment.
I've found something confusing (at least for gn novice): the value of target_name within the body of shared_library, i.e. between lines 85 and 164, is changed from mobile/werable/tv/common to flutter_tizen_mobile/flutter_tizen_werable/flutter_tizen_tv/flutter_tizen_common respectively.
I'm not sure, if it's an issue, but it causes "undefined reference" errors when using code similar to the one from the diff from this comment #65 (comment) to extend libs, i.e.:
+ if (target_name == "mobile") { # should be target_name == "flutter_tizen_mobile"
+ libs += [ "cbhm" ]
+ }
I've printed the target_name values before, within and after shared_library() call (using this code: pwasowski2@0a41130) and here's what gn uses as target_names:
target_name before 'shared_library()': mobile
target_name in 'shared_library()': flutter_tizen_mobile
target_name == "mobile" is FALSE
target_name == "flutter_tizen_mobile" is TRUE
target_name after 'shared_library()': mobile
...
@swift-kim, is this change of target_name value desired?
There was a problem hiding this comment.
@pwasowski2 You're right. My comment was misleading because I didn't test the change suggested in the comment.
You can either:
- Use
invoker.target_name(instead oftarget_name) insideshared_library() - Define a new variable (e.g.
profile = target_name) outsideshared_library()and use that insideshared_library()
Actually there is a caveat about this in the GN documentation: https://gn.googlesource.com/gn/+/master/docs/reference.md#var_target_name
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" - Cherry-pick the commit from flutter-2.0.1-tizen-dev - Rename FLUTTER_TIZEN_EVASGL with TIZEN_RENDERER_EVAS_GL - Add missing switches and fix build errors Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com> * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" - Cherry-pick the commit from flutter-2.0.1-tizen-dev - Rename FLUTTER_TIZEN_EVASGL with TIZEN_RENDERER_EVAS_GL - Add missing switches and fix build errors Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com> * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" - Cherry-pick the commit from flutter-2.0.1-tizen-dev - Rename FLUTTER_TIZEN_EVASGL with TIZEN_RENDERER_EVAS_GL - Add missing switches and fix build errors Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com> * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" - Cherry-pick the commit from flutter-2.0.1-tizen-dev - Rename FLUTTER_TIZEN_EVASGL with TIZEN_RENDERER_EVAS_GL - Add missing switches and fix build errors Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com> * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
* Separate binaries * Clean up the build script * Use templates * Use __dlog_print() only on TV * Copy headers and icudata * Partially update azure-pipelines.yml * Temporarily unsupport Tizen 4.0 and use only ecore_wl2 * Cherry-pick "Enable Evas GL direct mode (#54)" * Fix CI build * Disable Evas GL direct mode and remove use of elm_win_aux_hint_add * Simplify the CI job * A workaround for isIME in Evas GL mode * Refactor: Clean up tizen_renderer.h and re-order functions * Refactor: Rename GetEcoreWindowId and change its return type to uintptr_t * Refactor: Make GetImageHandle() Evas GL-only * Refactor: Additional clean ups * Initialize members properly * Get window id from evas_window_ * Re-format code Co-authored-by: Boram Bae <boram21.bae@samsung.com> Co-authored-by: MuHong Byun <mh.byun@samsung.com>
tizen/BUILD.gn)libflutter_tizen_mobile.so(Ecore Wl2)libflutter_tizen_wearable.so(Evas GL)libflutter_tizen_tv.so(Ecore Wl2)libflutter_tizen_common.so(Ecore Wl2)__dlog_print()only on TV and usedlog_print()on other profilesazure-pipelines.ymlaccordinglyThis change requires https://github.com/flutter-tizen/tizen_tools/pull/9.
Contributes to flutter-tizen/flutter-tizen#86 and flutter-tizen/flutter-tizen#21.
More testing, improvements, and clean-ups are needed (I tested only on a few devices).