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