| # GYP file to build various tools. |
| # |
| # To build on Linux: |
| # ./gyp_skia tools.gyp && make tools |
| # |
| { |
| 'includes': [ |
| 'apptype_console.gypi', |
| ], |
| 'targets': [ |
| { |
| # Build all executable targets defined below. |
| 'target_name': 'tools', |
| 'type': 'none', |
| 'dependencies': [ |
| 'bbh_shootout', |
| 'bench_pictures', |
| 'bench_record', |
| 'bench_playback', |
| 'dump_record', |
| 'filter', |
| 'gpuveto', |
| 'lua_app', |
| 'lua_pictures', |
| 'pinspect', |
| 'render_pdfs', |
| 'render_pictures', |
| 'skdiff', |
| 'skhello', |
| 'skpdiff', |
| 'skpinfo', |
| 'skpmaker', |
| 'skimage', |
| 'test_image_decoder', |
| ], |
| 'conditions': [ |
| ['skia_shared_lib', |
| { |
| 'dependencies': [ |
| 'sklua', # This can only be built if skia is built as a shared library |
| ], |
| }, |
| ], |
| ], |
| }, |
| { # This would go in gm.gyp, but it's also used by skimage below. |
| 'target_name': 'gm_expectations', |
| 'type': 'static_library', |
| 'include_dirs' : [ '../src/utils/' ], |
| 'sources': [ |
| '../gm/gm_expectations.cpp', |
| ], |
| 'dependencies': [ |
| 'jsoncpp.gyp:jsoncpp', |
| 'sk_tool_utils', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ '../gm/' ], |
| }, |
| }, |
| { |
| 'target_name': 'crash_handler', |
| 'type': 'static_library', |
| 'sources': [ '../tools/CrashHandler.cpp' ], |
| 'dependencies': [ 'skia_lib.gyp:skia_lib' ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ '../tools' ], |
| }, |
| 'all_dependent_settings': { |
| 'msvs_settings': { |
| 'VCLinkerTool': { |
| 'AdditionalDependencies': [ 'Dbghelp.lib' ], |
| } |
| }, |
| } |
| }, |
| { |
| 'target_name': 'resources', |
| 'type': 'static_library', |
| 'sources': [ '../tools/Resources.cpp' ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ '../tools', ], |
| }, |
| }, |
| { |
| 'target_name': 'sk_tool_utils', |
| 'type': 'static_library', |
| 'sources': [ |
| '../tools/sk_tool_utils.cpp', |
| '../tools/sk_tool_utils_font.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/fonts', |
| ], |
| 'dependencies': [ |
| 'resources', |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ '../tools', ], |
| }, |
| }, |
| { |
| 'target_name' : 'timer', |
| 'type': 'static_library', |
| 'sources': [ |
| '../tools/timer/Timer.cpp', |
| '../tools/timer/TimerData.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| '../src/gpu', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': ['../tools/timer'], |
| }, |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| 'jsoncpp.gyp:jsoncpp', |
| ], |
| 'conditions': [ |
| ['skia_gpu == 1', { |
| 'sources': [ '../tools/timer/GpuTimer.cpp' ], |
| }], |
| [ 'skia_os in ["mac", "ios"]', { |
| 'sources': [ '../tools/timer/SysTimer_mach.cpp' ], |
| }], |
| [ 'skia_os == "win"', { |
| 'sources': [ '../tools/timer/SysTimer_windows.cpp' ], |
| }], |
| [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "android", "chromeos"]', { |
| 'sources': [ '../tools/timer/SysTimer_posix.cpp' ], |
| }], |
| [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', { |
| 'link_settings': { 'libraries': [ '-lrt' ] }, |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'skdiff', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skdiff.cpp', |
| '../tools/skdiff.h', |
| '../tools/skdiff_html.cpp', |
| '../tools/skdiff_html.h', |
| '../tools/skdiff_main.cpp', |
| '../tools/skdiff_utils.cpp', |
| '../tools/skdiff_utils.h', |
| ], |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'skpdiff', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skpdiff/skpdiff_main.cpp', |
| '../tools/skpdiff/SkDiffContext.cpp', |
| '../tools/skpdiff/SkImageDiffer.cpp', |
| '../tools/skpdiff/SkPMetric.cpp', |
| '../tools/skpdiff/skpdiff_util.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', # needed for SkTLList.h |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'cflags': [ |
| '-O3', |
| ], |
| 'conditions': [ |
| [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', { |
| 'link_settings': { |
| 'libraries': [ |
| '-lrt', |
| ], |
| }, |
| }], |
| ['skia_opencl', { |
| 'sources': [ |
| '../tools/skpdiff/SkCLImageDiffer.cpp', |
| '../tools/skpdiff/SkDifferentPixelsMetric_opencl.cpp', |
| ], |
| 'conditions': [ |
| [ 'skia_os == "mac"', { |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/OpenCL.framework', |
| ] |
| } |
| }, { |
| 'link_settings': { |
| 'libraries': [ |
| '-lOpenCL', |
| ], |
| }, |
| }], |
| ], |
| }, { # !skia_opencl |
| 'sources': [ |
| '../tools/skpdiff/SkDifferentPixelsMetric_cpu.cpp', |
| ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'skpmaker', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skpmaker.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'skimagediff', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skdiff.cpp', |
| '../tools/skdiff.h', |
| '../tools/skdiff_html.cpp', |
| '../tools/skdiff_html.h', |
| '../tools/skdiff_image.cpp', |
| '../tools/skdiff_utils.cpp', |
| '../tools/skdiff_utils.h', |
| ], |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'skhello', |
| 'type': 'executable', |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'conditions': [ |
| [ 'skia_os == "nacl"', { |
| 'sources': [ |
| '../platform_tools/nacl/src/nacl_hello.cpp', |
| ], |
| }, { |
| 'sources': [ |
| '../tools/skhello.cpp', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'pdf.gyp:pdf', |
| ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'skimage', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skimage_main.cpp', |
| ], |
| 'include_dirs': [ |
| # For SkBitmapHasher.h |
| '../src/utils/', |
| '../tools/', |
| ], |
| 'dependencies': [ |
| 'gm_expectations', |
| 'flags.gyp:flags', |
| 'jsoncpp.gyp:jsoncpp', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'skpinfo', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/skpinfo.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'gpuveto', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/gpuveto.cpp', |
| '../tools/LazyDecodeBitmap.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| '../src/images', |
| '../src/lazy', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'lua_app', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/lua/lua_app.cpp', |
| '../src/utils/SkLua.cpp', |
| ], |
| 'include_dirs': [ |
| # Lua exposes GrReduceClip which in turn requires src/core for SkTLList |
| '../src/gpu/', |
| '../src/core/', |
| ], |
| 'dependencies': [ |
| 'effects.gyp:effects', |
| 'images.gyp:images', |
| 'lua.gyp:lua', |
| 'pdf.gyp:pdf', |
| 'ports.gyp:ports', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'lua_pictures', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/lua/lua_pictures.cpp', |
| '../src/utils/SkLuaCanvas.cpp', |
| '../src/utils/SkLua.cpp', |
| ], |
| 'include_dirs': [ |
| # Lua exposes GrReduceClip which in turn requires src/core for SkTLList |
| '../src/gpu/', |
| '../src/core/', |
| ], |
| 'dependencies': [ |
| 'effects.gyp:effects', |
| 'flags.gyp:flags', |
| 'images.gyp:images', |
| 'lua.gyp:lua', |
| 'tools.gyp:picture_renderer', |
| 'tools.gyp:picture_utils', |
| 'pdf.gyp:pdf', |
| 'ports.gyp:ports', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'render_pictures', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/render_pictures_main.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| '../src/images', |
| '../src/lazy', |
| '../src/pipe/utils/', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_renderer', |
| 'tools.gyp:picture_utils', |
| ], |
| }, |
| { |
| 'target_name': 'bench_pictures', |
| 'type': 'executable', |
| 'sources': [ |
| '../bench/BenchLogger.cpp', |
| '../bench/BenchLogger.h', |
| '../bench/ResultsWriter.cpp', |
| '../tools/PictureBenchmark.cpp', |
| '../tools/PictureResultsWriter.h', |
| '../tools/bench_pictures_main.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| '../bench', |
| '../src/lazy/', |
| ], |
| 'dependencies': [ |
| 'timer', |
| 'crash_handler', |
| 'flags.gyp:flags', |
| 'jsoncpp.gyp:jsoncpp', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_renderer', |
| 'tools.gyp:picture_utils', |
| ], |
| 'conditions': [ |
| ['skia_android_framework == 1', { |
| 'libraries': [ '-lskia' ], |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'bench_record', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/bench_record.cpp', |
| '../tools/LazyDecodeBitmap.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| '../src/images', |
| '../src/lazy', |
| ], |
| 'dependencies': [ |
| 'timer', |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'bench_playback', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/bench_playback.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| '../src/images', |
| ], |
| 'dependencies': [ |
| 'timer', |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'dump_record', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/dump_record.cpp', |
| '../tools/DumpRecord.cpp', |
| '../tools/LazyDecodeBitmap.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core/', |
| '../src/images', |
| '../src/lazy', |
| ], |
| 'dependencies': [ |
| 'timer', |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| { |
| 'target_name': 'picture_renderer', |
| 'type': 'static_library', |
| 'sources': [ |
| '../tools/image_expectations.h', |
| '../tools/image_expectations.cpp', |
| '../tools/LazyDecodeBitmap.cpp', |
| '../tools/PictureRenderer.h', |
| '../tools/PictureRenderer.cpp', |
| '../tools/PictureRenderingFlags.h', |
| '../tools/PictureRenderingFlags.cpp', |
| '../tools/CopyTilesRenderer.h', |
| '../tools/CopyTilesRenderer.cpp', |
| '../src/pipe/utils/SamplePipeControllers.h', |
| '../src/pipe/utils/SamplePipeControllers.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| '../src/images', |
| '../src/lazy', |
| '../src/pipe/utils/', |
| '../src/utils/', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| # needed for JSON headers used within image_expectations.h |
| '../third_party/externals/jsoncpp-chromium/overrides/include/', |
| '../third_party/externals/jsoncpp/include/', |
| ], |
| }, |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'jsoncpp.gyp:jsoncpp', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_utils', |
| ], |
| 'conditions': [ |
| ['skia_gpu == 1', |
| { |
| 'include_dirs' : [ |
| '../src/gpu', |
| ], |
| 'dependencies': [ |
| 'gputest.gyp:skgputest', |
| ], |
| }, |
| ], |
| ], |
| }, |
| { |
| 'target_name': 'render_pdfs', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/render_pdfs_main.cpp', |
| '../tools/PdfRenderer.cpp', |
| '../tools/PdfRenderer.h', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| '../src/pipe/utils/', |
| '../src/utils/', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'pdf.gyp:pdf', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_utils', |
| ], |
| 'conditions': [ |
| ['skia_win_debuggers_path and skia_os == "win"', |
| { |
| 'dependencies': [ |
| 'tools.gyp:win_dbghelp', |
| ], |
| }, |
| ], |
| # VS static libraries don't have a linker option. We must set a global |
| # project linker option, or add it to each executable. |
| ['skia_win_debuggers_path and skia_os == "win" and ' |
| 'skia_arch_width == 64', |
| { |
| 'msvs_settings': { |
| 'VCLinkerTool': { |
| 'AdditionalDependencies': [ |
| '<(skia_win_debuggers_path)/x64/DbgHelp.lib', |
| ], |
| }, |
| }, |
| }, |
| ], |
| ['skia_win_debuggers_path and skia_os == "win" and ' |
| 'skia_arch_width == 32', |
| { |
| 'msvs_settings': { |
| 'VCLinkerTool': { |
| 'AdditionalDependencies': [ |
| '<(skia_win_debuggers_path)/DbgHelp.lib', |
| ], |
| }, |
| }, |
| }, |
| ], |
| ], |
| }, |
| { |
| 'target_name': 'picture_utils', |
| 'type': 'static_library', |
| 'sources': [ |
| '../tools/picture_utils.cpp', |
| '../tools/picture_utils.h', |
| ], |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'direct_dependent_settings': { |
| 'include_dirs': [ |
| '../tools/', |
| ], |
| }, |
| }, |
| { |
| 'target_name': 'pinspect', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/pinspect.cpp', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_renderer', |
| ], |
| }, |
| { |
| 'target_name': 'bbh_shootout', |
| 'type': 'executable', |
| 'include_dirs': [ |
| '../bench', |
| '../tools/' |
| ], |
| 'sources': [ |
| '../tools/bbh_shootout.cpp', |
| |
| # Bench code: |
| ], |
| 'dependencies': [ |
| 'timer', |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_renderer', |
| 'tools.gyp:picture_utils', |
| ], |
| }, |
| { |
| 'target_name': 'filter', |
| 'type': 'executable', |
| 'include_dirs' : [ |
| '../src/core', |
| '../src/utils/debugger', |
| ], |
| 'sources': [ |
| '../tools/filtermain.cpp', |
| '../src/utils/debugger/SkDrawCommand.h', |
| '../src/utils/debugger/SkDrawCommand.cpp', |
| '../src/utils/debugger/SkDebugCanvas.h', |
| '../src/utils/debugger/SkDebugCanvas.cpp', |
| '../src/utils/debugger/SkObjectParser.h', |
| '../src/utils/debugger/SkObjectParser.cpp', |
| ], |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| 'tools.gyp:picture_utils', |
| ], |
| }, |
| { |
| 'target_name': 'test_image_decoder', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/test_image_decoder.cpp', |
| ], |
| 'dependencies': [ |
| 'skia_lib.gyp:skia_lib', |
| ], |
| }, |
| ], |
| 'conditions': [ |
| ['skia_shared_lib', |
| { |
| 'targets': [ |
| { |
| 'target_name': 'sklua', |
| 'product_name': 'skia', |
| 'product_prefix': '', |
| 'product_dir': '<(PRODUCT_DIR)/', |
| 'type': 'shared_library', |
| 'sources': [ |
| '../src/utils/SkLuaCanvas.cpp', |
| '../src/utils/SkLua.cpp', |
| ], |
| 'include_dirs': [ |
| # Lua exposes GrReduceClip which in turn requires src/core for SkTLList |
| '../src/gpu/', |
| '../src/core/', |
| '../third_party/lua/src/', |
| ], |
| 'dependencies': [ |
| 'lua.gyp:lua', |
| 'pdf.gyp:pdf', |
| 'skia_lib.gyp:skia_lib', |
| ], |
| 'conditions': [ |
| ['skia_os != "win"', |
| { |
| 'ldflags': [ |
| '-Wl,-rpath,\$$ORIGIN,--enable-new-dtags', |
| ], |
| }, |
| ], |
| ], |
| }, |
| ], |
| }, |
| ], |
| ['skia_win_debuggers_path and skia_os == "win"', |
| { |
| 'targets': [ |
| { |
| 'target_name': 'win_dbghelp', |
| 'type': 'static_library', |
| 'defines': [ |
| 'SK_CDB_PATH="<(skia_win_debuggers_path)"', |
| ], |
| 'sources': [ |
| '../tools/win_dbghelp.h', |
| '../tools/win_dbghelp.cpp', |
| ], |
| }, |
| ], |
| }, |
| ], |
| ['skia_os == "win"', |
| { |
| 'targets': [ |
| { |
| 'target_name': 'win_lcid', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/win_lcid.cpp', |
| ], |
| }, |
| ], |
| }, |
| ], |
| ['skia_os == "mac"', |
| { |
| 'targets': [ |
| { |
| 'target_name': 'create_test_font', |
| 'type': 'executable', |
| 'sources': [ |
| '../tools/create_test_font.cpp', |
| ], |
| 'include_dirs': [ |
| '../src/core', |
| ], |
| 'dependencies': [ |
| 'flags.gyp:flags', |
| 'skia_lib.gyp:skia_lib', |
| 'resources', |
| ], |
| }, |
| ], |
| }, |
| ], |
| ], |
| } |