| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Linux should use system libexif |
| if (!is_linux || is_chromeos) { |
| # TODO(thestig): Properly support building on Linux. |
| config("libexif_config") { |
| include_dirs = [ "sources" ] |
| if (is_clang) { |
| cflags = [ |
| "-Wno-enum-conversion", |
| "-Wno-switch", |
| "-Wno-format", |
| |
| # libexif uses fabs(int) to cast to float. |
| "-Wno-absolute-value", |
| ] |
| } |
| } |
| |
| static_library("libexif") { |
| sources = [ |
| "sources/libexif/canon/exif-mnote-data-canon.c", |
| "sources/libexif/canon/mnote-canon-entry.c", |
| "sources/libexif/canon/mnote-canon-tag.c", |
| "sources/libexif/exif-byte-order.c", |
| "sources/libexif/exif-content.c", |
| "sources/libexif/exif-data.c", |
| "sources/libexif/exif-entry.c", |
| "sources/libexif/exif-format.c", |
| "sources/libexif/exif-ifd.c", |
| "sources/libexif/exif-loader.c", |
| "sources/libexif/exif-log.c", |
| "sources/libexif/exif-mem.c", |
| "sources/libexif/exif-mnote-data.c", |
| "sources/libexif/exif-tag.c", |
| "sources/libexif/exif-utils.c", |
| "sources/libexif/fuji/exif-mnote-data-fuji.c", |
| "sources/libexif/fuji/mnote-fuji-entry.c", |
| "sources/libexif/fuji/mnote-fuji-tag.c", |
| "sources/libexif/olympus/exif-mnote-data-olympus.c", |
| "sources/libexif/olympus/mnote-olympus-entry.c", |
| "sources/libexif/olympus/mnote-olympus-tag.c", |
| "sources/libexif/pentax/exif-mnote-data-pentax.c", |
| "sources/libexif/pentax/mnote-pentax-entry.c", |
| "sources/libexif/pentax/mnote-pentax-tag.c", |
| ] |
| |
| include_dirs = [ "sources" ] |
| |
| # TODO(GYP): Additional options for non-Windows platforms. |
| |
| if (is_win) { |
| defines = [ |
| # This seems like a hack, but this is what WebKit Win does. |
| "snprintf=_snprintf", |
| "inline=__inline", |
| ] |
| |
| ldflags = [ "/DEF:" + rebase_path("libexif.def") ] |
| |
| cflags = [ "/wd4018" ] # size/unsigned mismatch |
| |
| # TODO(GYP): Handle /analyze switch, when it will be used in GN. |
| } else if (is_linux) { |
| libs = [ "m" ] |
| } |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| |
| public_configs = [ ":libexif_config" ] |
| } |
| } |