OLD | NEW |
(Empty) | |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 # Linux should use system libexif |
| 6 |
| 7 config("libexif_public_config") { |
| 8 include_dirs = [ "sources" ] |
| 9 } |
| 10 |
| 11 config("libexif_warnings") { |
| 12 if (is_clang) { |
| 13 cflags = [ |
| 14 "-Wno-enum-conversion", |
| 15 "-Wno-switch", |
| 16 "-Wno-format", |
| 17 |
| 18 # libexif uses fabs(int) to cast to float. |
| 19 "-Wno-absolute-value", |
| 20 ] |
| 21 } |
| 22 } |
| 23 |
| 24 libexif_sources = [ |
| 25 "sources/libexif/canon/exif-mnote-data-canon.c", |
| 26 "sources/libexif/canon/mnote-canon-entry.c", |
| 27 "sources/libexif/canon/mnote-canon-tag.c", |
| 28 "sources/libexif/exif-byte-order.c", |
| 29 "sources/libexif/exif-content.c", |
| 30 "sources/libexif/exif-data.c", |
| 31 "sources/libexif/exif-entry.c", |
| 32 "sources/libexif/exif-format.c", |
| 33 "sources/libexif/exif-ifd.c", |
| 34 "sources/libexif/exif-loader.c", |
| 35 "sources/libexif/exif-log.c", |
| 36 "sources/libexif/exif-mem.c", |
| 37 "sources/libexif/exif-mnote-data.c", |
| 38 "sources/libexif/exif-tag.c", |
| 39 "sources/libexif/exif-utils.c", |
| 40 "sources/libexif/fuji/exif-mnote-data-fuji.c", |
| 41 "sources/libexif/fuji/mnote-fuji-entry.c", |
| 42 "sources/libexif/fuji/mnote-fuji-tag.c", |
| 43 "sources/libexif/olympus/exif-mnote-data-olympus.c", |
| 44 "sources/libexif/olympus/mnote-olympus-entry.c", |
| 45 "sources/libexif/olympus/mnote-olympus-tag.c", |
| 46 "sources/libexif/pentax/exif-mnote-data-pentax.c", |
| 47 "sources/libexif/pentax/mnote-pentax-entry.c", |
| 48 "sources/libexif/pentax/mnote-pentax-tag.c", |
| 49 ] |
| 50 |
| 51 if (!is_linux || is_chromeos) { |
| 52 loadable_module("libexif") { |
| 53 if (is_mac) { |
| 54 # Matches the output from GYP. |
| 55 output_name = "exif" |
| 56 } |
| 57 sources = libexif_sources |
| 58 |
| 59 include_dirs = [ "sources" ] |
| 60 |
| 61 # TODO(GYP): Additional options for non-Windows platforms. |
| 62 |
| 63 if (is_win) { |
| 64 import("//build/config/win/visual_studio_version.gni") |
| 65 |
| 66 if (visual_studio_version == "2013" || visual_studio_version == "2013e") { |
| 67 defines = [ |
| 68 # This seems like a hack, but this is what WebKit Win does. |
| 69 # VS 2015 supports these natively so they cannot be #defines. |
| 70 "snprintf=_snprintf", |
| 71 "inline=__inline", |
| 72 ] |
| 73 } |
| 74 |
| 75 ldflags = [ "/DEF:" + rebase_path("libexif.def") ] |
| 76 |
| 77 cflags = [ "/wd4018" ] # Signed/unsigned mismatch in comparison. |
| 78 |
| 79 # TODO(GYP): Handle /analyze switch, when it will be used in GN. |
| 80 } else if (is_linux) { |
| 81 libs = [ "m" ] |
| 82 } |
| 83 |
| 84 configs -= [ "//build/config/compiler:chromium_code" ] |
| 85 configs += [ |
| 86 "//build/config/compiler:no_chromium_code", |
| 87 |
| 88 # Must be after no_chromium_code for warning flags to be ordered properly. |
| 89 ":libexif_warnings", |
| 90 ] |
| 91 |
| 92 public_configs = [ ":libexif_public_config" ] |
| 93 } |
| 94 } |
| 95 |
| 96 if (is_linux) { |
| 97 # used by libfuzzer fuzzers only atm. |
| 98 source_set("libexif_fuzzers") { |
| 99 sources = libexif_sources |
| 100 |
| 101 include_dirs = [ "sources" ] |
| 102 |
| 103 libs = [ "m" ] |
| 104 |
| 105 configs -= [ "//build/config/compiler:chromium_code" ] |
| 106 configs += [ |
| 107 "//build/config/compiler:no_chromium_code", |
| 108 |
| 109 # Must be after no_chromium_code for warning flags to be ordered properly. |
| 110 ":libexif_warnings", |
| 111 ] |
| 112 |
| 113 public_configs = [ ":libexif_public_config" ] |
| 114 } |
| 115 } |
OLD | NEW |