|
|
Created:
7 years, 2 months ago by Yoyo Zhou Modified:
7 years, 2 months ago CC:
chromium-reviews, chromium-apps-reviews_chromium.org, extensions-reviews_chromium.org, James Cook, dmazzoni Base URL:
svn://svn.chromium.org/chrome/trunk/src Visibility:
Public. |
DescriptionFix api gyp target on chromeos and android.
This reworks api.gyp to be correct:
- Exclusions don't work for user-defined variables like schema_files. Change them to inclusions instead.
- For android, explicitly list just the APIs that are referred to.
- For chromeos, file_browser_private_api_functions.h pulls in chrome/browser/chromeos/drive/drive.pb.h (generated in the drive_proto target).
BUG=159366, 305852
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=228062
Patch Set 1 #
Total comments: 4
Patch Set 2 : ioaweurioqwur #
Total comments: 1
Patch Set 3 : log #Patch Set 4 : virtual keyboard #Patch Set 5 : 2 #Patch Set 6 : #
Total comments: 4
Patch Set 7 : no android #Patch Set 8 : whoa #Patch Set 9 : webrtc #
Messages
Total messages: 30 (0 generated)
lgtm assuming not. https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... chrome/common/extensions/api/api.gyp:166: 'webview.json', this file is so messed up. are the schema missing from this android list there deliberately, or accidentally? https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... chrome/common/extensions/api/api.gyp:180: ] likewise I feel like we should be adding to the list and dependencies with chromeos, not removing from the list. is that possible?
Blargh. I also fixed the poor alphabetization. https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... chrome/common/extensions/api/api.gyp:166: 'webview.json', On 2013/10/08 22:56:13, kalman wrote: > this file is so messed up. are the schema missing from this android list there > deliberately, or accidentally? Blech. I don't even want to think about this. Ok, I think the reason for this is android still compiles a surprising amount of extensions code and they have to remove things manually. (And what does ios do??) https://codereview.chromium.org/26608002/diff/1/chrome/common/extensions/api/... chrome/common/extensions/api/api.gyp:180: ] On 2013/10/08 22:56:13, kalman wrote: > likewise I feel like we should be adding to the list and dependencies with > chromeos, not removing from the list. is that possible? That at least is something I think we can do.
lgtm https://codereview.chromium.org/26608002/diff/6001/chrome/common/extensions/a... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/6001/chrome/common/extensions/a... chrome/common/extensions/api/api.gyp:164: 'schema_files': [ ... and that doesn't override them? cool :)
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/11001
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/11001
Retried try job too often on android_dbg for step(s) slave_steps http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=android_db...
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/11001
Step "update" is always a major failure. Look at the try server FAQ for more details. http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=android_db...
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/11001
Sorry for I got bad news for ya. Compile failed with a clobber build on win. http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win&number... Your code is likely broken or HEAD is junk. Please ensure your code is not broken then alert the build sheriffs. Look at the try server FAQ for more details.
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/45001
Retried try job too often on win_rel for step(s) telemetry_unittests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&nu...
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/45001
Sorry for I got bad news for ya. Compile failed with a clobber build on linux_chromeos. http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_chro... Your code is likely broken or HEAD is junk. Please ensure your code is not broken then alert the build sheriffs. Look at the try server FAQ for more details.
Ok, this gyp file is more broken than I realized. I think _none_ of the conditionals - android, chromeos, or webrtc - worked correctly! =( =(
Because of https://code.google.com/p/gyp/issues/detail?id=373, it looks like the ! exclusions don't work at all. The options look like (1) leave the android section uselessly there, broken as it was before, but with a comment (2) split up the schema files into an android list and non-android list (3) restructure the gyp entirely I think I'd go with (1) for the time being. Thoughts?
cc'ing dmazzoni about the Android part of this gyp file
kalman, PTAL
lgtm https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... chrome/common/extensions/api/api.gyp:128: # this section is ineffective. I doubt this is even up to date. I think we should delete it, but I'll let dmazzoni@ decide, e.g. maybe the whole file should be "android==0".
https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... chrome/common/extensions/api/api.gyp:128: # this section is ineffective. On 2013/10/09 21:52:31, kalman wrote: > I doubt this is even up to date. I think we should delete it, but I'll let > dmazzoni@ decide, e.g. maybe the whole file should be "android==0". Yeah, it looks like we could exclude everything on Android. The only issue is that if schema_files is empty, then the json schema compiler doesn't create generated_api and generated_schemas. I'll delete it and change the TODO.
https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... chrome/common/extensions/api/api.gyp:128: # this section is ineffective. On 2013/10/09 22:51:02, Yoyo Zhou wrote: > On 2013/10/09 21:52:31, kalman wrote: > > I doubt this is even up to date. I think we should delete it, but I'll let > > dmazzoni@ decide, e.g. maybe the whole file should be "android==0". > > Yeah, it looks like we could exclude everything on Android. The only issue is > that if schema_files is empty, then the json schema compiler doesn't create > generated_api and generated_schemas. > > I'll delete it and change the TODO. I see. Is that a problem? Nothing a couple of #ifdef's couldn't solve :)
+davemoore for profiles OWNERS https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... File chrome/common/extensions/api/api.gyp (right): https://codereview.chromium.org/26608002/diff/77001/chrome/common/extensions/... chrome/common/extensions/api/api.gyp:128: # this section is ineffective. On 2013/10/09 22:51:50, kalman wrote: > On 2013/10/09 22:51:02, Yoyo Zhou wrote: > > On 2013/10/09 21:52:31, kalman wrote: > > > I doubt this is even up to date. I think we should delete it, but I'll let > > > dmazzoni@ decide, e.g. maybe the whole file should be "android==0". > > > > Yeah, it looks like we could exclude everything on Android. The only issue is > > that if schema_files is empty, then the json schema compiler doesn't create > > generated_api and generated_schemas. > > > > I'll delete it and change the TODO. > > I see. Is that a problem? Nothing a couple of #ifdef's couldn't solve :) Ok, I was building the wrong target on android. It turns out there are quite a few API definitions that still get pulled in. I had to add some ifdefs to chrome_browser_main_extra_parts_profiles (what a name) to avoid some more.
lgtm
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/83001
Failed to apply patch for chrome/common/extensions/api/api.gyp: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file chrome/common/extensions/api/api.gyp Hunk #1 FAILED at 18. Hunk #2 succeeded at 128 (offset 2 lines). 1 out of 2 hunks FAILED -- saving rejects to file chrome/common/extensions/api/api.gyp.rej Patch: chrome/common/extensions/api/api.gyp Index: chrome/common/extensions/api/api.gyp diff --git a/chrome/common/extensions/api/api.gyp b/chrome/common/extensions/api/api.gyp index b1b256d95e0feb82b03f3c47c3dcde52fcead67a..5162b4477689e5a2c5f037bae1fe2068ad80a0c1 100644 --- a/chrome/common/extensions/api/api.gyp +++ b/chrome/common/extensions/api/api.gyp @@ -18,105 +18,141 @@ ], 'variables': { 'chromium_code': 1, - 'schema_files': [ - 'alarms.idl', - 'activity_log_private.json', - 'adview.json', - 'app_current_window_internal.idl', - 'app_runtime.idl', - 'app_window.idl', - 'audio.idl', - 'autotest_private.idl', - 'bluetooth.idl', - 'bookmark_manager_private.json', - 'bookmarks.json', - 'braille_display_private.idl', - 'browsing_data.json', - 'cast_channel.idl', - 'chromeos_info_private.json', - 'cloud_print_private.json', - 'command_line_private.json', - 'content_settings.json', - 'context_menus.json', - 'cookies.json', - 'debugger.json', - 'developer_private.idl', - 'desktop_capture.idl', - 'diagnostics.idl', - 'dial.idl', - 'dns.idl', - 'downloads.idl', - 'echo_private.json', - 'downloads_internal.idl', - 'enterprise_platform_keys_private.json', - 'events.json', - 'experimental_accessibility.json', - 'experimental_discovery.idl', - 'experimental_history.json', - 'experimental_identity.idl', - 'file_browser_private.json', - 'location.idl', - 'system_memory.idl', - 'extension.json', - 'feedback_private.idl', - 'file_browser_handler_internal.json', - 'file_system.idl', - 'font_settings.json', - 'history.json', - 'i18n.json', - 'identity.idl', - 'identity_private.idl', - 'idle.json', - 'idltest.idl', - 'infobars.json', - 'input_ime.json', - 'log_private.idl', - 'management.json', - 'manifest_types.json', - 'mdns.idl', - 'media_galleries.idl', - 'media_galleries_private.idl', - 'media_player_private.json', - 'metrics_private.json', - 'music_manager_private.idl', - 'networking_private.json', - 'notifications.idl', - 'omnibox.json', - 'page_capture.json', - 'permissions.json', - 'preferences_private.json', - 'principals_private.idl', - 'power.idl', - 'push_messaging.idl', - 'image_writer_private.idl', - 'runtime.json', - 'serial.idl', - 'sessions.json', - 'signed_in_devices.idl', - 'socket.idl', - 'sockets_udp.idl', - 'storage.json', - 'sync_file_system.idl', - 'system_indicator.idl', - 'system_cpu.idl', - 'system_display.idl', - 'system_storage.idl', - 'system_private.json', - 'tab_capture.idl', - 'tabs.json', - 'terminal_private.json', - 'test.json', - 'top_sites.json', - 'usb.idl', - 'virtual_keyboard_private.json', - 'wallpaper.json', - 'wallpaper_private.json', - 'web_navigation.json', - 'web_request.json', - 'webrtc_logging_private.idl', - 'webstore_private.json', - 'webview.json', - 'windows.json', + 'conditions': [ + ['OS!="android"', { + 'schema_files': [ + 'activity_log_private.json', + 'adview.json', + 'alarms.idl', + 'app_current_window_internal.idl', + 'app_runtime.idl', + 'app_window.idl', + 'audio.idl', + 'autotest_private.idl', + 'bluetooth.idl', + 'bookmark_manager_private.json', + 'bookmarks.json', + 'braille_display_private.idl', + 'browsing_data.json', + 'cast_channel.idl', + 'chromeos_info_private.json', + 'cloud_print_private.json', + 'command_line_private.json', + 'content_settings.json', + 'context_menus.json', + 'cookies.json', + 'debugger.json', + 'desktop_capture.idl', + 'developer_private.idl', + 'diagnostics.idl', + 'dial.idl', + 'dns.idl', + 'downloads.idl', + 'downloads_internal.idl', + 'echo_private.json', + 'enterprise_platform_keys_private.json', + 'events.json', + 'experimental_accessibility.json', + 'experimental_discovery.idl', + 'experimental_history.json', + 'experimental_identity.idl', + 'extension.json', + 'feedback_private.idl', + 'file_browser_private.json', + 'file_system.idl', + 'font_settings.json', + 'history.json', + 'i18n.json', + 'identity.idl', + 'identity_private.idl', + 'idle.json', + 'idltest.idl', + 'image_writer_private.idl', + 'infobars.json', + 'input_ime.json', + 'location.idl', + 'log_private.idl', + 'management.json', + 'manifest_types.json', + 'mdns.idl', + 'media_galleries.idl', + 'media_galleries_private.idl', + 'media_player_private.json', + 'metrics_private.json', + 'music_manager_private.idl', + 'networking_private.json', + 'notifications.idl', + 'omnibox.json', + 'page_capture.json', + 'permissions.json', + 'power.idl', + 'preferences_private.json', + 'principals_private.idl', + 'push_messaging.idl', + 'runtime.json', + 'serial.idl', + 'sessions.json', + 'signed_in_devices.idl', + 'socket.idl', + 'sockets_udp.idl', + 'storage.json', + 'sync_file_system.idl', + 'system_cpu.idl', + 'system_display.idl', + 'system_indicator.idl', + 'system_memory.idl', + 'system_private.json', + 'system_storage.idl', + 'tab_capture.idl', + 'tabs.json', + 'terminal_private.json', + 'test.json', + 'top_sites.json', + 'usb.idl', + 'virtual_keyboard_private.json', + 'web_navigation.json', + 'web_request.json', + 'webstore_private.json', + 'webview.json', + 'windows.json', + ], + }, { # OS=="android" + 'schema_files': [ + # These should be eliminated. See crbug.com/305852. + 'activity_log_private.json', + 'alarms.idl', + 'app_runtime.idl', + 'app_window.idl', + 'context_menus.json', + 'downloads.idl', + 'events.json', + 'feedback_private.idl', + 'file_system.idl', + 'manifest_types.json', + 'omnibox.json', + 'permissions.json', + 'runtime.json', + 'storage.json', + 'sync_file_system.idl', + 'tab_capture.idl', + 'tabs.json', + 'web_navigation.json', + 'web_request.json', + 'windows.json', + ], + }], + ['chromeos==1', { + 'schema_files': [ + 'file_browser_handler_internal.json', + 'wallpaper.json', + 'wallpaper_private.json', + ], + }], + ['enable_webrtc==1', { + 'schema_files': [ + 'webrtc_logging_private.idl', + ], + }], ], 'cc_dir': 'chrome/common/extensions/api', 'root_namespace': 'extensions::api', @@ -126,58 +162,9 @@ '<(DEPTH)/sync/sync.gyp:sync', ], 'conditions': [ - ['OS=="android"', { - 'sources!': [ - 'autotest_private.idl', - 'bookmark_manager_private.json', - 'browsing_data.json', - 'chromeos_info_private.json', - 'command_line_private.json', - 'developer_private.idl', - 'dial.idl', - 'downloads_internal.idl', - 'echo_private.json', - 'enterprise_platform_keys_private.json', - 'experimental_accessibility.json', - 'experimental_discovery.idl', - 'experimental_dns.idl', - 'experimental_history.json', - 'experimental_identity.idl', - 'experimental_idltest.idl', - 'extension.json', - 'file_browser_handler_internal.json', - 'font_settings.json', - 'i18n.json', - 'identity.idl', - 'identity_private.idl', - 'idle.json', - 'infobars.json', - 'input_im… (message too large)
haibinlu: I moved webrtc_cast_send_transport and webrtc_udp_transport to the section that's only enabled with enable_webrtc==1. Please comment if that seems incorrect.
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/yoz@chromium.org/26608002/89001
lgtm
Message was sent while issue was closed.
Change committed as 228062 |