# Copyright 2015 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
  'variables': {
    'skia_warnings_as_errors': 0,
    'conditions': [
      [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
        # Use the systemwide Qt libs by default
        'variables': {
          'qt_sdk%': '/usr',
        },
        'qt_sdk': '<(qt_sdk)',
        'qt_moc%': 'moc',
        'qt_includes': [
          '<(qt_sdk)/include',
          '<(qt_sdk)/include/QtCore',
          '<(qt_sdk)/include/QtGui',
          '<(qt_sdk)/include/QtOpenGL',

          # Systemwide Qt libs are not contained under a single tree,
          # so we're adding package-qualified paths as a fallback.
          '<(qt_sdk)/include/qt4',
          '<(qt_sdk)/include/qt4/QtCore',
          '<(qt_sdk)/include/qt4/QtGui',
          '<(qt_sdk)/include/qt4/QtOpenGL',
        ],
        'qt_libs': [
          '-lQtCore',
          '-lQtGui',
          '-lQtOpenGL'
        ],
      }],
      [ 'skia_os == "mac"', {
        # Use the systemwide Qt libs by default
        'variables': {
          'qt_sdk%': '/Library/Frameworks',
        },
        'qt_sdk': '<(qt_sdk)',
        'qt_moc%': 'moc',
        'qt_includes': [
          '<(qt_sdk)/QtCore.framework/Headers/',
          '<(qt_sdk)/QtGui.framework/Headers/',
          '<(qt_sdk)/QtOpenGL.framework/Headers/',
        ],
        'qt_libs': [
          '<(qt_sdk)/QtCore.framework',
          '<(qt_sdk)/QtGui.framework',
          '<(qt_sdk)/QtOpenGL.framework',
        ],
      }],
      [ 'skia_os == "win"', {
        'variables': {
          # This is the default location for the version of Qt current on 10/11/12
          'qt_sdk%': 'C:/Qt/4.8.3/',
        },
        'qt_sdk': '<(qt_sdk)',
        'qt_moc%': '<(qt_sdk)/bin/moc',
        'qt_includes': [
          '<(qt_sdk)/include',
          '<(qt_sdk)/include/QtCore',
          '<(qt_sdk)/include/QtGui',
          '<(qt_sdk)/include/QtOpenGL',
        ],
        'qt_libs': [
          '<(qt_sdk)/lib/QtCore4.lib',
          '<(qt_sdk)/lib/QtGui4.lib',
          '<(qt_sdk)/lib/QtOpenGL4.lib',
        ],
      }],
    ],
    'moc_src_dir': '../debugger/QT',
    'moc_gen_dir': '<(SHARED_INTERMEDIATE_DIR)/debugger/QT',
  },
  'targets': [
    {
      'target_name': 'debugger',
      'type': 'executable',
      'mac_bundle': 1,
      'mac_framework_dirs': [
        '/Library/Frameworks',
      ],
      'include_dirs' : [
        '../include/private',
        '../src/core',
        '../tools/debugger',
        '../debugger',      # To pull SkDebugger.h
        '../src/gpu',       # To pull gl/GrGLUtil.h
        '../src/ports',     # To pull SkFontDescriptor.h
        '../bench',
        '../tools',
        '../debugger/QT',   # For all the QT UI Goodies
        '<@(qt_includes)',
      ],
      'sources': [
        '../debugger/SkDebugger.cpp',
        '../tools/debugger/SkDebugCanvas.h',
        '../tools/debugger/SkDebugCanvas.cpp',
        '../tools/debugger/SkDrawCommand.h',
        '../tools/debugger/SkDrawCommand.cpp',
        '../tools/debugger/SkObjectParser.h',
        '../tools/debugger/SkObjectParser.cpp',
        '../tools/debugger/SkOverdrawMode.h',
        '../tools/debugger/SkOverdrawMode.cpp',
        '../debugger/debuggermain.cpp',
        '../debugger/QT/SkDebuggerGUI.cpp',
        '../debugger/QT/SkDebuggerGUI.h',
        '../debugger/QT/SkDrawCommandGeometryWidget.h',
        '../debugger/QT/SkDrawCommandGeometryWidget.cpp',
        '../debugger/QT/SkCanvasWidget.cpp',
        '../debugger/QT/SkCanvasWidget.h',
        '../debugger/QT/SkInspectorWidget.h',
        '../debugger/QT/SkInspectorWidget.cpp',
        '../debugger/QT/SkListWidget.h',
        '../debugger/QT/SkListWidget.cpp',
        '../debugger/QT/SkSettingsWidget.h',
        '../debugger/QT/SkSettingsWidget.cpp',
        '../debugger/QT/SkGLWidget.h',
        '../debugger/QT/SkGLWidget.cpp',
        '../debugger/QT/SkRasterWidget.h',
        '../debugger/QT/SkRasterWidget.cpp',

        # To update this file edit SkIcons.qrc and rerun rcc to generate cpp
        '../debugger/QT/qrc_SkIcons.cpp',

        # Generated MOC files
        '<(moc_gen_dir)/moc_SkCanvasWidget.cpp',
        '<(moc_gen_dir)/moc_SkDebuggerGUI.cpp',
        '<(moc_gen_dir)/moc_SkDrawCommandGeometryWidget.cpp',
        '<(moc_gen_dir)/moc_SkInspectorWidget.cpp',
        '<(moc_gen_dir)/moc_SkSettingsWidget.cpp',
        '<(moc_gen_dir)/moc_SkRasterWidget.cpp',
        '<(moc_gen_dir)/moc_SkGLWidget.cpp',
      ],
      'dependencies': [
        'debugger_qt_mocs',
        'skia_lib.gyp:skia_lib',
        'jsoncpp.gyp:jsoncpp',
        'tools.gyp:url_data_manager',
      ],
      'cflags': [
        # Clang gets confused by QWeakPointer, see http://llvm.org/bugs/show_bug.cgi?id=13127
        '-Wno-uninitialized',
      ],
      'link_settings': {
        'libraries': [
          '<@(qt_libs)',
        ],
      },
    },
    {
      'target_name': 'debugger_qt_mocs',
      'type': 'none',
      'sources': [
        '<(moc_src_dir)/SkCanvasWidget.h',
        '<(moc_src_dir)/SkDebuggerGUI.h',
        '<(moc_src_dir)/SkDrawCommandGeometryWidget.h',
        '<(moc_src_dir)/SkInspectorWidget.h',
        '<(moc_src_dir)/SkSettingsWidget.h',
        '<(moc_src_dir)/SkRasterWidget.h',
        '<(moc_src_dir)/SkGLWidget.h',
      ],
      'rules': [
        {
          'rule_name': 'generate_moc',
          'extension': 'h',
          'outputs': [ '<(moc_gen_dir)/moc_<(RULE_INPUT_ROOT).cpp' ],
          'action': [ '<(qt_moc)', '-DSK_SUPPORT_GPU=<(skia_gpu)',
                      '<(RULE_INPUT_PATH)',
                      '-o', '<(moc_gen_dir)/moc_<(RULE_INPUT_ROOT).cpp' ],
          'message': 'Generating <(RULE_INPUT_ROOT).cpp.',
        },
      ],
    },
  ],
}