| # Copyright 2018 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. |
| |
| import("//build/config/features.gni") |
| |
| if (safe_browsing_mode == 1) { |
| static_library("unrar") { |
| sources = [ |
| "src/archive.cpp", |
| "src/arcread.cpp", |
| "src/blake2s.cpp", |
| "src/cmddata.cpp", |
| "src/consio.cpp", |
| "src/crc.cpp", |
| "src/crypt.cpp", |
| "src/encname.cpp", |
| "src/errhnd.cpp", |
| "src/extinfo.cpp", |
| "src/extract.cpp", |
| "src/filcreat.cpp", |
| "src/file.cpp", |
| "src/filefn.cpp", |
| "src/filestr.cpp", |
| "src/find.cpp", |
| "src/getbits.cpp", |
| "src/global.cpp", |
| "src/hash.cpp", |
| "src/headers.cpp", |
| "src/list.cpp", |
| "src/match.cpp", |
| "src/options.cpp", |
| "src/pathfn.cpp", |
| "src/qopen.cpp", |
| "src/rarvm.cpp", |
| "src/rawread.cpp", |
| "src/rdwrfn.cpp", |
| "src/recvol.cpp", |
| "src/resource.cpp", |
| "src/rijndael.cpp", |
| "src/rs.cpp", |
| "src/rs16.cpp", |
| "src/scantree.cpp", |
| "src/secpassword.cpp", |
| "src/sha1.cpp", |
| "src/sha256.cpp", |
| "src/smallfn.cpp", |
| "src/strfn.cpp", |
| "src/strlist.cpp", |
| "src/system.cpp", |
| "src/threadpool.cpp", |
| "src/timefn.cpp", |
| "src/ui.cpp", |
| "src/unicode.cpp", |
| "src/unpack.cpp", |
| "src/unrar_wrapper.cc", |
| "src/volume.cpp", |
| ] |
| if (is_win) { |
| sources += [ "src/isnt.cpp" ] |
| } |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ |
| "//build/config/compiler:no_chromium_code", |
| |
| # This must be after no_chromium_code for warning flags to be ordered correctly |
| ":unrar_warnings", |
| ] |
| |
| defines = [ |
| "_FILE_OFFSET_BITS=64", |
| "LARGEFILE_SOURCE", |
| "RAR_SMP", |
| "SILENT", |
| "NOVOLUME", |
| |
| # The following is set to disable certain macro definitions in the unrar |
| # source code. |
| "CHROMIUM_UNRAR", |
| |
| # Disables exceptions in unrar, replaces them with process termination. |
| "UNRAR_NO_EXCEPTIONS", |
| ] |
| |
| deps = [ |
| "//base", |
| ] |
| } |
| } |
| |
| config("unrar_warnings") { |
| cflags = [ |
| # unrar frequently drops parentheses around logical ops |
| "-Wno-logical-op-parentheses", |
| |
| # unrar frequently has dangling elses |
| "-Wno-dangling-else", |
| |
| # unrar has several non-exhaustive switch statements |
| "-Wno-switch", |
| |
| # unrar has several unused functions |
| "-Wno-unused-function", |
| |
| # unrar has missing braces for initialization in rarvm.cpp |
| "-Wno-missing-braces", |
| ] |
| } |