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 |