OLD | NEW |
1 # Copyright (c) 2014 The Native Client Authors. All rights reserved. | 1 # Copyright (c) 2014 The Native Client Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import contextlib | 5 import contextlib |
6 import os | 6 import os |
7 import re | 7 import re |
8 import subprocess | 8 import subprocess |
9 import sys | 9 import sys |
10 import tempfile | 10 import tempfile |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 | 209 |
210 def IsInstalled(self): | 210 def IsInstalled(self): |
211 return util.IsInstalled(self.NAME, self.config, | 211 return util.IsInstalled(self.NAME, self.config, |
212 self.InstalledInfoContents()) | 212 self.InstalledInfoContents()) |
213 | 213 |
214 def IsGitUpstream(self): | 214 def IsGitUpstream(self): |
215 return self.URL and self.URL.split('@')[0].endswith('.git') | 215 return self.URL and self.URL.split('@')[0].endswith('.git') |
216 | 216 |
217 def InstallDeps(self, force, from_source=False): | 217 def InstallDeps(self, force, from_source=False): |
218 for dep in self.Dependencies(): | 218 for dep in self.Dependencies(): |
| 219 if self.TOOLCHAIN_INSTALL == '0': |
| 220 continue |
219 if not dep.IsAnyVersionInstalled() or force == 'all': | 221 if not dep.IsAnyVersionInstalled() or force == 'all': |
220 dep.Install(True, force, from_source) | 222 dep.Install(True, force, from_source) |
221 | 223 |
222 def PackageFile(self): | 224 def PackageFile(self): |
223 fullname = [os.path.join(paths.PACKAGES_ROOT, self.NAME)] | 225 fullname = [os.path.join(paths.PACKAGES_ROOT, self.NAME)] |
224 fullname.append(self.VERSION) | 226 fullname.append(self.VERSION) |
225 fullname.append(util.arch_to_pkgarch[self.config.arch]) | 227 fullname.append(util.arch_to_pkgarch[self.config.arch]) |
226 # for pnacl toolchain and arch are the same | 228 # for pnacl toolchain and arch are the same |
227 if self.config.toolchain != self.config.arch: | 229 if self.config.toolchain != self.config.arch: |
228 fullname.append(self.config.toolchain) | 230 fullname.append(self.config.toolchain) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 | 286 |
285 if self.TOOLCHAIN_INSTALL != '0': | 287 if self.TOOLCHAIN_INSTALL != '0': |
286 binary_package.BinaryPackage(package_file).Install(force) | 288 binary_package.BinaryPackage(package_file).Install(force) |
287 | 289 |
288 def GetInstalledPackage(self): | 290 def GetInstalledPackage(self): |
289 return package.CreateInstalledPackage(self.NAME, self.config) | 291 return package.CreateInstalledPackage(self.NAME, self.config) |
290 | 292 |
291 def CreatePkgFile(self): | 293 def CreatePkgFile(self): |
292 """Create and pkg file for use with the FreeBSD pkg tool. | 294 """Create and pkg file for use with the FreeBSD pkg tool. |
293 | 295 |
294 This step is designed to run after the build scripts and will | 296 Create a package from the result of the package's InstallStep. |
295 package up any files published by the PublishByArchForDevEnv | |
296 step. | |
297 """ | 297 """ |
298 install_dir = self.GetInstallLocation() | 298 install_dir = self.GetInstallLocation() |
299 if not os.path.exists(install_dir): | 299 if not os.path.exists(install_dir): |
300 return | 300 return |
301 | 301 |
302 abi = 'pkg_' + self.config.toolchain | 302 abi = 'pkg_' + self.config.toolchain |
303 if self.config.arch != self.config.toolchain: | 303 if self.config.arch != self.config.toolchain: |
304 abi += "_" + util.arch_to_pkgarch[self.config.arch] | 304 abi += "_" + util.arch_to_pkgarch[self.config.arch] |
305 abi_dir = os.path.join(paths.PUBLISH_ROOT, abi) | 305 abi_dir = os.path.join(paths.PUBLISH_ROOT, abi) |
306 pkg_file = os.path.join(abi_dir, '%s-%s.tbz' % (self.NAME, | 306 pkg_file = os.path.join(abi_dir, '%s-%s.tbz' % (self.NAME, |
307 self.VERSION)) | 307 self.VERSION)) |
308 | |
309 util.Makedirs(abi_dir) | 308 util.Makedirs(abi_dir) |
310 | |
311 deps = self.DEPENDS | 309 deps = self.DEPENDS |
312 if self.config.toolchain != 'glibc': | 310 if self.config.toolchain != 'glibc': |
313 deps = [] | 311 deps = [] |
314 bsd_pkg.CreatePkgFile(self.NAME, self.VERSION, self.config.arch, | 312 bsd_pkg.CreatePkgFile(self.NAME, self.VERSION, self.config.arch, |
315 self.GetInstallLocation(), pkg_file, deps) | 313 self.GetInstallLocation(), pkg_file, deps) |
316 | 314 |
317 | 315 |
318 def Build(self, build_deps, force=None): | 316 def Build(self, build_deps, force=None): |
319 self.CheckBuildable() | 317 self.CheckBuildable() |
320 | 318 |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
769 if os.path.isdir(package_name): | 767 if os.path.isdir(package_name): |
770 return SourcePackage(package_name, config) | 768 return SourcePackage(package_name, config) |
771 | 769 |
772 for subdir in DEFAULT_LOCATIONS: | 770 for subdir in DEFAULT_LOCATIONS: |
773 pkg_root = os.path.join(paths.NACLPORTS_ROOT, subdir, package_name) | 771 pkg_root = os.path.join(paths.NACLPORTS_ROOT, subdir, package_name) |
774 info = os.path.join(pkg_root, 'pkg_info') | 772 info = os.path.join(pkg_root, 'pkg_info') |
775 if os.path.exists(info): | 773 if os.path.exists(info): |
776 return SourcePackage(pkg_root, config) | 774 return SourcePackage(pkg_root, config) |
777 | 775 |
778 raise Error("Package not found: %s" % package_name) | 776 raise Error("Package not found: %s" % package_name) |
OLD | NEW |