1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//build/config/rust.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
declare_args() {
# Enables building a development / debugging binary.
enable_qr_print = false
}
buildflag_header("rust_buildflags") {
header = "rust_buildflags.h"
flags = [ "ENABLE_RUST_QR=$enable_rust_qr" ]
}
# Separate target to:
# - Limit `visibility` (stricter than dir-level `DEPS` would allow)
# - Allow `//chrome/services/qr_code_generator_service/public/cpp` to check the
# feature state without depending directly on `:qr_code_generator`
#
# TODO(https://crbug.com/1431991): Remove the `qr_code_generator_features`
# target once the Rusty QR Code Generator project is completed.
source_set("qr_code_generator_features") {
sources = [
"features.cc",
"features.h",
]
deps = [
":rust_buildflags",
"//base",
]
visibility = [
":qr_code_generator",
":unit_tests",
"//chrome/services/qrcode_generator/public/cpp:cpp",
]
}
source_set("qr_code_generator") {
sources = [
"dino_image.h",
"qr_code_generator.cc",
"qr_code_generator.h",
]
deps = [
":qr_code_generator_features",
":rust_buildflags",
"//base",
]
if (enable_rust_qr) {
deps += [
":qr_code_generator_ffi_glue",
"//build/rust:cxx_cppdeps",
]
}
public_deps = [ "//base" ]
}
if (enable_rust_qr) {
rust_static_library("qr_code_generator_ffi_glue") {
allow_unsafe = true # Needed for FFI that underpins the `cxx` crate.
crate_root = "qr_code_generator_ffi_glue.rs"
sources = [ "qr_code_generator_ffi_glue.rs" ]
cxx_bindings = [ "qr_code_generator_ffi_glue.rs" ]
visibility = [ ":qr_code_generator" ]
deps = [ "//third_party/rust/qr_code/v2:lib" ]
}
}
source_set("unit_tests") {
testonly = true
sources = [ "qr_code_generator_unittest.cc" ]
deps = [
":qr_code_generator",
":qr_code_generator_features",
":rust_buildflags",
"//base",
"//base/test:test_support",
"//testing/gtest",
]
}
if (enable_qr_print) {
executable("qr_print") {
sources = [ "qr_print.cc" ]
deps = [ ":qr_code_generator" ]
}
}
fuzzer_test("qr_code_generator_fuzzer") {
sources = [ "qr_code_generator_fuzzer.cc" ]
deps = [ ":qr_code_generator" ]
}
|