# -*- python -*-
# ex: set syntax=python:

# Copyright (c) 2012 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.

# This is a buildbot configuration file containing a tagged list of files
# processed by the stage/archive scripts. The known tags are:
#
# filename: Name of the file in the build output directory.
# arch:     List of CPU architectures for which this file should be processed
#           Leave this unspecified to prcoess for all architectures.
#           Acceptable values are 64bit, 32bit and arm.
# buildtype: List of build types for which this file should be processed.
# archive: The name of the archive file to store filename in. If not specified,
#          filename is added to the default archive (e.g. platform.zip). If
#          archive == filename, filename is archived directly, not zipped.
# direct_archive: Force a file to be archived as-is, bypassing zip creation.
#                 NOTE: This flag will not apply if more than one file has the
#                 same 'archive' name, which will create a zip of all the
#                 files instead.
# filegroup: List of named groups to which this file belongs (e.g. 'symbols'
#            for symbol processing, 'tests' for running tests, etc.).
# optional: List of buildtypes for which the file might not exist, and it's not
#           considered an error.

FILES = [
  {
    'filename': 'Chromium.app',
    'buildtype': ['dev'],
  },
  {
    'filename': 'Google Chrome.app',
    'buildtype': ['official'],
  },
  {
    'filename': 'Google Chrome Packaging',
    'buildtype': ['official'],
  },
  {
    'filename': 'Google Chrome Packaging',
    'buildtype': ['official'],
    'archive': 'packaging.zip',
  },
  # PNaCl translator (archive only, component updater used for shipping).
  {
    'filename': 'pnacl',
    'buildtype': ['dev', 'official'],
    'archive': 'pnacl.zip',
  },
  # Browser tests:
  {
    'filename': 'browser_tests',
    'buildtype': ['dev', 'official'],
    'archive': 'browser_tests',
  },
  # Remoting files:
  {
    'filename': 'remoting-me2me-host-mac.zip',
    'buildtype': ['dev', 'official'],
    'archive': 'remoting-me2me-host-mac.zip',
  },
  # Symbols archive:
  {
    'filename': 'Google Chrome.dSYM.tar.bz2',
    'buildtype': ['official'],
    'archive': 'Google Chrome.dSYM.tar.bz2',
  },
  {
    'filename': 'nacl_irt_x86_64.nexe.debug',
    'buildtype': ['official'],
    'archive': 'chrome-mac-nacl-irt-syms.zip',
  },
  # Content shell files:
  {
    'filename': 'Content Shell.app',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'blink_deprecated_test_plugin.plugin',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'blink_test_plugin.plugin',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'content_shell.pak',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'icudtl.dat',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'natives_blob.bin',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'snapshot_blob.bin',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'v8_context_snapshot.bin',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'osmesa.so',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
  {
    'filename': 'resources',
    'buildtype': ['dev'],
    'archive': 'content-shell.zip',
    'optional': ['dev'],
  },
]
