1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 { 6 'variables': { 7 'chromium_code': 1, 8 9 # Set this to run the jscompile checks after building the webapp. 10 'run_jscompile%': 0, 11 12 # Set this to enable cast mode on the android client. 13 'enable_cast%': 0, 14 15 'variables': { 16 'conditions': [ 17 # Enable the multi-process host on Windows by default. 18 ['OS=="win"', { 19 'remoting_multi_process%': 1, 20 }, { 21 'remoting_multi_process%': 0, 22 }], 23 ], 24 }, 25 26 'remoting_multi_process%': '<(remoting_multi_process)', 27 'remoting_rdp_session%': 1, 28 29 'remoting_localize_path': 'tools/build/remoting_localize.py', 30 31 'branding_path': '../remoting/branding_<(branding)', 32 33 'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales', 34 35 'conditions': [ 36 ['OS=="mac"', { 37 'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")', 38 'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")', 39 }], 40 ['OS=="win"', { 41 # Each CLSID is a hash of the current version string salted with an 42 # arbitrary GUID. This ensures that the newly installed COM classes will 43 # be used during/after upgrade even if there are old instances running 44 # already. 45 # The IDs are not random to avoid rebuilding host when it's not 46 # necessary. 47 'daemon_controller_clsid': 48 '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'655bd819-c08c-4b04-80c2-f160739ff6ef\'), \'<(version_full)\')")', 49 'rdp_desktop_session_clsid': 50 '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'6a7699f0-ee43-43e7-aa30-a6738f9bd470\'), \'<(version_full)\')")', 51 }], 52 ], 53 'remoting_locales': [ 54 # Note: list duplicated in GN build. See //remoting/resources/BUILD.gn 55 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es', 56 'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id', 57 'it', 'ja', 'ko', 'lt', 'lv', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 58 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', 59 'zh-CN', 'zh-TW', 60 ], 61 'remoting_host_locale_files': [ 62 # Build the list of .pak files generated from remoting_strings.grd. 63 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x ' 64 '<(PRODUCT_DIR) <(remoting_locales))', 65 ], 66 'remoting_webapp_locale_files': [ 67 # Build the list of .json files generated from remoting_strings.grd. 68 '<!@pymod_do_main(remoting_localize --locale_output ' 69 '"<(webapp_locale_dir)/@{json_suffix}/messages.json" ' 70 '--print_only <(remoting_locales))', 71 ], 72 }, 73 74 'includes': [ 75 '../chrome/js_unittest_vars.gypi', 76 'remoting_android.gypi', 77 'remoting_client.gypi', 78 'remoting_host.gypi', 79 'remoting_srcs.gypi', 80 'remoting_test.gypi', 81 'remoting_version.gypi', 82 'remoting_webapp_files.gypi', 83 ], 84 85 'target_defaults': { 86 'defines': [ 87 'BINARY_CORE=1', 88 'BINARY_DESKTOP=2', 89 'BINARY_HOST_ME2ME=3', 90 'BINARY_NATIVE_MESSAGING_HOST=4', 91 'BINARY_REMOTE_ASSISTANCE_HOST=5', 92 ], 93 'include_dirs': [ 94 '..', # Root of Chrome checkout 95 ], 96 'variables': { 97 'win_debug_RuntimeChecks': '0', 98 }, 99 'conditions': [ 100 ['OS=="mac" and mac_breakpad==1', { 101 'defines': [ 102 'REMOTING_ENABLE_BREAKPAD' 103 ], 104 }], 105 ['OS=="win" and buildtype == "Official"', { 106 'defines': [ 107 'REMOTING_ENABLE_BREAKPAD' 108 ], 109 }], 110 ['OS=="win" and remoting_multi_process != 0 and \ 111 remoting_rdp_session != 0', { 112 'defines': [ 113 'REMOTING_RDP_SESSION', 114 ], 115 }], 116 ['remoting_multi_process != 0', { 117 'defines': [ 118 'REMOTING_MULTI_PROCESS', 119 ], 120 }], 121 ], 122 }, 123 124 'targets': [ 125 { 126 'target_name': 'remoting_breakpad', 127 'type': 'static_library', 128 'variables': { 'enable_wexit_time_destructors': 1, }, 129 'dependencies': [ 130 '../base/base.gyp:base', 131 ], 132 'sources': [ 133 'base/breakpad.h', 134 'base/breakpad_linux.cc', 135 'base/breakpad_mac.mm', 136 'base/breakpad_win.cc', 137 ], 138 'conditions': [ 139 ['OS=="mac"', { 140 'dependencies': [ 141 '../breakpad/breakpad.gyp:breakpad', 142 ], 143 }], 144 ['OS=="win"', { 145 'dependencies': [ 146 '../breakpad/breakpad.gyp:breakpad_handler', 147 ], 148 }], 149 ], 150 }, # end of target 'remoting_breakpad' 151 152 { 153 # GN version: //remoting/resources 154 'target_name': 'remoting_resources', 155 'type': 'none', 156 'dependencies': [ 157 'remoting_webapp_html', 158 ], 159 'variables': { 160 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)', 161 'grit_resource_ids': 'resources/resource_ids', 162 'sources': [ 163 '<(SHARED_INTERMEDIATE_DIR)/main.html', 164 'base/resources_unittest.cc', 165 'host/continue_window_mac.mm', 166 'host/disconnect_window_mac.mm', 167 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', 168 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', 169 'host/win/core.rc.jinja2', 170 'host/win/host_messages.mc.jinja2', 171 'host/win/version.rc.jinja2', 172 'resources/play_store_resources.cc', 173 'webapp/background/background.js', 174 'webapp/background/it2me_helpee_channel.js', 175 'webapp/butter_bar.js', 176 'webapp/client_screen.js', 177 'webapp/error.js', 178 'webapp/host_list.js', 179 'webapp/host_setup_dialog.js', 180 'webapp/host_table_entry.js', 181 'webapp/options_menu.js', 182 'webapp/manifest.json.jinja2', 183 'webapp/paired_client_manager.js', 184 'webapp/remoting.js', 185 'webapp/window_frame.js', 186 ], 187 }, 188 'actions': [ 189 { 190 # GN version: //remoting/resources:verify_resources 191 'action_name': 'verify_resources', 192 'inputs': [ 193 'resources/remoting_strings.grd', 194 'tools/verify_resources.py', 195 '<@(sources)' 196 ], 197 'outputs': [ 198 '<(PRODUCT_DIR)/remoting_resources_verified.stamp', 199 ], 200 'action': [ 201 'python', 202 'tools/verify_resources.py', 203 '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp', 204 '-r', 'resources/remoting_strings.grd', 205 '<@(sources)', 206 ], 207 }, 208 { 209 # GN version: //remoting/resources:strings 210 'action_name': 'remoting_strings', 211 'variables': { 212 'grit_grd_file': 'resources/remoting_strings.grd', 213 }, 214 'includes': [ '../build/grit_action.gypi' ], 215 }, 216 { 217 # GN version: //remoting/resources:copy_locales 218 'action_name': 'copy_locales', 219 'variables': { 220 'copy_output_dir%': '<(PRODUCT_DIR)', 221 }, 222 'inputs': [ 223 'tools/build/remoting_copy_locales.py', 224 '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))' 225 ], 226 'outputs': [ 227 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))' 228 ], 229 'action': [ 230 'python', 'tools/build/remoting_copy_locales.py', 231 '-p', '<(OS)', 232 '-g', '<(grit_out_dir)', 233 '-x', '<(copy_output_dir)/.', 234 '<@(remoting_locales)', 235 ], 236 } 237 ], 238 'includes': [ '../build/grit_target.gypi' ], 239 }, # end of target 'remoting_resources' 240 241 { 242 # GN version: //remoting/base 243 'target_name': 'remoting_base', 244 'type': 'static_library', 245 'variables': { 'enable_wexit_time_destructors': 1, }, 246 'dependencies': [ 247 '../base/base.gyp:base', 248 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 249 '../media/media.gyp:media', 250 '../media/media.gyp:shared_memory_support', 251 '../net/net.gyp:net', 252 '../third_party/libvpx/libvpx.gyp:libvpx', 253 '../third_party/libyuv/libyuv.gyp:libyuv', 254 '../third_party/opus/opus.gyp:opus', 255 '../third_party/protobuf/protobuf.gyp:protobuf_lite', 256 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 257 '../ui/base/ui_base.gyp:ui_base', 258 '../ui/gfx/gfx.gyp:gfx', 259 '../ui/gfx/gfx.gyp:gfx_geometry', 260 'proto/chromotocol.gyp:chromotocol_proto_lib', 261 'remoting_resources', 262 ], 263 'export_dependent_settings': [ 264 '../base/base.gyp:base', 265 '../net/net.gyp:net', 266 '../third_party/protobuf/protobuf.gyp:protobuf_lite', 267 'proto/chromotocol.gyp:chromotocol_proto_lib', 268 ], 269 # This target needs a hard dependency because dependent targets 270 # depend on chromotocol_proto_lib for headers. 271 'hard_dependency': 1, 272 'sources': [ 273 '<@(remoting_base_sources)', 274 ], 275 }, # end of target 'remoting_base' 276 277 { 278 # GN version: //remoting/protocol 279 'target_name': 'remoting_protocol', 280 'type': 'static_library', 281 'variables': { 'enable_wexit_time_destructors': 1, }, 282 'dependencies': [ 283 '../base/base.gyp:base', 284 '../crypto/crypto.gyp:crypto', 285 '../jingle/jingle.gyp:jingle_glue', 286 '../jingle/jingle.gyp:notifier', 287 '../net/net.gyp:net', 288 '../third_party/libjingle/libjingle.gyp:libjingle', 289 'remoting_base', 290 ], 291 'export_dependent_settings': [ 292 '../third_party/libjingle/libjingle.gyp:libjingle', 293 ], 294 'sources': [ 295 '<@(remoting_protocol_sources)', 296 ], 297 }, # end of target 'remoting_protocol' 298 ], # end of targets 299 } 300