# 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/config/android/rules.gni") import("//third_party/protobuf/proto_library.gni") # The purpose of these targets is test that |deps| satisfies java compilation # dependencies, and that |import_dirs| allows us to deal with various relative # imports to other proto dependencies. Although we should strive to avoid using # |import_dirs| and relative import paths, preferring to use absolute imports # whenever possible. See https://crbug.com/691451. While this target is # primarily to test that the Java proto targets build correctly, also build the # C++ versions of the protos as well. There are currently some configurations of # Java protos that can be built but will not work for C++, see # https://crbug.com/1039014, so make sure we don't create any tests that would # violate that. group("test_build_protos") { deps = [ ":absolute_root_proto", ":absolute_root_proto_java", ":relative_root_proto", ":relative_root_proto_java", ] } proto_java_library("absolute_root_proto_java") { proto_path = "//" import_dirs = [ "relative_dep/" ] sources = [ "root/absolute_child.proto", "root/absolute_root.proto", ] deps = [ ":absolute_dep_proto_java", ":relative_dep_proto_java", ] } proto_java_library("relative_root_proto_java") { proto_path = "root/" import_dirs = [ "relative_dep/", "//", ] sources = [ "root/relative_child.proto", "root/relative_root.proto", ] deps = [ ":absolute_dep_proto_java", ":relative_dep_proto_java", ] } proto_java_library("absolute_dep_proto_java") { proto_path = "//" sources = [ "absolute_dep/absolute_dep.proto" ] } proto_java_library("relative_dep_proto_java") { proto_path = "relative_dep/" sources = [ "relative_dep/relative_dep.proto" ] } proto_library("absolute_root_proto") { proto_in_dir = "//" import_dirs = [ "relative_dep/" ] sources = [ "root/absolute_child.proto", "root/absolute_root.proto", ] link_deps = [ ":absolute_dep_proto", ":relative_dep_proto", ] } proto_library("relative_root_proto") { proto_in_dir = "root/" import_dirs = [ "relative_dep/", "//", ] sources = [ "root/relative_child.proto", "root/relative_root.proto", ] link_deps = [ ":absolute_dep_proto", ":relative_dep_proto", ] } proto_library("absolute_dep_proto") { proto_in_dir = "//" sources = [ "absolute_dep/absolute_dep.proto" ] } proto_library("relative_dep_proto") { proto_in_dir = "relative_dep/" sources = [ "relative_dep/relative_dep.proto" ] }