Home | History | Annotate | Download | only in gyp
      1 # GYP file to build various tools.
      2 #
      3 # To build on Linux:
      4 #  ./gyp_skia tools.gyp && make tools
      5 #
      6 {
      7   'includes': [
      8     'apptype_console.gypi',
      9   ],
     10   'targets': [
     11     {
     12       # Build all executable targets defined below.
     13       'target_name': 'tools',
     14       'type': 'none',
     15       'dependencies': [
     16         'bench_pictures',
     17         'filter',
     18         'lua_pictures',
     19         'bbh_shootout',
     20         'lua_app',
     21         'pinspect',
     22         'render_pdfs',
     23         'render_pictures',
     24         'skdiff',
     25         'skpdiff',
     26         'skhello',
     27         'skimage',
     28         'test_image_decoder',
     29       ],
     30       'conditions': [
     31         ['skia_shared_lib',
     32           {
     33             'dependencies': [
     34               'sklua', # This can only be built if skia is built as a shared library
     35             ],
     36           },
     37         ],
     38       ],
     39     },
     40     {
     41       'target_name': 'skdiff',
     42       'type': 'executable',
     43       'sources': [
     44         '../tools/skdiff.cpp',
     45         '../tools/skdiff.h',
     46         '../tools/skdiff_html.cpp',
     47         '../tools/skdiff_html.h',
     48         '../tools/skdiff_main.cpp',
     49         '../tools/skdiff_utils.cpp',
     50         '../tools/skdiff_utils.h',
     51       ],
     52       'dependencies': [
     53         'skia_lib.gyp:skia_lib',
     54       ],
     55     },
     56     {
     57       'target_name': 'skpdiff',
     58       'type': 'executable',
     59       'sources': [
     60         '../tools/skpdiff/skpdiff_main.cpp',
     61         '../tools/skpdiff/SkDiffContext.cpp',
     62         '../tools/skpdiff/SkImageDiffer.cpp',
     63         '../tools/skpdiff/SkPMetric.cpp',
     64         '../tools/skpdiff/skpdiff_util.cpp',
     65         '../tools/flags/SkCommandLineFlags.cpp',
     66       ],
     67       'include_dirs': [
     68         '../tools/flags',
     69         '../src/core/', # needed for SkTLList.h
     70       ],
     71       'dependencies': [
     72         'skia_lib.gyp:skia_lib',
     73       ],
     74       'cflags': [
     75         '-O3',
     76       ],
     77       'conditions': [
     78         [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
     79           'link_settings': {
     80             'libraries': [
     81               '-lrt',
     82             ],
     83           },
     84         }],
     85         ['skia_opencl', {
     86           'sources': [
     87             '../tools/skpdiff/SkCLImageDiffer.cpp',
     88             '../tools/skpdiff/SkDifferentPixelsMetric_opencl.cpp',
     89           ],
     90           'conditions': [
     91             [ 'skia_os == "mac"', {
     92               'link_settings': {
     93                 'libraries': [
     94                   '$(SDKROOT)/System/Library/Frameworks/OpenCL.framework',
     95                 ]
     96               }
     97             }, {
     98               'link_settings': {
     99                 'libraries': [
    100                   '-lOpenCL',
    101                 ],
    102               },
    103             }],
    104           ],
    105         }, { # !skia_opencl
    106           'sources': [
    107             '../tools/skpdiff/SkDifferentPixelsMetric_cpu.cpp',
    108           ],
    109         }],
    110       ],
    111     },
    112     {
    113       'target_name': 'skimagediff',
    114       'type': 'executable',
    115       'sources': [
    116         '../tools/skdiff.cpp',
    117         '../tools/skdiff.h',
    118         '../tools/skdiff_html.cpp',
    119         '../tools/skdiff_html.h',
    120         '../tools/skdiff_image.cpp',
    121         '../tools/skdiff_utils.cpp',
    122         '../tools/skdiff_utils.h',
    123       ],
    124       'dependencies': [
    125         'skia_lib.gyp:skia_lib',
    126       ],
    127     },
    128     {
    129       'target_name': 'skhello',
    130       'type': 'executable',
    131       'dependencies': [
    132         'skia_lib.gyp:skia_lib',
    133       ],
    134       'conditions': [
    135         [ 'skia_os == "nacl"', {
    136           'sources': [
    137             '../platform_tools/nacl/src/nacl_hello.cpp',
    138           ],
    139         }, {
    140           'sources': [
    141             '../tools/skhello.cpp',
    142           ],
    143           'dependencies': [
    144             'flags.gyp:flags',
    145             'pdf.gyp:pdf',
    146           ],
    147         }],
    148       ],
    149     },
    150     {
    151       'target_name': 'skimage',
    152       'type': 'executable',
    153       'sources': [
    154         '../tools/skimage_main.cpp',
    155       ],
    156       'include_dirs': [
    157         # For SkBitmapHasher.h
    158         '../src/utils/',
    159       ],
    160       'dependencies': [
    161         'flags.gyp:flags',
    162         'gm.gyp:gm_expectations',
    163         'jsoncpp.gyp:jsoncpp',
    164         'skia_lib.gyp:skia_lib',
    165         'utils.gyp:utils',
    166       ],
    167     },
    168 
    169     {
    170       'target_name': 'lua_app',
    171       'type': 'executable',
    172       'sources': [
    173         '../tools/lua/lua_app.cpp',
    174         '../src/utils/SkLua.cpp',
    175       ],
    176       'dependencies': [
    177         'effects.gyp:effects',
    178         'images.gyp:images',
    179         'lua.gyp:lua',
    180         'pdf.gyp:pdf',
    181         'ports.gyp:ports',
    182         'skia_lib.gyp:skia_lib',
    183         'utils.gyp:utils',
    184       ],
    185     },
    186     {
    187       'target_name': 'lua_pictures',
    188       'type': 'executable',
    189       'sources': [
    190         '../tools/lua/lua_pictures.cpp',
    191         '../src/utils/SkLuaCanvas.cpp',
    192         '../src/utils/SkLua.cpp',
    193       ],
    194       'dependencies': [
    195         'effects.gyp:effects',
    196         'flags.gyp:flags',
    197         'images.gyp:images',
    198         'lua.gyp:lua',
    199         'tools.gyp:picture_renderer',
    200         'tools.gyp:picture_utils',
    201         'pdf.gyp:pdf',
    202         'ports.gyp:ports',
    203         'skia_lib.gyp:skia_lib',
    204         'utils.gyp:utils',
    205       ],
    206     },
    207     {
    208       'target_name': 'render_pictures',
    209       'type': 'executable',
    210       'sources': [
    211         '../tools/render_pictures_main.cpp',
    212       ],
    213       'include_dirs': [
    214         '../src/core',
    215         '../src/images',
    216         '../src/lazy',
    217         '../src/pipe/utils/',
    218       ],
    219       'dependencies': [
    220         'flags.gyp:flags',
    221         'skia_lib.gyp:skia_lib',
    222         'tools.gyp:picture_renderer',
    223         'tools.gyp:picture_utils',
    224       ],
    225     },
    226     {
    227       'target_name': 'bench_pictures',
    228       'type': 'executable',
    229       'sources': [
    230         '../bench/SkBenchLogger.h',
    231         '../bench/SkBenchLogger.cpp',
    232         '../bench/TimerData.h',
    233         '../bench/TimerData.cpp',
    234         '../tools/bench_pictures_main.cpp',
    235         '../tools/PictureBenchmark.cpp',
    236       ],
    237       'include_dirs': [
    238         '../src/core/',
    239         '../bench',
    240         '../src/lazy/',
    241       ],
    242       'dependencies': [
    243         'bench.gyp:bench_timer',
    244         'flags.gyp:flags',
    245         'skia_lib.gyp:skia_lib',
    246         'tools.gyp:picture_utils',
    247         'tools.gyp:picture_renderer',
    248       ],
    249     },
    250     {
    251       'target_name': 'picture_renderer',
    252       'type': 'static_library',
    253       'sources': [
    254         '../tools/LazyDecodeBitmap.cpp',
    255         '../tools/PictureRenderer.h',
    256         '../tools/PictureRenderer.cpp',
    257         '../tools/PictureRenderingFlags.h',
    258         '../tools/PictureRenderingFlags.cpp',
    259         '../tools/CopyTilesRenderer.h',
    260         '../tools/CopyTilesRenderer.cpp',
    261         '../src/pipe/utils/SamplePipeControllers.h',
    262         '../src/pipe/utils/SamplePipeControllers.cpp',
    263       ],
    264       'include_dirs': [
    265         '../src/core',
    266         '../src/images',
    267         '../src/lazy',
    268         '../src/pipe/utils/',
    269         '../src/utils/',
    270       ],
    271       'direct_dependent_settings': {
    272         'include_dirs': [
    273           # needed for JSON headers used within PictureRenderer.h
    274           '../third_party/externals/jsoncpp-chromium/overrides/include/',
    275           '../third_party/externals/jsoncpp/include/',
    276         ],
    277       },
    278       'dependencies': [
    279         'flags.gyp:flags',
    280         'jsoncpp.gyp:jsoncpp',
    281         'skia_lib.gyp:skia_lib',
    282         'tools.gyp:picture_utils',
    283       ],
    284       'conditions': [
    285         ['skia_gpu == 1',
    286           {
    287             'include_dirs' : [
    288               '../src/gpu',
    289             ],
    290           },
    291         ],
    292       ],
    293     },
    294     {
    295       'target_name': 'render_pdfs',
    296       'type': 'executable',
    297       'sources': [
    298         '../tools/render_pdfs_main.cpp',
    299         '../tools/PdfRenderer.cpp',
    300         '../tools/PdfRenderer.h',
    301       ],
    302       'include_dirs': [
    303         '../src/pipe/utils/',
    304         '../src/utils/',
    305       ],
    306       'dependencies': [
    307         'pdf.gyp:pdf',
    308         'skia_lib.gyp:skia_lib',
    309         'tools.gyp:picture_utils',
    310       ],
    311       'conditions': [
    312         ['skia_win_debuggers_path and skia_os == "win"',
    313           {
    314             'dependencies': [
    315               'tools.gyp:win_dbghelp',
    316             ],
    317           },
    318         ],
    319         # VS static libraries don't have a linker option. We must set a global
    320         # project linker option, or add it to each executable.
    321         ['skia_win_debuggers_path and skia_os == "win" and '
    322          'skia_arch_width == 64',
    323           {
    324             'msvs_settings': {
    325               'VCLinkerTool': {
    326                 'AdditionalDependencies': [
    327                   '<(skia_win_debuggers_path)/x64/DbgHelp.lib',
    328                 ],
    329               },
    330             },
    331           },
    332         ],
    333         ['skia_win_debuggers_path and skia_os == "win" and '
    334          'skia_arch_width == 32',
    335           {
    336             'msvs_settings': {
    337               'VCLinkerTool': {
    338                 'AdditionalDependencies': [
    339                   '<(skia_win_debuggers_path)/DbgHelp.lib',
    340                 ],
    341               },
    342             },
    343           },
    344         ],
    345       ],
    346     },
    347     {
    348       'target_name': 'picture_utils',
    349       'type': 'static_library',
    350       'sources': [
    351         '../tools/picture_utils.cpp',
    352         '../tools/picture_utils.h',
    353       ],
    354       'dependencies': [
    355         'skia_lib.gyp:skia_lib',
    356       ],
    357       'direct_dependent_settings': {
    358         'include_dirs': [
    359         '../tools/',
    360         ],
    361       },
    362     },
    363     {
    364       'target_name': 'pinspect',
    365       'type': 'executable',
    366       'sources': [
    367         '../tools/pinspect.cpp',
    368       ],
    369       'dependencies': [
    370         'flags.gyp:flags',
    371         'skia_lib.gyp:skia_lib',
    372         'tools.gyp:picture_renderer',
    373       ],
    374     },
    375     {
    376       'target_name': 'bbh_shootout',
    377       'type': 'executable',
    378       'include_dirs': [
    379         '../bench',
    380         '../tools/'
    381       ],
    382       'sources': [
    383         '../tools/bbh_shootout.cpp',
    384 
    385         # Bench code:
    386         '../bench/TimerData.h',
    387         '../bench/TimerData.cpp',
    388       ],
    389       'dependencies': [
    390         'bench.gyp:bench_timer',
    391         'flags.gyp:flags',
    392         'skia_lib.gyp:skia_lib',
    393         'tools.gyp:picture_renderer',
    394         'tools.gyp:picture_utils',
    395       ],
    396     },
    397     {
    398       'target_name': 'filter',
    399       'type': 'executable',
    400       'include_dirs' : [
    401         '../src/core',
    402         '../src/utils/debugger',
    403       ],
    404       'sources': [
    405         '../tools/filtermain.cpp',
    406         '../tools/path_utils.h',
    407         '../tools/path_utils.cpp',
    408         '../src/utils/debugger/SkDrawCommand.h',
    409         '../src/utils/debugger/SkDrawCommand.cpp',
    410         '../src/utils/debugger/SkDebugCanvas.h',
    411         '../src/utils/debugger/SkDebugCanvas.cpp',
    412         '../src/utils/debugger/SkObjectParser.h',
    413         '../src/utils/debugger/SkObjectParser.cpp',
    414       ],
    415       'dependencies': [
    416         'skia_lib.gyp:skia_lib',
    417         'tools.gyp:picture_utils',
    418       ],
    419     },
    420     {
    421       'target_name': 'test_image_decoder',
    422       'type': 'executable',
    423       'sources': [
    424         '../tools/test_image_decoder.cpp',
    425       ],
    426       'dependencies': [
    427         'skia_lib.gyp:skia_lib',
    428       ],
    429     },
    430   ],
    431   'conditions': [
    432     ['skia_shared_lib',
    433       {
    434         'targets': [
    435           {
    436             'target_name': 'sklua',
    437             'product_name': 'skia',
    438             'product_prefix': '',
    439             'product_dir': '<(PRODUCT_DIR)/',
    440             'type': 'shared_library',
    441             'sources': [
    442               '../src/utils/SkLuaCanvas.cpp',
    443               '../src/utils/SkLua.cpp',
    444             ],
    445             'include_dirs': [
    446               '../third_party/lua/src/',
    447             ],
    448             'dependencies': [
    449               'lua.gyp:lua',
    450               'pdf.gyp:pdf',
    451               'skia_lib.gyp:skia_lib',
    452             ],
    453             'conditions': [
    454               ['skia_os != "win"',
    455                 {
    456                   'ldflags': [
    457                     '-Wl,-rpath,\$$ORIGIN,--enable-new-dtags',
    458                   ],
    459                 },
    460               ],
    461             ],
    462           },
    463         ],
    464       },
    465     ],
    466     ['skia_win_debuggers_path and skia_os == "win"',
    467       {
    468         'targets': [
    469           {
    470             'target_name': 'win_dbghelp',
    471             'type': 'static_library',
    472             'defines': [
    473               'SK_CDB_PATH="<(skia_win_debuggers_path)"',
    474             ],
    475             'sources': [
    476               '../tools/win_dbghelp.h',
    477               '../tools/win_dbghelp.cpp',
    478             ],
    479           },
    480         ],
    481       },
    482     ],
    483     ['skia_os == "win"',
    484       {
    485         'targets': [
    486           {
    487             'target_name': 'win_lcid',
    488             'type': 'executable',
    489             'sources': [
    490               '../tools/win_lcid.cpp',
    491             ],
    492           },
    493         ],
    494       },
    495     ],
    496   ],
    497 }
    498