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