-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate builds for profiles #67
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we lock expired_tasks_mutex_ here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I designed to lock the mutex in the caller of OnTaskExpired
if necessary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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. 😁 😁 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
} | ||
|
||
shared_library("flutter_tizen_${target_name}") { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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_name
s:
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the explanation :)
* 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.yml
accordinglyThis 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).