summaryrefslogtreecommitdiffstats
path: root/remoting/remoting_host_mac.gypi
blob: fb03e28226435b3339a2c4166f4d39b8c182d812 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

{
  'variables': {
    'remoting_host_installer_mac_roots': [
      'host/installer/mac/',
      '<(DEPTH)/chrome/installer/mac/',
    ],
    'remoting_host_installer_mac_files': [
      'host/installer/mac/do_signing.sh',
      'host/installer/mac/do_signing.props',
      'host/installer/mac/ChromotingHost.pkgproj',
      'host/installer/mac/ChromotingHostService.pkgproj',
      'host/installer/mac/ChromotingHostUninstaller.pkgproj',
      'host/installer/mac/LaunchAgents/org.chromium.chromoting.plist',
      'host/installer/mac/PrivilegedHelperTools/org.chromium.chromoting.me2me.sh',
      'host/installer/mac/Scripts/keystone_install.sh',
      'host/installer/mac/Scripts/remoting_postflight.sh',
      'host/installer/mac/Scripts/remoting_preflight.sh',
      'host/installer/mac/Keystone/GoogleSoftwareUpdate.pkg',
      '<(DEPTH)/chrome/installer/mac/pkg-dmg',
    ],
  },

  'targets': [
    {
      'target_name': 'remoting_host_uninstaller',
      'type': 'executable',
      'mac_bundle': 1,
      'variables': {
        'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_ID@")',
        'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
        'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
      },
      'dependencies': [
        '<(DEPTH)/base/base.gyp:base',
        'remoting_infoplist_strings',
      ],
      'defines': [
        'HOST_BUNDLE_NAME="<(host_bundle_name)"',
        'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
      ],
      'sources': [
        'host/constants_mac.cc',
        'host/constants_mac.h',
        'host/installer/mac/uninstaller/remoting_uninstaller.h',
        'host/installer/mac/uninstaller/remoting_uninstaller.mm',
        'host/installer/mac/uninstaller/remoting_uninstaller_app.h',
        'host/installer/mac/uninstaller/remoting_uninstaller_app.mm',
      ],
      'xcode_settings': {
        'INFOPLIST_FILE': 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
        'INFOPLIST_PREPROCESS': 'YES',
        'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
      },
      'mac_bundle_resources': [
        'host/installer/mac/uninstaller/remoting_uninstaller.icns',
        'host/installer/mac/uninstaller/remoting_uninstaller.xib',
        'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',

        # Localized strings for 'Info.plist'
        '<!@pymod_do_main(remoting_localize --locale_output '
        '"<(SHARED_INTERMEDIATE_DIR)/remoting/remoting_uninstaller-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
        '--print_only <(remoting_locales))',
      ],
      'mac_bundle_resources!': [
        'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist',
      ],
    },  # end of target 'remoting_host_uninstaller'

    # This packages up the files needed for the remoting host installer so
    # they can be sent off to be signed.
    # We don't build an installer here because we don't have signed binaries.
    {
      'target_name': 'remoting_me2me_host_archive',
      'type': 'none',
      'dependencies': [
        'remoting_host_prefpane',
        'remoting_host_uninstaller',
        'remoting_me2me_host',
        'remoting_me2me_native_messaging_host',
        'remoting_it2me_native_messaging_host',
        'remoting_native_messaging_manifests',
      ],
      'variables': {
        'host_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_PACKAGE_NAME@")',
        'host_service_name': '<!(python <(version_py_path) -f <(branding_path) -t "@DAEMON_FILE_NAME@")',
        'host_uninstaller_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_NAME@")',
        'bundle_prefix': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_PREFIX@")',
        'me2me_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
        'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
        'native_messaging_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_NATIVE_MESSAGING_HOST_BUNDLE_NAME@")',
        'remote_assistance_host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_REMOTE_ASSISTANCE_HOST_BUNDLE_NAME@")',
      },
      'actions': [
        {
          'action_name': 'Zip installer files for signing',
          'temp_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/remoting-me2me-host',
          'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip',
          'variables': {
            'host_name_nospace': '<!(echo <(host_name) | sed "s/ //g")',
            'host_service_name_nospace': '<!(echo <(host_service_name) | sed "s/ //g")',
            'host_uninstaller_name_nospace': '<!(echo <(host_uninstaller_name) | sed "s/ //g")',
          },
          'generated_files': [
            '<(PRODUCT_DIR)/remoting_host_prefpane.prefPane',
            '<(PRODUCT_DIR)/remoting_me2me_host.app',
            '<(PRODUCT_DIR)/native_messaging_host.app',
            '<(PRODUCT_DIR)/remote_assistance_host.app',
            '<(PRODUCT_DIR)/remoting_host_uninstaller.app',
            '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json',
            '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_assistance.json',
          ],
          'generated_files_dst': [
            'PreferencePanes/<(prefpane_bundle_name)',
            'PrivilegedHelperTools/<(me2me_host_bundle_name)',
            'PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(native_messaging_host_bundle_name)',
            'PrivilegedHelperTools/<(me2me_host_bundle_name)/Contents/MacOS/<(remote_assistance_host_bundle_name)',
            'Applications/<(host_uninstaller_name).app',
            'Config/com.google.chrome.remote_desktop.json',
            'Config/com.google.chrome.remote_assistance.json',
          ],
          'source_files': [
            '<@(remoting_host_installer_mac_files)',
          ],
          'defs': [
            'VERSION=<(version_full)',
            'VERSION_SHORT=<(version_short)',
            'VERSION_MAJOR=<(version_major)',
            'VERSION_MINOR=<(version_minor)',
            'HOST_NAME=<(host_name)',
            'HOST_BUNDLE_NAME=<(me2me_host_bundle_name)',
            'HOST_SERVICE_NAME=<(host_service_name)',
            'HOST_UNINSTALLER_NAME=<(host_uninstaller_name)',
            'HOST_PKG=<(host_name)',
            'HOST_SERVICE_PKG=<(host_service_name_nospace)',
            'HOST_UNINSTALLER_PKG=<(host_uninstaller_name_nospace)',
            'BUNDLE_ID_HOST=<(bundle_prefix).<(host_name_nospace)',
            'BUNDLE_ID_HOST_SERVICE=<(bundle_prefix).<(host_service_name_nospace)',
            'BUNDLE_ID_HOST_UNINSTALLER=<(bundle_prefix).<(host_uninstaller_name_nospace)',
            'DMG_VOLUME_NAME=<(host_name) <(version_full)',
            'DMG_FILE_NAME=<!(echo <(host_name) | sed "s/ //g")-<(version_full)',
            'NATIVE_MESSAGING_HOST_BUNDLE_NAME=<(native_messaging_host_bundle_name)',
            'REMOTE_ASSISTANCE_HOST_BUNDLE_NAME=<(remote_assistance_host_bundle_name)',
            'PREFPANE_BUNDLE_NAME=<(prefpane_bundle_name)',
          ],
          'inputs': [
            'host/installer/build-installer-archive.py',
            '<@(_source_files)',
          ],
          'outputs': [
            '<(_zip_path)',
          ],
          'action': [
            'python', 'host/installer/build-installer-archive.py',
            '<(_temp_dir)',
            '<(_zip_path)',
            '--source-file-roots', '<@(remoting_host_installer_mac_roots)',
            '--source-files', '<@(_source_files)',
            '--generated-files', '<@(_generated_files)',
            '--generated-files-dst', '<@(_generated_files_dst)',
            '--defs', '<@(_defs)',
          ],
        },
      ],  # actions
    }, # end of target 'remoting_me2me_host_archive'

    {
      'target_name': 'remoting_host_prefpane',
      'type': 'loadable_module',
      'mac_bundle': 1,
      'product_extension': 'prefPane',
      'variables': {
        'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_ID@")',
        'host_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_NAME@")',
        'prefpane_bundle_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_NAME@")',
      },
      'dependencies': [
        'remoting_base',
        'remoting_host',
        'remoting_infoplist_strings',
        '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
      ],
      'defines': [
        'HOST_BUNDLE_NAME="<(host_bundle_name)"',
        'PREFPANE_BUNDLE_NAME="<(prefpane_bundle_name)"',
        'JSON_USE_EXCEPTION=0',
      ],
      'include_dirs': [
        '../third_party/jsoncpp/overrides/include/',
        '../third_party/jsoncpp/source/include/',
        '../third_party/jsoncpp/source/src/lib_json/',
      ],
      'sources': [
        'host/mac/me2me_preference_pane.h',
        'host/mac/me2me_preference_pane.mm',
        'host/mac/me2me_preference_pane_confirm_pin.h',
        'host/mac/me2me_preference_pane_confirm_pin.mm',
        'host/mac/me2me_preference_pane_disable.h',
        'host/mac/me2me_preference_pane_disable.mm',
      ],
      'link_settings': {
        'libraries': [
          '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
          '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
          '$(SDKROOT)/System/Library/Frameworks/PreferencePanes.framework',
          '$(SDKROOT)/System/Library/Frameworks/Security.framework',
        ],
      },
      'xcode_settings': {
        'GCC_ENABLE_OBJC_GC': 'supported',
        'INFOPLIST_FILE': 'host/mac/me2me_preference_pane-Info.plist',
        'INFOPLIST_PREPROCESS': 'YES',
        'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"',
      },
      'mac_bundle_resources': [
        'host/mac/me2me_preference_pane.xib',
        'host/mac/me2me_preference_pane_confirm_pin.xib',
        'host/mac/me2me_preference_pane_disable.xib',
        'host/mac/me2me_preference_pane-Info.plist',
        'resources/chromoting128.png',

        # Localized strings for 'Info.plist'
        '<!@pymod_do_main(remoting_localize --locale_output '
        '"<(SHARED_INTERMEDIATE_DIR)/remoting/me2me_preference_pane-InfoPlist.strings/@{json_suffix}.lproj/InfoPlist.strings" '
        '--print_only <(remoting_locales))',
      ],
      'mac_bundle_resources!': [
        'host/mac/me2me_preference_pane-Info.plist',
      ],
      'conditions': [
        ['mac_breakpad==1', {
          'variables': {
            # A real .dSYM is needed for dump_syms to operate on.
            'mac_real_dsym': 1,
          },
        }],  # 'mac_breakpad==1'
      ],  # conditions
    },  # end of target 'remoting_host_prefpane'
  ],  # end of 'targets'

}