#!/usr/bin/python
# Copyright (c) 2011 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.
# based on an almost identical script by: jyrki@google.com (Jyrki Alakuijala)
#
# This script prints out include dependencies in chrome. Since it ignores
# defines, it gives just a rough estimation of file size.
#
# Usage:
#   python tools/include_tracer.py chrome/browser/ui/browser.h

import os
import sys

# Created by copying the command line for prerender_browsertest.cc, replacing
# spaces with newlines, and dropping everything except -F and -I switches.
# TODO(port): Add windows, linux directories.
INCLUDE_PATHS = [
  '',
  'gpu',
  'skia/config',
  'skia/ext',
  'testing/gmock/include',
  'testing/gtest/include',
  'third_party/GTM',
  'third_party/WebKit/Source',
  'third_party/WebKit/Source/JavaScriptCore',
  'third_party/WebKit/Source/JavaScriptCore/wtf',
  'third_party/WebKit/Source/ThirdParty/glu',
  'third_party/WebKit/Source/WebCore',
  'third_party/WebKit/Source/WebCore/accessibility',
  'third_party/WebKit/Source/WebCore/accessibility/chromium',
  'third_party/WebKit/Source/WebCore/bindings',
  'third_party/WebKit/Source/WebCore/bindings/generic',
  'third_party/WebKit/Source/WebCore/bindings/v8',
  'third_party/WebKit/Source/WebCore/bindings/v8/custom',
  'third_party/WebKit/Source/WebCore/bindings/v8/specialization',
  'third_party/WebKit/Source/WebCore/bridge',
  'third_party/WebKit/Source/WebCore/bridge/jni',
  'third_party/WebKit/Source/WebCore/bridge/jni/v8',
  'third_party/WebKit/Source/WebCore/css',
  'third_party/WebKit/Source/WebCore/dom',
  'third_party/WebKit/Source/WebCore/dom/default',
  'third_party/WebKit/Source/WebCore/editing',
  'third_party/WebKit/Source/WebCore/fileapi',
  'third_party/WebKit/Source/WebCore/history',
  'third_party/WebKit/Source/WebCore/html',
  'third_party/WebKit/Source/WebCore/html/canvas',
  'third_party/WebKit/Source/WebCore/html/parser',
  'third_party/WebKit/Source/WebCore/html/shadow',
  'third_party/WebKit/Source/WebCore/inspector',
  'third_party/WebKit/Source/WebCore/loader',
  'third_party/WebKit/Source/WebCore/loader/appcache',
  'third_party/WebKit/Source/WebCore/loader/archive',
  'third_party/WebKit/Source/WebCore/loader/cache',
  'third_party/WebKit/Source/WebCore/loader/icon',
  'third_party/WebKit/Source/WebCore/mathml',
  'third_party/WebKit/Source/WebCore/notifications',
  'third_party/WebKit/Source/WebCore/page',
  'third_party/WebKit/Source/WebCore/page/animation',
  'third_party/WebKit/Source/WebCore/page/chromium',
  'third_party/WebKit/Source/WebCore/platform',
  'third_party/WebKit/Source/WebCore/platform/animation',
  'third_party/WebKit/Source/WebCore/platform/audio',
  'third_party/WebKit/Source/WebCore/platform/audio/chromium',
  'third_party/WebKit/Source/WebCore/platform/audio/mac',
  'third_party/WebKit/Source/WebCore/platform/chromium',
  'third_party/WebKit/Source/WebCore/platform/cocoa',
  'third_party/WebKit/Source/WebCore/platform/graphics',
  'third_party/WebKit/Source/WebCore/platform/graphics/cg',
  'third_party/WebKit/Source/WebCore/platform/graphics/chromium',
  'third_party/WebKit/Source/WebCore/platform/graphics/cocoa',
  'third_party/WebKit/Source/WebCore/platform/graphics/filters',
  'third_party/WebKit/Source/WebCore/platform/graphics/gpu',
  'third_party/WebKit/Source/WebCore/platform/graphics/mac',
  'third_party/WebKit/Source/WebCore/platform/graphics/opentype',
  'third_party/WebKit/Source/WebCore/platform/graphics/skia',
  'third_party/WebKit/Source/WebCore/platform/graphics/transforms',
  'third_party/WebKit/Source/WebCore/platform/image-decoders',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/bmp',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/gif',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/ico',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/jpeg',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/png',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/skia',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/webp',
  'third_party/WebKit/Source/WebCore/platform/image-decoders/xbm',
  'third_party/WebKit/Source/WebCore/platform/image-encoders/skia',
  'third_party/WebKit/Source/WebCore/platform/mac',
  'third_party/WebKit/Source/WebCore/platform/mock',
  'third_party/WebKit/Source/WebCore/platform/network',
  'third_party/WebKit/Source/WebCore/platform/network/chromium',
  'third_party/WebKit/Source/WebCore/platform/sql',
  'third_party/WebKit/Source/WebCore/platform/text',
  'third_party/WebKit/Source/WebCore/platform/text/mac',
  'third_party/WebKit/Source/WebCore/platform/text/transcoder',
  'third_party/WebKit/Source/WebCore/plugins',
  'third_party/WebKit/Source/WebCore/plugins/chromium',
  'third_party/WebKit/Source/WebCore/rendering',
  'third_party/WebKit/Source/WebCore/rendering/style',
  'third_party/WebKit/Source/WebCore/rendering/svg',
  'third_party/WebKit/Source/WebCore/storage',
  'third_party/WebKit/Source/WebCore/storage/chromium',
  'third_party/WebKit/Source/WebCore/svg',
  'third_party/WebKit/Source/WebCore/svg/animation',
  'third_party/WebKit/Source/WebCore/svg/graphics',
  'third_party/WebKit/Source/WebCore/svg/graphics/filters',
  'third_party/WebKit/Source/WebCore/svg/properties',
  'third_party/WebKit/Source/WebCore/webaudio',
  'third_party/WebKit/Source/WebCore/websockets',
  'third_party/WebKit/Source/WebCore/workers',
  'third_party/WebKit/Source/WebCore/xml',
  'third_party/WebKit/Source/WebKit/chromium/public',
  'third_party/WebKit/Source/WebKit/chromium/src',
  'third_party/WebKit/Source/WebKit/mac/WebCoreSupport',
  'third_party/WebKit/WebKitLibraries',
  'third_party/cld',
  'third_party/icu/public/common',
  'third_party/icu/public/i18n',
  'third_party/npapi',
  'third_party/npapi/bindings',
  'third_party/protobuf',
  'third_party/protobuf/src',
  'third_party/skia/gpu/include',
  'third_party/skia/include/config',
  'third_party/skia/include/core',
  'third_party/skia/include/effects',
  'third_party/skia/include/gpu',
  'third_party/skia/include/pdf',
  'third_party/skia/include/ports',
  'v8/include',
  'xcodebuild/Debug/include',
  'xcodebuild/DerivedSources/Debug/chrome',
  'xcodebuild/DerivedSources/Debug/policy',
  'xcodebuild/DerivedSources/Debug/protoc_out',
  'xcodebuild/DerivedSources/Debug/webkit',
  'xcodebuild/DerivedSources/Debug/webkit/bindings',
]


def Walk(seen, filename, parent, indent):
  """Returns the size of |filename| plus the size of all files included by
  |filename| and prints the include tree of |filename| to stdout. Every file
  is visited at most once.
  """
  total_bytes = 0

  # .proto(devel) filename translation
  if filename.endswith('.pb.h'):
    basename = filename[:-5]
    if os.path.exists(basename + '.proto'):
      filename = basename + '.proto'
    else:
      print 'could not find ', filename

  # Show and count files only once.
  if filename in seen:
    return total_bytes
  seen.add(filename)

  # Display the paths.
  print ' ' * indent + filename

  # Skip system includes.
  if filename[0] == '<':
    return total_bytes

  # Find file in all include paths.
  resolved_filename = filename
  for root in INCLUDE_PATHS + [os.path.dirname(parent)]:
    if os.path.exists(os.path.join(root, filename)):
      resolved_filename = os.path.join(root, filename)
      break

  # Recurse.
  if os.path.exists(resolved_filename):
    lines = open(resolved_filename).readlines()
  else:
    print ' ' * (indent + 2) + "-- not found"
    lines = []
  for line in lines:
    line = line.strip()
    if line.startswith('#include "'):
      total_bytes += Walk(
          seen, line.split('"')[1], resolved_filename, indent + 2)
    elif line.startswith('#include '):
      include = '<' + line.split('<')[1].split('>')[0] + '>'
      total_bytes += Walk(
          seen, include, resolved_filename, indent + 2)
    elif line.startswith('import '):
      total_bytes += Walk(
          seen, line.split('"')[1], resolved_filename, indent + 2)
  return total_bytes + len("".join(lines))


bytes = Walk(set(), sys.argv[1], '', 0)
print
print float(bytes) / (1 << 20), "megabytes of chrome source"
