1 # Copyright 2015 Google Inc. 2 # 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 # GYP file to build various tools. 6 # 7 # To build on Linux: 8 # ./gyp_skia tools.gyp && make tools 9 # 10 { 11 'includes': [ 12 'apptype_console.gypi', 13 ], 14 'targets': [ 15 { 16 # Build all executable targets defined below. 17 'target_name': 'tools', 18 'type': 'none', 19 'dependencies': [ 20 'chrome_fuzz', 21 'dump_record', 22 'get_images_from_skps', 23 'gpuveto', 24 'imgblur', 25 'imgconv', 26 'imgslice', 27 'lua_app', 28 'lua_pictures', 29 'pinspect', 30 'skdiff', 31 'skhello', 32 'skpinfo', 33 'skpmaker', 34 'test_image_decoder', 35 'test_public_includes', 36 'whitelist_typefaces', 37 ], 38 'conditions': [ 39 ['skia_shared_lib', 40 { 41 'dependencies': [ 42 'sklua', # This can only be built if skia is built as a shared library 43 ], 44 }, 45 ], 46 [ 'skia_os == "android"', 47 { 48 'dependencies': [ 49 # Build this by default to catch compile errors more quickly, since 50 # the only other time this code is exercised in the android framework 51 'android_utils', 52 ], 53 }, 54 ], 55 ], 56 }, 57 { 58 'target_name': 'android_utils', 59 'type': 'static_library', 60 'dependencies': [ 61 'core.gyp:core', 62 ], 63 'sources': [ 64 '../tools/android/SkAndroidSDKCanvas.h', 65 '../tools/android/SkAndroidSDKCanvas.cpp', 66 ], 67 'direct_dependent_settings': { 68 'include_dirs': [ 69 '../tools/android', 70 ], 71 }, 72 }, 73 { 74 'target_name': 'dump_record', 75 'type': 'executable', 76 'sources': [ 77 '../tools/dump_record.cpp', 78 '../tools/DumpRecord.cpp', 79 ], 80 'include_dirs': [ 81 '../include/private', 82 '../src/core', 83 ], 84 'dependencies': [ 85 'flags.gyp:flags', 86 'skia_lib.gyp:skia_lib', 87 ], 88 }, 89 { 90 'target_name': 'chrome_fuzz', 91 'type': 'executable', 92 'sources': [ 93 '../tools/chrome_fuzz.cpp', 94 ], 95 'dependencies': [ 96 'skia_lib.gyp:skia_lib', 97 ], 98 }, 99 { 100 'target_name': 'crash_handler', 101 'type': 'static_library', 102 'sources': [ '../tools/CrashHandler.cpp' ], 103 'dependencies': [ 'skia_lib.gyp:skia_lib' ], 104 'direct_dependent_settings': { 105 'include_dirs': [ '../tools' ], 106 }, 107 'conditions': [ 108 [ 'skia_is_bot', { 109 'defines': [ 'SK_CRASH_HANDLER' ], 110 }], 111 ], 112 113 'all_dependent_settings': { 114 'msvs_settings': { 115 'VCLinkerTool': { 116 'AdditionalDependencies': [ 'Dbghelp.lib' ], 117 } 118 }, 119 } 120 }, 121 { 122 'target_name': 'resources', 123 'type': 'static_library', 124 'sources': [ '../tools/Resources.cpp' ], 125 'dependencies': [ 126 'flags.gyp:flags', 127 'skia_lib.gyp:skia_lib', 128 ], 129 'direct_dependent_settings': { 130 'include_dirs': [ '../tools', ], 131 }, 132 }, 133 { 134 'target_name': 'sk_tool_utils', 135 'type': 'static_library', 136 'sources': [ 137 '../tools/sk_tool_utils.cpp', 138 '../tools/sk_tool_utils_font.cpp', 139 '../tools/random_parse_path.cpp', 140 ], 141 'include_dirs': [ 142 '../include/private', 143 '../src/fonts', 144 '../src/core', 145 ], 146 'dependencies': [ 147 'resources', 148 'flags.gyp:flags', 149 'skia_lib.gyp:skia_lib', 150 ], 151 'direct_dependent_settings': { 152 'include_dirs': [ '../tools', ], 153 }, 154 }, 155 { 156 'target_name' : 'timer', 157 'type': 'static_library', 158 'sources': [ '../tools/timer/Timer.cpp' ], 159 'direct_dependent_settings': { 160 'include_dirs': ['../tools/timer'], 161 }, 162 'dependencies': [ 'skia_lib.gyp:skia_lib' ], 163 }, 164 { 165 'target_name': 'skdiff', 166 'type': 'executable', 167 'sources': [ 168 '../tools/skdiff.cpp', 169 '../tools/skdiff.h', 170 '../tools/skdiff_html.cpp', 171 '../tools/skdiff_html.h', 172 '../tools/skdiff_main.cpp', 173 '../tools/skdiff_utils.cpp', 174 '../tools/skdiff_utils.h', 175 ], 176 'dependencies': [ 177 'skia_lib.gyp:skia_lib', 178 ], 179 }, 180 { 181 'target_name': 'skpmaker', 182 'type': 'executable', 183 'sources': [ 184 '../tools/skpmaker.cpp', 185 ], 186 'include_dirs': [ 187 '../include/private', 188 '../src/core', 189 ], 190 'dependencies': [ 191 'flags.gyp:flags', 192 'skia_lib.gyp:skia_lib', 193 ], 194 }, 195 { 196 'target_name': 'skimagediff', 197 'type': 'executable', 198 'sources': [ 199 '../tools/skdiff.cpp', 200 '../tools/skdiff.h', 201 '../tools/skdiff_html.cpp', 202 '../tools/skdiff_html.h', 203 '../tools/skdiff_image.cpp', 204 '../tools/skdiff_utils.cpp', 205 '../tools/skdiff_utils.h', 206 ], 207 'dependencies': [ 208 'skia_lib.gyp:skia_lib', 209 ], 210 }, 211 { 212 'target_name': 'skhello', 213 'type': 'executable', 214 'dependencies': [ 215 'flags.gyp:flags', 216 'pdf.gyp:pdf', 217 'skia_lib.gyp:skia_lib', 218 ], 219 'sources': [ 220 '../tools/skhello.cpp', 221 ], 222 }, 223 { 224 'target_name': 'skpinfo', 225 'type': 'executable', 226 'sources': [ 227 '../tools/skpinfo.cpp', 228 ], 229 'include_dirs': [ 230 '../include/private', 231 '../src/core/', 232 ], 233 'dependencies': [ 234 'flags.gyp:flags', 235 'skia_lib.gyp:skia_lib', 236 ], 237 }, 238 { 239 'target_name': 'imgblur', 240 'type': 'executable', 241 'sources': [ 242 '../tools/imgblur.cpp', 243 ], 244 'include_dirs': [ 245 '../include/core', 246 ], 247 'dependencies': [ 248 'flags.gyp:flags', 249 'flags.gyp:flags_common', 250 'skia_lib.gyp:skia_lib', 251 'tools.gyp:sk_tool_utils', 252 ], 253 }, 254 { 255 'target_name': 'imgslice', 256 'type': 'executable', 257 'sources': [ 258 '../tools/imgslice.cpp', 259 ], 260 'include_dirs': [ 261 '../include/core', 262 ], 263 'dependencies': [ 264 'flags.gyp:flags', 265 'skia_lib.gyp:skia_lib', 266 ], 267 }, 268 { 269 'target_name': 'get_images_from_skps', 270 'type': 'executable', 271 'sources': [ 272 '../tools/get_images_from_skps.cpp', 273 ], 274 'dependencies': [ 275 'flags.gyp:flags', 276 'skia_lib.gyp:skia_lib', 277 ], 278 }, 279 { 280 'target_name': 'gpuveto', 281 'type': 'executable', 282 'sources': [ 283 '../tools/gpuveto.cpp', 284 ], 285 'include_dirs': [ 286 '../include/private', 287 '../src/core/', 288 '../src/images', 289 ], 290 'dependencies': [ 291 'flags.gyp:flags', 292 'skia_lib.gyp:skia_lib', 293 ], 294 }, 295 { 296 'target_name': 'lua_app', 297 'type': 'executable', 298 'sources': [ 299 '../tools/lua/lua_app.cpp', 300 '../src/utils/SkLua.cpp', 301 ], 302 'include_dirs': [ 303 '../include/private', 304 # Lua exposes GrReduceClip which in turn requires src/core for SkTLList 305 '../src/gpu/', 306 '../src/core/', 307 ], 308 'dependencies': [ 309 'effects.gyp:effects', 310 'images.gyp:images', 311 'lua.gyp:lua', 312 'pdf.gyp:pdf', 313 'ports.gyp:ports', 314 'skia_lib.gyp:skia_lib', 315 ], 316 }, 317 { 318 'target_name': 'lua_pictures', 319 'type': 'executable', 320 'sources': [ 321 '../tools/lua/lua_pictures.cpp', 322 '../src/utils/SkLuaCanvas.cpp', 323 '../src/utils/SkLua.cpp', 324 ], 325 'include_dirs': [ 326 '../include/private', 327 # Lua exposes GrReduceClip which in turn requires src/core for SkTLList 328 '../src/gpu/', 329 '../src/core/', 330 ], 331 'dependencies': [ 332 'effects.gyp:effects', 333 'flags.gyp:flags', 334 'images.gyp:images', 335 'lua.gyp:lua', 336 'tools.gyp:picture_utils', 337 'pdf.gyp:pdf', 338 'ports.gyp:ports', 339 'skia_lib.gyp:skia_lib', 340 ], 341 }, 342 { 343 'target_name': 'picture_utils', 344 'type': 'static_library', 345 'sources': [ 346 '../tools/picture_utils.cpp', 347 '../tools/picture_utils.h', 348 ], 349 'dependencies': [ 350 'skia_lib.gyp:skia_lib', 351 ], 352 'direct_dependent_settings': { 353 'include_dirs': [ 354 '../tools/', 355 ], 356 }, 357 }, 358 { 359 'target_name': 'pinspect', 360 'type': 'executable', 361 'sources': [ 362 '../tools/pinspect.cpp', 363 ], 364 'dependencies': [ 365 'flags.gyp:flags', 366 'skia_lib.gyp:skia_lib', 367 ], 368 }, 369 { 370 'target_name': 'imgconv', 371 'type': 'executable', 372 'sources': [ 373 '../tools/imgconv.cpp', 374 ], 375 'dependencies': [ 376 'flags.gyp:flags', 377 'skia_lib.gyp:skia_lib', 378 ], 379 }, 380 { 381 'target_name': 'test_image_decoder', 382 'type': 'executable', 383 'sources': [ 384 '../tools/test_image_decoder.cpp', 385 ], 386 'dependencies': [ 387 'skia_lib.gyp:skia_lib', 388 ], 389 }, 390 { 391 'target_name': 'proc_stats', 392 'type': 'static_library', 393 'sources': [ 394 '../tools/ProcStats.h', 395 '../tools/ProcStats.cpp', 396 ], 397 'direct_dependent_settings': { 398 'include_dirs': [ '../tools', ], 399 }, 400 }, 401 { 402 'target_name': 'url_data_manager', 403 'type': 'static_library', 404 'sources': [ 405 '../tools/UrlDataManager.h', 406 '../tools/UrlDataManager.cpp', 407 ], 408 'dependencies': [ 409 'skia_lib.gyp:skia_lib', 410 ], 411 'include_dirs': [ 412 '../include/private', 413 '../src/core', 414 ], 415 'direct_dependent_settings': { 416 'include_dirs': [ 417 '../include/private', 418 '../tools', 419 ], 420 }, 421 }, 422 { 423 'target_name': 'whitelist_typefaces', 424 'type': 'executable', 425 'sources': [ 426 '../tools/whitelist_typefaces.cpp', 427 ], 428 'dependencies': [ 429 'skia_lib.gyp:skia_lib', 430 ], 431 }, 432 { 433 'target_name': 'thermal_manager', 434 'type': 'static_library', 435 'sources': [ 436 '../tools/ThermalManager.cpp', 437 ], 438 'dependencies': [ 439 'skia_lib.gyp:skia_lib', 440 ], 441 'direct_dependent_settings': { 442 'include_dirs': [ '../tools', ], 443 }, 444 }, 445 { 446 'target_name': 'test_public_includes', 447 'type': 'static_library', 448 # Ensure that our public headers don't have unused params so that clients 449 # (e.g. Android) that include us can build with these warnings enabled 450 'cflags!': [ '-Wno-unused-parameter' ], 451 'variables': { 452 'includes_to_test': [ 453 '<(skia_include_path)/android', 454 '<(skia_include_path)/animator', 455 '<(skia_include_path)/c', 456 '<(skia_include_path)/codec', 457 '<(skia_include_path)/config', 458 '<(skia_include_path)/core', 459 '<(skia_include_path)/effects', 460 '<(skia_include_path)/gpu', 461 '<(skia_include_path)/images', 462 '<(skia_include_path)/pathops', 463 '<(skia_include_path)/ports', 464 '<(skia_include_path)/svg/parser', 465 '<(skia_include_path)/utils', 466 '<(skia_include_path)/views', 467 '<(skia_include_path)/xml', 468 ], 469 'paths_to_ignore': [ 470 '<(skia_include_path)/gpu/gl/GrGLConfig_chrome.h', 471 '<(skia_include_path)/ports/SkFontMgr_fontconfig.h', 472 '<(skia_include_path)/ports/SkTypeface_mac.h', 473 '<(skia_include_path)/ports/SkTypeface_win.h', 474 '<(skia_include_path)/utils/ios', 475 '<(skia_include_path)/utils/mac', 476 '<(skia_include_path)/utils/win', 477 '<(skia_include_path)/utils/SkDebugUtils.h', 478 '<(skia_include_path)/utils/SkJSONCPP.h', 479 '<(skia_include_path)/views/animated', 480 '<(skia_include_path)/views/SkOSWindow_Android.h', 481 '<(skia_include_path)/views/SkOSWindow_iOS.h', 482 '<(skia_include_path)/views/SkOSWindow_Mac.h', 483 '<(skia_include_path)/views/SkOSWindow_SDL.h', 484 '<(skia_include_path)/views/SkOSWindow_Unix.h', 485 '<(skia_include_path)/views/SkOSWindow_Win.h', 486 '<(skia_include_path)/views/SkWindow.h', 487 '<(skia_include_path)/gpu/vk', 488 ], 489 }, 490 'include_dirs': [ 491 '<@(includes_to_test)', 492 ], 493 'sources': [ 494 # unused_param_test.cpp is generated by the action below. 495 '<(INTERMEDIATE_DIR)/test_public_includes.cpp', 496 ], 497 'actions': [ 498 { 499 'action_name': 'generate_includes_cpp', 500 'inputs': [ 501 '../tools/generate_includes_cpp.py', 502 '<@(includes_to_test)', 503 # This causes the gyp generator on mac to fail 504 #'<@(paths_to_ignore)', 505 ], 506 'outputs': [ 507 '<(INTERMEDIATE_DIR)/test_public_includes.cpp', 508 ], 509 'action': ['python', '../tools/generate_includes_cpp.py', 510 '--ignore', '<(paths_to_ignore)', 511 '<@(_outputs)', '<@(includes_to_test)'], 512 }, 513 ], 514 }, 515 ], 516 'conditions': [ 517 ['skia_shared_lib', 518 { 519 'targets': [ 520 { 521 'target_name': 'sklua', 522 'product_name': 'skia', 523 'product_prefix': '', 524 'product_dir': '<(PRODUCT_DIR)/', 525 'type': 'shared_library', 526 'sources': [ 527 '../src/utils/SkLuaCanvas.cpp', 528 '../src/utils/SkLua.cpp', 529 ], 530 'include_dirs': [ 531 '../include/private', 532 # Lua exposes GrReduceClip which in turn requires src/core for SkTLList 533 '../src/gpu/', 534 '../src/core/', 535 '../third_party/lua/src/', 536 ], 537 'dependencies': [ 538 'lua.gyp:lua', 539 'pdf.gyp:pdf', 540 'skia_lib.gyp:skia_lib', 541 ], 542 'conditions': [ 543 ['skia_os != "win"', 544 { 545 'ldflags': [ 546 '-Wl,-rpath,\$$ORIGIN,--enable-new-dtags', 547 ], 548 }, 549 ], 550 ], 551 }, 552 ], 553 }, 554 ], 555 ['skia_win_debuggers_path and skia_os == "win"', 556 { 557 'targets': [ 558 { 559 'target_name': 'win_dbghelp', 560 'type': 'static_library', 561 'defines': [ 562 'SK_CDB_PATH="<(skia_win_debuggers_path)"', 563 ], 564 'sources': [ 565 '../tools/win_dbghelp.h', 566 '../tools/win_dbghelp.cpp', 567 ], 568 }, 569 ], 570 }, 571 ], 572 ['skia_os == "win"', 573 { 574 'targets': [ 575 { 576 'target_name': 'win_lcid', 577 'type': 'executable', 578 'sources': [ 579 '../tools/win_lcid.cpp', 580 ], 581 }, 582 ], 583 }, 584 ], 585 ['skia_os == "mac"', 586 { 587 'targets': [ 588 { 589 'target_name': 'create_test_font', 590 'type': 'executable', 591 'sources': [ 592 '../tools/create_test_font.cpp', 593 ], 594 'include_dirs': [ 595 '../include/private', 596 '../src/core', 597 ], 598 'dependencies': [ 599 'flags.gyp:flags', 600 'skia_lib.gyp:skia_lib', 601 'resources', 602 ], 603 }, 604 ], 605 }, 606 ], 607 ], 608 } 609