# Additional handling of transfer files.
# target: Target location relative to the target release directory. This
#     value is required.
# source: Source location relative to the CEF root directory. This value
#     is optional. If specified the source file will be copied to the target
#     location and a TRANSFER-README.txt file will be created.
# post-process: Post-processing operation to perform. This value is
#     optional and may be any one of the following:
#   'normalize_headers': Replace fully-qualified project header paths with
#     the optionally specified 'new_header_path' value.

[
  {
    'source' : '../build/win/compatibility.manifest',
    'target' : 'tests/cefclient/resources/win/compatibility.manifest',
  },
  {
    'source' : '../build/win/compatibility.manifest',
    'target' : 'tests/cefsimple/compatibility.manifest',
  },
  {
    'source' : '../build/win/compatibility.manifest',
    'target' : 'tests/ceftests/resources/win/compatibility.manifest',
  },
]
