def package(self, reference, package_id, only_manifest, package_all): assert(isinstance(reference, ConanFileReference)) # Package paths conan_file_path = self._paths.conanfile(reference) if package_all: if only_manifest: packages_dir = self._paths.packages(reference) else: packages_dir = self._paths.builds(reference) if not os.path.exists(packages_dir): raise NotFoundException('%s does not exist' % str(reference)) packages = [PackageReference(reference, packid) for packid in os.listdir(packages_dir)] else: packages = [PackageReference(reference, package_id)] for package_reference in packages: package_folder = self._paths.package(package_reference) # Will read current conaninfo with specified options and load conanfile with them if not only_manifest: self._user_io.out.info("Packaging %s" % package_reference.package_id) build_folder = self._paths.build(package_reference) loader = self._loader(build_folder) conanfile = loader.load_conan(conan_file_path, self._user_io.out) rmdir(package_folder) output = ScopedOutput(str(reference), self._user_io.out) packager.create_package(conanfile, build_folder, package_folder, output) else: self._user_io.out.info("Creating manifest for %s" % package_reference.package_id) if not os.path.exists(package_folder): raise NotFoundException('Package %s does not exist' % str(package_reference)) packager.generate_manifest(package_folder)
def package(self, reference, package_id, only_manifest, package_all): assert (isinstance(reference, ConanFileReference)) # Package paths conan_file_path = self._paths.conanfile(reference) if package_all: if only_manifest: packages_dir = self._paths.packages(reference) else: packages_dir = self._paths.builds(reference) if not os.path.exists(packages_dir): raise NotFoundException('%s does not exist' % str(reference)) packages = [ PackageReference(reference, packid) for packid in os.listdir(packages_dir) ] else: packages = [PackageReference(reference, package_id)] for package_reference in packages: package_folder = self._paths.package(package_reference) # Will read current conaninfo with specified options and load conanfile with them if not only_manifest: self._user_io.out.info("Packaging %s" % package_reference.package_id) build_folder = self._paths.build(package_reference) # Small fix to package for short paths, without messing with the whole thing link = os.path.join(build_folder, ".conan_link") if os.path.exists(link): build_folder = load(link) loader = self._loader(build_folder) conanfile = loader.load_conan(conan_file_path, self._user_io.out) rmdir(package_folder) output = ScopedOutput(str(reference), self._user_io.out) packager.create_package(conanfile, build_folder, package_folder, output) else: self._user_io.out.info("Creating manifest for %s" % package_reference.package_id) if not os.path.exists(package_folder): raise NotFoundException('Package %s does not exist' % str(package_reference)) packager.generate_manifest(package_folder)