| # Copyright 2014 The Goma Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| if (os != "win") { |
| config_h_dir = "config/glog/$os" |
| } else { |
| import("//build/config/win/visual_studio_version.gni") |
| config_h_dir = "glog/src/windows" |
| } |
| |
| glog_sources = [ |
| "glog/src/base/commandlineflags.h", |
| "glog/src/base/googleinit.h", |
| "glog/src/base/mutex.h", |
| "glog/src/demangle.cc", |
| "glog/src/demangle.h", |
| "glog/src/logging.cc", |
| "glog/src/raw_logging.cc", |
| "glog/src/signalhandler.cc", |
| "glog/src/stacktrace_generic-inl.h", |
| "glog/src/stacktrace.h", |
| "glog/src/stacktrace_libunwind-inl.h", |
| "glog/src/stacktrace_x86_64-inl.h", |
| "glog/src/symbolize.cc", |
| "glog/src/symbolize.h", |
| "glog/src/utilities.cc", |
| "glog/src/utilities.h", |
| "glog/src/vlog_is_on.cc", |
| "$config_h_dir/config.h", |
| "$config_h_dir/glog/logging.h", |
| "$config_h_dir/glog/log_severity.h", |
| "$config_h_dir/glog/raw_logging.h", |
| "$config_h_dir/glog/stl_logging.h", |
| "$config_h_dir/glog/vlog_is_on.h", |
| ] |
| |
| glog_include_dirs = [ |
| "$config_h_dir", |
| "glog/src", |
| ] |
| |
| glog_defines = [ "HAVE_CONFIG_H" ] |
| |
| if (os == "win" && |
| (visual_studio_version == "2015" || visual_studio_version == "2017")) { |
| glog_defines += [ "HAVE_SNPRINTF" ] |
| } |
| |
| if (os != "win") { |
| glog_cflags_cc = [ "-Wno-sign-compare" ] |
| } else { |
| glog_cflags_cc = [ |
| "/wd4541", |
| |
| # C4389: signed/unsigned mismatch |
| # Come from glog/src/windows/glog/logging.h |
| "/wd4389", |
| |
| # destructor never returns, potential memory leak. |
| # Occurred in glog Fatal. |
| "/wd4722", |
| ] |
| glog_sources -= [ |
| "glog/src/stacktrace_generic-inl.h", |
| "glog/src/stacktrace.h", |
| "glog/src/stacktrace_libunwind-inl.h", |
| "glog/src/stacktrace_x86_64-inl.h", |
| ] |
| glog_sources += [ |
| "glog/src/windows/port.cc", |
| "glog/src/windows/port.h", |
| ] |
| } |
| |
| config("glog_config") { |
| include_dirs = glog_include_dirs |
| if (is_posix) { |
| cflags = [ |
| "-Wno-unused-local-typedef", # For COMPILE_ASSERT macro. |
| "-Wno-sign-compare", # glog/logging.h has sign compare code |
| ] |
| } |
| } |
| |
| static_library("glog") { |
| sources = glog_sources |
| include_dirs = glog_include_dirs |
| defines = glog_defines |
| cflags_cc = glog_cflags_cc |
| public_configs = [ ":glog_config" ] |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ "//build/config/compiler:no_goma_code" ] |
| } |
| |
| config("has_rtti_config") { |
| defines = [ |
| # gtest isn't able to figure out when RTTI is disabled for gcc |
| # versions older than 4.3.2, and assumes it's enabled. Our Mac |
| # and Linux builds disable RTTI, and cannot guarantee that the |
| # compiler will be 4.3.2. or newer. The Mac, for example, uses |
| # 4.2.1 as that is the latest available on that platform. gtest |
| # must be instructed that RTTI is disabled here, and for any |
| # direct dependents that might include gtest headers. |
| "GTEST_HAS_RTTI=0", |
| ] |
| } |
| config("use_own_tr1_tuple_config") { |
| defines = [ |
| # We want gtest features that use tr1::tuple, but we currently |
| # don't support the variadic templates used by libstdc++'s |
| # implementation. gtest supports this scenario by providing its |
| # own implementation but we must opt in to it. |
| "GTEST_USE_OWN_TR1_TUPLE=1", |
| ] |
| } |
| config("unittest_config") { |
| defines = [ "UNIT_TEST" ] |
| |
| # So that gtest headers can find themselves. |
| include_dirs = [ "gtest/googletest/include" ] |
| |
| if (is_clang) { |
| cflags = [ |
| "-Wno-deprecated-declarations", |
| "-Wno-unused-variable", |
| ] |
| } |
| } |
| |
| # http://stackoverflow.com/questions/12558327/google-test-in-visual-studio-2012 |
| config("variadix_max_config") { |
| defines = [ "_VARIADIC_MAX=10" ] |
| } |
| static_library("gtest") { |
| testonly = true |
| sources = [ |
| "gtest/googletest/include/gtest/gtest-death-test.h", |
| "gtest/googletest/include/gtest/gtest-message.h", |
| "gtest/googletest/include/gtest/gtest-param-test.h", |
| "gtest/googletest/include/gtest/gtest-printers.h", |
| "gtest/googletest/include/gtest/gtest-spi.h", |
| "gtest/googletest/include/gtest/gtest-test-part.h", |
| "gtest/googletest/include/gtest/gtest-typed-test.h", |
| "gtest/googletest/include/gtest/gtest.h", |
| "gtest/googletest/include/gtest/gtest_pred_impl.h", |
| "gtest/googletest/include/gtest/gtest_prod.h", |
| "gtest/googletest/include/gtest/internal/custom/gtest-port.h", |
| "gtest/googletest/include/gtest/internal/custom/gtest-printers.h", |
| "gtest/googletest/include/gtest/internal/custom/gtest.h", |
| "gtest/googletest/include/gtest/internal/gtest-death-test-internal.h", |
| "gtest/googletest/include/gtest/internal/gtest-filepath.h", |
| "gtest/googletest/include/gtest/internal/gtest-internal.h", |
| "gtest/googletest/include/gtest/internal/gtest-linked_ptr.h", |
| "gtest/googletest/include/gtest/internal/gtest-param-util-generated.h", |
| "gtest/googletest/include/gtest/internal/gtest-param-util.h", |
| "gtest/googletest/include/gtest/internal/gtest-port-arch.h", |
| "gtest/googletest/include/gtest/internal/gtest-port.h", |
| "gtest/googletest/include/gtest/internal/gtest-string.h", |
| "gtest/googletest/include/gtest/internal/gtest-tuple.h", |
| "gtest/googletest/include/gtest/internal/gtest-type-util.h", |
| "gtest/googletest/src/gtest-death-test.cc", |
| "gtest/googletest/src/gtest-filepath.cc", |
| "gtest/googletest/src/gtest-internal-inl.h", |
| "gtest/googletest/src/gtest-port.cc", |
| "gtest/googletest/src/gtest-printers.cc", |
| "gtest/googletest/src/gtest-test-part.cc", |
| "gtest/googletest/src/gtest-typed-test.cc", |
| "gtest/googletest/src/gtest.cc", |
| ] |
| |
| include_dirs = [ |
| "gtest/googletest", |
| "gtest/googletest/include", |
| ] |
| |
| public_configs = [] |
| if (is_posix) { |
| public_configs += [ ":has_rtti_config" ] |
| } |
| if (is_clang && os != "win") { |
| public_configs += [ ":use_own_tr1_tuple_config" ] |
| } |
| if (os == "win") { |
| # http://stackoverflow.com/questions/12558327/google-test-in-visual-studio-2012 |
| public_configs += [ ":variadix_max_config" ] |
| } |
| |
| public_configs += [ ":unittest_config" ] |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ "//build/config/compiler:no_goma_code" ] |
| } |
| |
| # If you need to use gtest_prod.h, depend on "gtest_prod". |
| config("gtest_prod_config") { |
| include_dirs = [ "gtest/googletest/include" ] |
| } |
| source_set("gtest_prod") { |
| sources = [ |
| "gtest/googletest/include/gtest/gtest_prod.h", |
| ] |
| |
| public_configs = [ ":gtest_prod_config" ] |
| } |
| |
| static_library("gtest_main") { |
| testonly = true |
| deps = [ |
| ":gtest", |
| ] |
| sources = [ |
| "gtest/googletest/src/gtest_main.cc", |
| ] |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ "//build/config/compiler:no_goma_code" ] |
| } |
| |
| config("liblzma_config") { |
| include_dirs = [ "xz/src/liblzma/api" ] |
| } |
| |
| if (enable_lzma) { |
| static_library("liblzma") { |
| config_h_dir = "config/xz/$os" |
| sources = [ |
| "$config_h_dir/config.h", |
| "xz/src/common/mythread.h", |
| "xz/src/common/sysdefs.h", |
| "xz/src/common/tuklib_common.h", |
| "xz/src/common/tuklib_config.h", |
| "xz/src/common/tuklib_intger.h", |
| "xz/src/common/tuklib_physmem.c", |
| "xz/src/common/tuklib_physmem.h", |
| "xz/src/liblzma/api/lzma.h", |
| "xz/src/liblzma/api/lzma/base.h", |
| "xz/src/liblzma/api/lzma/bcj.h", |
| "xz/src/liblzma/api/lzma/block.h", |
| "xz/src/liblzma/api/lzma/check.h", |
| "xz/src/liblzma/api/lzma/container.h", |
| "xz/src/liblzma/api/lzma/delta.h", |
| "xz/src/liblzma/api/lzma/filter.h", |
| "xz/src/liblzma/api/lzma/hardware.h", |
| "xz/src/liblzma/api/lzma/index.h", |
| "xz/src/liblzma/api/lzma/index_hash.h", |
| "xz/src/liblzma/api/lzma/lzma.h", |
| "xz/src/liblzma/api/lzma/stream_flags.h", |
| "xz/src/liblzma/api/lzma/version.h", |
| "xz/src/liblzma/api/lzma/vli.h", |
| "xz/src/liblzma/check/check.c", |
| "xz/src/liblzma/check/check.h", |
| "xz/src/liblzma/check/crc32_fast.c", |
| "xz/src/liblzma/check/crc32_table.c", |
| "xz/src/liblzma/check/crc32_table_be.h", |
| "xz/src/liblzma/check/crc32_table_le.h", |
| "xz/src/liblzma/check/crc64_fast.c", |
| "xz/src/liblzma/check/crc64_table.c", |
| "xz/src/liblzma/check/crc64_table_be.h", |
| "xz/src/liblzma/check/crc64_table_le.h", |
| "xz/src/liblzma/check/crc_macros.h", |
| "xz/src/liblzma/check/sha256.c", |
| "xz/src/liblzma/common/alone_decoder.c", |
| "xz/src/liblzma/common/alone_decoder.h", |
| "xz/src/liblzma/common/alone_encoder.c", |
| "xz/src/liblzma/common/auto_decoder.c", |
| "xz/src/liblzma/common/block_buffer_decoder.c", |
| "xz/src/liblzma/common/block_buffer_encoder.c", |
| "xz/src/liblzma/common/block_decoder.c", |
| "xz/src/liblzma/common/block_decoder.h", |
| "xz/src/liblzma/common/block_encoder.c", |
| "xz/src/liblzma/common/block_encoder.h", |
| "xz/src/liblzma/common/block_header_decoder.c", |
| "xz/src/liblzma/common/block_header_encoder.c", |
| "xz/src/liblzma/common/block_util.c", |
| "xz/src/liblzma/common/common.c", |
| "xz/src/liblzma/common/common.h", |
| "xz/src/liblzma/common/easy_buffer_encoder.c", |
| "xz/src/liblzma/common/easy_decoder_memusage.c", |
| "xz/src/liblzma/common/easy_encoder.c", |
| "xz/src/liblzma/common/easy_encoder_memusage.c", |
| "xz/src/liblzma/common/easy_preset.c", |
| "xz/src/liblzma/common/easy_preset.h", |
| "xz/src/liblzma/common/filter_buffer_decoder.c", |
| "xz/src/liblzma/common/filter_buffer_encoder.c", |
| "xz/src/liblzma/common/filter_common.c", |
| "xz/src/liblzma/common/filter_common.h", |
| "xz/src/liblzma/common/filter_decoder.c", |
| "xz/src/liblzma/common/filter_decoder.h", |
| "xz/src/liblzma/common/filter_encoder.c", |
| "xz/src/liblzma/common/filter_encoder.h", |
| "xz/src/liblzma/common/filter_flags_decoder.c", |
| "xz/src/liblzma/common/filter_flags_encoder.c", |
| "xz/src/liblzma/common/hardware_physmem.c", |
| "xz/src/liblzma/common/index.c", |
| "xz/src/liblzma/common/index.h", |
| "xz/src/liblzma/common/index_decoder.c", |
| "xz/src/liblzma/common/index_encoder.c", |
| "xz/src/liblzma/common/index_encoder.h", |
| "xz/src/liblzma/common/index_hash.c", |
| "xz/src/liblzma/common/stream_buffer_decoder.c", |
| "xz/src/liblzma/common/stream_buffer_encoder.c", |
| "xz/src/liblzma/common/stream_decoder.c", |
| "xz/src/liblzma/common/stream_decoder.h", |
| "xz/src/liblzma/common/stream_encoder.c", |
| "xz/src/liblzma/common/stream_encoder.h", |
| "xz/src/liblzma/common/stream_flags_common.c", |
| "xz/src/liblzma/common/stream_flags_common.h", |
| "xz/src/liblzma/common/stream_flags_decoder.c", |
| "xz/src/liblzma/common/stream_flags_encoder.c", |
| "xz/src/liblzma/common/vli_decoder.c", |
| "xz/src/liblzma/common/vli_encoder.c", |
| "xz/src/liblzma/common/vli_size.c", |
| "xz/src/liblzma/delta/delta_common.c", |
| "xz/src/liblzma/delta/delta_common.h", |
| "xz/src/liblzma/delta/delta_decoder.c", |
| "xz/src/liblzma/delta/delta_decoder.h", |
| "xz/src/liblzma/delta/delta_encoder.c", |
| "xz/src/liblzma/delta/delta_encoder.h", |
| "xz/src/liblzma/delta/delta_private.h", |
| "xz/src/liblzma/lz/lz_decoder.c", |
| "xz/src/liblzma/lz/lz_decoder.h", |
| "xz/src/liblzma/lz/lz_encoder.c", |
| "xz/src/liblzma/lz/lz_encoder.h", |
| "xz/src/liblzma/lz/lz_encoder_hash.h", |
| "xz/src/liblzma/lz/lz_encoder_hash_table.h", |
| "xz/src/liblzma/lz/lz_encoder_mf.c", |
| "xz/src/liblzma/lzma/fastpos.h", |
| "xz/src/liblzma/lzma/fastpos_table.c", |
| "xz/src/liblzma/lzma/lzma2_decoder.c", |
| "xz/src/liblzma/lzma/lzma2_decoder.h", |
| "xz/src/liblzma/lzma/lzma2_encoder.c", |
| "xz/src/liblzma/lzma/lzma2_encoder.h", |
| "xz/src/liblzma/lzma/lzma_common.h", |
| "xz/src/liblzma/lzma/lzma_decoder.c", |
| "xz/src/liblzma/lzma/lzma_decoder.h", |
| "xz/src/liblzma/lzma/lzma_encoder.c", |
| "xz/src/liblzma/lzma/lzma_encoder.h", |
| "xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c", |
| "xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c", |
| "xz/src/liblzma/lzma/lzma_encoder_presets.c", |
| "xz/src/liblzma/lzma/lzma_encoder_private.h", |
| "xz/src/liblzma/rangecoder/price.h", |
| "xz/src/liblzma/rangecoder/price_table.c", |
| "xz/src/liblzma/rangecoder/range_common.h", |
| "xz/src/liblzma/rangecoder/range_decoder.h", |
| "xz/src/liblzma/rangecoder/range_encoder.h", |
| "xz/src/liblzma/simple/arm.c", |
| "xz/src/liblzma/simple/armthumb.c", |
| "xz/src/liblzma/simple/ia64.c", |
| "xz/src/liblzma/simple/powerpc.c", |
| "xz/src/liblzma/simple/simple_coder.c", |
| "xz/src/liblzma/simple/simple_coder.h", |
| "xz/src/liblzma/simple/simple_decoder.c", |
| "xz/src/liblzma/simple/simple_decoder.h", |
| "xz/src/liblzma/simple/simple_encoder.c", |
| "xz/src/liblzma/simple/simple_encoder.h", |
| "xz/src/liblzma/simple/simple_private.h", |
| "xz/src/liblzma/simple/sparc.c", |
| "xz/src/liblzma/simple/x86.c", |
| ] |
| include_dirs = [ |
| "$config_h_dir", |
| "xz/src/liblzma/api", |
| "xz/src/liblzma/common", |
| "xz/src/liblzma/check", |
| "xz/src/liblzma/lz", |
| "xz/src/liblzma/rangecoder", |
| "xz/src/liblzma/lzma", |
| "xz/src/liblzma/delta", |
| "xz/src/liblzma/simple", |
| "xz/src/common", |
| ] |
| defines = [ |
| "HAVE_CONFIG_H", |
| "TUKLIB_SYMBOL_PREFIX=lzma_", |
| ] |
| public_configs = [ ":liblzma_config" ] |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ "//build/config/compiler:no_goma_code" ] |
| if (os == "win") { |
| configs -= [ |
| "//build/config/win:lean_and_mean", |
| "//build/config/win:unicode", |
| ] |
| |
| if (is_clang) { |
| # For xz/src/common/tuklib_physmem.c(86,18) |
| cflags = [ "-Wno-incompatible-function-pointer-types" ] |
| } |
| } |
| } |
| } |
| |
| # copied from zlib's BUILD.gn and modified for Goma. |
| # TODO: remove this if dependency issue has been fixed. |
| |
| # Copyright (c) 2013 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. |
| |
| config("zlib_config") { |
| defines = [ "ZLIB_CONST" ] |
| include_dirs = [ |
| "//third_party/zlib", |
| "//third_party/zlib/contrib", |
| ] |
| } |
| |
| static_library("zlib_x86_simd") { |
| if (!is_ios && (current_cpu == "x86" || current_cpu == "x64")) { |
| sources = [ |
| "zlib/crc_folding.c", |
| |
| # Added followings to mitigate gn check failure. |
| "zlib/deflate.h", |
| "zlib/fill_window_sse.c", |
| "zlib/zlib.h", |
| "zlib/zutil.h", |
| ] |
| if (!is_win || is_clang) { |
| cflags = [ |
| "-msse4.2", |
| "-mpclmul", |
| ] |
| } |
| } else { |
| sources = [ |
| "zlib/simd_stub.c", |
| ] |
| } |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ "//build/config/compiler:no_goma_code" ] |
| } |
| |
| config("zlib_warnings") { |
| if (is_clang && !is_ios && (current_cpu == "x86" || current_cpu == "x64")) { |
| cflags = [ "-Wno-incompatible-pointer-types" ] |
| } |
| } |
| |
| static_library("zlib") { |
| if (!is_win) { |
| # Don't stomp on "libzlib" on other platforms. |
| output_name = "chrome_zlib" |
| } |
| |
| sources = [ |
| "zlib/adler32.c", |
| "zlib/compress.c", |
| "zlib/crc32.c", |
| "zlib/crc32.h", |
| "zlib/deflate.c", |
| "zlib/deflate.h", |
| "zlib/gzclose.c", |
| "zlib/gzguts.h", |
| "zlib/gzlib.c", |
| "zlib/gzread.c", |
| "zlib/gzwrite.c", |
| "zlib/infback.c", |
| "zlib/inffast.c", |
| "zlib/inffast.h", |
| "zlib/inffixed.h", |
| "zlib/inflate.c", |
| "zlib/inflate.h", |
| "zlib/inftrees.c", |
| "zlib/inftrees.h", |
| "zlib/names.h", |
| "zlib/trees.c", |
| "zlib/trees.h", |
| "zlib/uncompr.c", |
| "zlib/x86.h", |
| "zlib/zconf.h", |
| "zlib/zlib.h", |
| "zlib/zutil.c", |
| "zlib/zutil.h", |
| ] |
| |
| if (!is_ios && (current_cpu == "x86" || current_cpu == "x64")) { |
| sources += [ "zlib/x86.c" ] |
| } |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ |
| "//build/config/compiler:no_goma_code", |
| |
| # Must be after no_chromium_code for warning flags to be ordered correctly. |
| ":zlib_warnings", |
| ] |
| |
| public_configs = [ ":zlib_config" ] |
| deps = [ |
| ":zlib_x86_simd", |
| ] |
| } |
| |
| config("minizip_warnings") { |
| visibility = [ ":*" ] |
| if (is_clang) { |
| # zlib uses `if ((a == b))` for some reason. |
| cflags = [ "-Wno-parentheses-equality" ] |
| } |
| } |
| |
| static_library("minizip") { |
| sources = [ |
| "zlib/contrib/minizip/ioapi.c", |
| "zlib/contrib/minizip/ioapi.h", |
| "zlib/contrib/minizip/iowin32.c", |
| "zlib/contrib/minizip/iowin32.h", |
| "zlib/contrib/minizip/unzip.c", |
| "zlib/contrib/minizip/unzip.h", |
| "zlib/contrib/minizip/zip.c", |
| "zlib/contrib/minizip/zip.h", |
| ] |
| |
| if (!is_win) { |
| sources -= [ |
| "zlib/contrib/minizip/iowin32.c", |
| "zlib/contrib/minizip/iowin32.h", |
| ] |
| } |
| if (is_mac || is_ios || is_android) { |
| # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We |
| # use fopen, ftell, and fseek instead on these systems. |
| defines = [ "USE_FILE32API" ] |
| } |
| |
| deps = [ |
| ":zlib", |
| ] |
| |
| configs -= [ "//build/config/compiler:goma_code" ] |
| configs += [ |
| "//build/config/compiler:no_goma_code", |
| |
| # Must be after no_chromium_code for warning flags to be ordered correctly. |
| ":minizip_warnings", |
| ] |
| public_configs = [ ":zlib_config" ] |
| } |