scheduler: Implement task observers
[chromium-blink-merge.git] / remoting / remoting_host_mac.gypi
blob848b8f66b61772081e3dc5637ae9126b8a528061
1 # Copyright 2014 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.
6   'variables': {
7     'remoting_host_installer_mac_roots': [
8       'host/installer/mac/',
9       '<(DEPTH)/chrome/installer/mac/',
10     ],
11     'remoting_host_installer_mac_files': [
12       'host/installer/mac/do_signing.sh',
13       'host/installer/mac/do_signing.props',
14       'host/installer/mac/ChromotingHost.pkgproj',
15       'host/installer/mac/ChromotingHostService.pkgproj',
16       'host/installer/mac/ChromotingHostUninstaller.pkgproj',
17       'host/installer/mac/LaunchAgents/org.chromium.chromoting.plist',
18       'host/installer/mac/PrivilegedHelperTools/org.chromium.chromoting.me2me.sh',
19       'host/installer/mac/Config/org.chromium.chromoting.conf',
20       'host/installer/mac/Scripts/keystone_install.sh',
21       'host/installer/mac/Scripts/remoting_postflight.sh',
22       'host/installer/mac/Scripts/remoting_preflight.sh',
23       'host/installer/mac/Keystone/GoogleSoftwareUpdate.pkg',
24       '<(DEPTH)/chrome/installer/mac/pkg-dmg',
25     ],
26   },
28   'targets': [
29     {
30       'target_name': 'remoting_host_uninstaller',
31       'type': 'executable',
32       'mac_bundle': 1,
33       'variables': {
34         'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_ID@")',
35         'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
36         'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
37       },
38       'dependencies': [
39         '<(DEPTH)/base/base.gyp:base',
40         'remoting_infoplist_strings',
41       ],
42       'defines': [
43         'HOST_BUNDLE_NAME="<(host_bundle_name)"',
44         'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
45       ],
46       'sources': [
47         'host/constants_mac.cc',
48         'host/constants_mac.h',
49         'host/installer/mac/uninstaller/remoting_uninstaller.h',
50         'host/installer/mac/uninstaller/remoting_uninstaller.mm',
51         'host/installer/mac/uninstaller/remoting_uninstaller_app.h',
52         'host/installer/mac/uninstaller/remoting_uninstaller_app.mm',
53       ],
54       'xcode_settings': {
55         'INFOPLIST_FILE': 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
56         'INFOPLIST_PREPROCESS': 'YES',
57         'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
58       },
59       'mac_bundle_resources': [
60         'host/installer/mac/uninstaller/remoting_uninstaller.icns',
61         'host/installer/mac/uninstaller/remoting_uninstaller.xib',
62         'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
64         # Localized strings for 'Info.plist'
65         '<!@pymod_do_main(remoting_localize --locale_output '
66         '"<(SHARED_INTERMEDIATE_DIR)/remoting/remoting_uninstaller-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
67         '--print_only <(remoting_locales))',
68       ],
69       'mac_bundle_resources!': [
70         'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
71       ],
72     },  # end of target 'remoting_host_uninstaller'
74     # This packages up the files needed for the remoting host installer so
75     # they can be sent off to be signed.
76     # We don't build an installer here because we don't have signed binaries.
77     {
78       'target_name': 'remoting_me2me_host_archive',
79       'type': 'none',
80       'dependencies': [
81         'remoting_host_prefpane',
82         'remoting_host_uninstaller',
83         'remoting_me2me_host',
84         'remoting_me2me_native_messaging_host',
85         'remoting_it2me_native_messaging_host',
86         'remoting_native_messaging_manifests',
87       ],
88       'variables': {
89         'host_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_PACKAGE_NAME@")',
90         'host_service_name': '<!(python <(version_py_path) -f <(branding_path) -t "@DAEMON_FILE_NAME@")',
91         'host_uninstaller_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_NAME@")',
92         'bundle_prefix': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_PREFIX@")',
93         'me2me_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
94         'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
95         'native_messaging_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_NAME@")',
96         'remote_assistance_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_NAME@")',
97       },
98       'actions': [
99         {
100           'action_name': 'Zip installer files for signing',
101           'temp_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/remoting-me2me-host',
102           'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
103           'variables': {
104             'host_name_nospace': '<!(echo <(host_name) | sed "s/ //g")',
105             'host_service_name_nospace': '<!(echo <(host_service_name) | sed "s/ //g")',
106             'host_uninstaller_name_nospace': '<!(echo <(host_uninstaller_name) | sed "s/ //g")',
107           },
108           'generated_files': [
109             '<(PRODUCT_DIR)/remoting_host_prefpane.prefPane',
110             '<(PRODUCT_DIR)/remoting_me2me_host.app',
111             '<(PRODUCT_DIR)/native_messaging_host.app',
112             '<(PRODUCT_DIR)/remote_assistance_host.app',
113             '<(PRODUCT_DIR)/remoting_host_uninstaller.app',
114             '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json',
115             '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_assistance.json',
116           ],
117           'generated_files_dst': [
118             'PreferencePanes/<(prefpane_bundle_name)',
119             'PrivilegedHelperTools/<(me2me_host_bundle_name)',
120             'PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(native_messaging_host_bundle_name)',
121             'PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(remote_assistance_host_bundle_name)',
122             'Applications/<(host_uninstaller_name).app',
123             'Config/com.google.chrome.remote_desktop.json',
124             'Config/com.google.chrome.remote_assistance.json',
125           ],
126           'source_files': [
127             '<@(remoting_host_installer_mac_files)',
128           ],
129           'defs': [
130             'VERSION=<(version_full)',
131             'VERSION_SHORT=<(version_short)',
132             'VERSION_MAJOR=<(version_major)',
133             'VERSION_MINOR=<(version_minor)',
134             'HOST_NAME=<(host_name)',
135             'HOST_BUNDLE_NAME=<(me2me_host_bundle_name)',
136             'HOST_SERVICE_NAME=<(host_service_name)',
137             'HOST_UNINSTALLER_NAME=<(host_uninstaller_name)',
138             'HOST_PKG=<(host_name)',
139             'HOST_SERVICE_PKG=<(host_service_name_nospace)',
140             'HOST_UNINSTALLER_PKG=<(host_uninstaller_name_nospace)',
141             'BUNDLE_ID_HOST=<(bundle_prefix).<(host_name_nospace)',
142             'BUNDLE_ID_HOST_SERVICE=<(bundle_prefix).<(host_service_name_nospace)',
143             'BUNDLE_ID_HOST_UNINSTALLER=<(bundle_prefix).<(host_uninstaller_name_nospace)',
144             'DMG_VOLUME_NAME=<(host_name) <(version_full)',
145             'DMG_FILE_NAME=<!(echo <(host_name) | sed "s/ //g")-<(version_full)',
146             'NATIVE_MESSAGING_HOST_BUNDLE_NAME=<(native_messaging_host_bundle_name)',
147             'REMOTE_ASSISTANCE_HOST_BUNDLE_NAME=<(remote_assistance_host_bundle_name)',
148             'PREFPANE_BUNDLE_NAME=<(prefpane_bundle_name)',
149           ],
150           'inputs': [
151             'host/installer/build-installer-archive.py',
152             '<@(_source_files)',
153           ],
154           'outputs': [
155             '<(_zip_path)',
156           ],
157           'action': [
158             'python', 'host/installer/build-installer-archive.py',
159             '<(_temp_dir)',
160             '<(_zip_path)',
161             '--source-file-roots', '<@(remoting_host_installer_mac_roots)',
162             '--source-files', '<@(_source_files)',
163             '--generated-files', '<@(_generated_files)',
164             '--generated-files-dst', '<@(_generated_files_dst)',
165             '--defs', '<@(_defs)',
166           ],
167         },
168       ],  # actions
169     }, # end of target 'remoting_me2me_host_archive'
171     {
172       'target_name': 'remoting_host_prefpane',
173       'type': 'loadable_module',
174       'mac_bundle': 1,
175       'product_extension': 'prefPane',
176       'variables': {
177         'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_ID@")',
178         'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
179         'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
180       },
181       'dependencies': [
182         'remoting_infoplist_strings',
183       ],
184       'defines': [
185         'HOST_BUNDLE_NAME="<(host_bundle_name)"',
186         'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
187         'JSON_USE_EXCEPTION=0',
188       ],
189       'include_dirs': [
190         '../third_party/jsoncpp/overrides/include/',
191         '../third_party/jsoncpp/source/include/',
192         '../third_party/jsoncpp/source/src/lib_json/',
193       ],
195       # These source files are included directly, instead of adding target
196       # dependencies, because the targets are not yet built for 64-bit on
197       # Mac OS X - http://crbug.com/125116.
198       #
199       # TODO(lambroslambrou): Fix this when Chrome supports building for
200       # Mac OS X 64-bit - http://crbug.com/128122.
201       'sources': [
202         '../third_party/jsoncpp/source/src/lib_json/json_reader.cpp',
203         '../third_party/jsoncpp/overrides/src/lib_json/json_value.cpp',
204         '../third_party/jsoncpp/source/src/lib_json/json_writer.cpp',
205         '../third_party/modp_b64/modp_b64.cc',
206         'host/constants_mac.cc',
207         'host/constants_mac.h',
208         'host/host_config_constants.cc',
209         'host/mac/me2me_preference_pane.h',
210         'host/mac/me2me_preference_pane.mm',
211         'host/mac/me2me_preference_pane_confirm_pin.h',
212         'host/mac/me2me_preference_pane_confirm_pin.mm',
213         'host/mac/me2me_preference_pane_disable.h',
214         'host/mac/me2me_preference_pane_disable.mm',
215       ],
216       'link_settings': {
217         'libraries': [
218           '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
219           '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
220           '$(SDKROOT)/System/Library/Frameworks/PreferencePanes.framework',
221           '$(SDKROOT)/System/Library/Frameworks/Security.framework',
222         ],
223       },
224       'xcode_settings': {
225         'ARCHS': ['i386', 'x86_64'],
226         'GCC_ENABLE_OBJC_GC': 'supported',
227         'INFOPLIST_FILE': 'host/mac/me2me_preference_pane-Info.plist',
228         'INFOPLIST_PREPROCESS': 'YES',
229         'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
230       },
231       'mac_bundle_resources': [
232         'host/mac/me2me_preference_pane.xib',
233         'host/mac/me2me_preference_pane_confirm_pin.xib',
234         'host/mac/me2me_preference_pane_disable.xib',
235         'host/mac/me2me_preference_pane-Info.plist',
236         'resources/chromoting128.png',
238         # Localized strings for 'Info.plist'
239         '<!@pymod_do_main(remoting_localize --locale_output '
240         '"<(SHARED_INTERMEDIATE_DIR)/remoting/me2me_preference_pane-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
241         '--print_only <(remoting_locales))',
242       ],
243       'mac_bundle_resources!': [
244         'host/mac/me2me_preference_pane-Info.plist',
245       ],
246       'conditions': [
247         ['mac_breakpad==1', {
248           'variables': {
249             # A real .dSYM is needed for dump_syms to operate on.
250             'mac_real_dsym': 1,
251           },
252         }],  # 'mac_breakpad==1'
253       ],  # conditions
254     },  # end of target 'remoting_host_prefpane'
255   ],  # end of 'targets'