blob: 14eac6a0d41c46fd5e0bfc54f0f1c4b5ab15b8a3 [file] [log] [blame]
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Emboss C++ code generator.
load("@rules_python//python:py_binary.bzl", "py_binary")
load("@rules_python//python:py_library.bzl", "py_library")
load(":build_defs.bzl", "cpp_golden_test", "emboss_cc_test")
package(
default_visibility = [
"//visibility:private",
],
features = ["-layering_check"],
)
py_binary(
name = "emboss_codegen_cpp",
srcs = ["emboss_codegen_cpp.py"],
python_version = "PY3",
visibility = ["//visibility:public"],
deps = [
":header_generator",
"//compiler/util:ir_data",
],
)
py_library(
name = "attributes",
srcs = ["attributes.py"],
deps = [],
)
py_library(
name = "header_generator",
srcs = ["header_generator.py"],
data = [
"generated_code_templates",
],
deps = [
":attributes",
"//compiler/back_end/util:code_template",
"//compiler/util:attribute_util",
"//compiler/util:ir_data",
"//compiler/util:ir_util",
"//compiler/util:name_conversion",
"//compiler/util:resources",
],
)
py_test(
name = "header_generator_test",
srcs = ["header_generator_test.py"],
deps = [
":header_generator",
"//compiler/front_end:glue",
"//compiler/util:test_util",
],
)
emboss_cc_test(
name = "span_se_log_file_status_emb_generated_code_test",
srcs = [
"testcode/read_log_file_status_test.cc",
],
deps = [
"//testdata:span_se_log_file_status_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "nested_structure_test",
srcs = [
"testcode/nested_structure_test.cc",
],
deps = [
"//testdata:nested_structure_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "alignments_test",
srcs = [
"testcode/alignments_test.cc",
],
deps = [
"//testdata:alignments_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "condition_test",
srcs = [
"testcode/condition_test.cc",
],
deps = [
"//testdata:condition_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "enum_test",
srcs = [
"testcode/enum_test.cc",
],
deps = [
"//testdata:enum_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "enum_case_test",
srcs = [
"testcode/enum_case_test.cc",
],
deps = [
"//testdata:enum_case_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "explicit_sizes_test",
srcs = [
"testcode/explicit_sizes_test.cc",
],
deps = [
"//testdata:explicit_sizes_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "importer_test",
srcs = [
"testcode/importer_test.cc",
],
deps = [
"//testdata:importer_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "importer2_test",
srcs = [
"testcode/importer2_test.cc",
],
deps = [
"//testdata:importer2_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "uint_sizes_test",
srcs = [
"testcode/uint_sizes_test.cc",
],
deps = [
"//testdata:uint_sizes_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "int_sizes_test",
srcs = [
"testcode/int_sizes_test.cc",
],
deps = [
"//testdata:int_sizes_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "float_test",
srcs = [
"testcode/float_test.cc",
],
deps = [
"//testdata:float_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "dynamic_size_test",
srcs = [
"testcode/dynamic_size_test.cc",
],
deps = [
"//testdata:dynamic_size_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "auto_array_size_test",
srcs = [
"testcode/auto_array_size_test.cc",
],
deps = [
"//testdata:auto_array_size_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "no_enum_traits_test",
srcs = [
"testcode/no_enum_traits_test.cc",
],
deps = [
"//testdata:no_enum_traits_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "start_size_range_test",
srcs = [
"testcode/start_size_range_test.cc",
],
deps = [
"//testdata:start_size_range_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "bcd_test",
srcs = [
"testcode/bcd_test.cc",
],
deps = [
"//testdata:bcd_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "namespace_test",
srcs = [
"testcode/namespace_test.cc",
],
deps = [
"//testdata:absolute_cpp_namespace_emboss",
"//testdata:cpp_namespace_emboss",
"//testdata:no_cpp_namespace_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "requires_test",
srcs = [
"testcode/requires_test.cc",
],
deps = [
"//testdata:requires_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "subtypes_test",
srcs = [
"testcode/subtypes_test.cc",
],
deps = [
"//testdata:subtypes_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "inline_type_test",
srcs = [
"testcode/inline_type_test.cc",
],
deps = [
"//testdata:inline_type_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "bits_test",
srcs = [
"testcode/bits_test.cc",
],
deps = [
"//runtime/cpp:cpp_utils",
"//testdata:bits_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "anonymous_bits_test",
srcs = [
"testcode/anonymous_bits_test.cc",
],
deps = [
"//runtime/cpp:cpp_utils",
"//testdata:anonymous_bits_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "next_keyword_test",
srcs = [
"testcode/next_keyword_test.cc",
],
deps = [
"//testdata:next_keyword_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "virtual_field_test",
srcs = [
"testcode/virtual_field_test.cc",
],
deps = [
"//testdata:virtual_field_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "text_format_test",
srcs = [
"testcode/text_format_test.cc",
],
deps = [
"//testdata:text_format_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "parameters_test",
srcs = [
"testcode/parameters_test.cc",
],
deps = [
"//testdata:parameters_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "complex_structure_test",
srcs = ["testcode/complex_structure_test.cc"],
deps = [
"//testdata:complex_structure_emboss",
"@com_google_googletest//:gtest_main",
],
)
emboss_cc_test(
name = "complex_offset_test",
srcs = ["testcode/complex_offset_test.cc"],
deps = [
"//testdata:complex_offset_emboss",
"@com_google_googletest//:gtest_main",
],
)
# New golden test infrastructure
py_library(
name = "one_golden_test_lib",
srcs = ["one_golden_test.py"],
)
py_binary(
name = "run_one_golden_test",
srcs = ["run_one_golden_test.py"],
deps = [":one_golden_test_lib"],
)
cpp_golden_test(
name = "anonymous_bits_golden_test",
emb_file = "//testdata:anonymous_bits.emb",
golden_file = "//testdata/golden_cpp:anonymous_bits.emb.h",
)
cpp_golden_test(
name = "bits_golden_test",
emb_file = "//testdata:bits.emb",
golden_file = "//testdata/golden_cpp:bits.emb.h",
)
cpp_golden_test(
name = "absolute_cpp_namespace_golden_test",
emb_file = "//testdata:absolute_cpp_namespace.emb",
golden_file = "//testdata/golden_cpp:absolute_cpp_namespace.emb.h",
)
cpp_golden_test(
name = "alignments_golden_test",
emb_file = "//testdata:alignments.emb",
golden_file = "//testdata/golden_cpp:alignments.emb.h",
)
cpp_golden_test(
name = "auto_array_size_golden_test",
emb_file = "//testdata:auto_array_size.emb",
golden_file = "//testdata/golden_cpp:auto_array_size.emb.h",
)
cpp_golden_test(
name = "bcd_golden_test",
emb_file = "//testdata:bcd.emb",
golden_file = "//testdata/golden_cpp:bcd.emb.h",
)
cpp_golden_test(
name = "complex_offset_golden_test",
emb_file = "//testdata:complex_offset.emb",
golden_file = "//testdata/golden_cpp:complex_offset.emb.h",
)
cpp_golden_test(
name = "complex_structure_golden_test",
emb_file = "//testdata:complex_structure.emb",
golden_file = "//testdata/golden_cpp:complex_structure.emb.h",
)
cpp_golden_test(
name = "condition_golden_test",
emb_file = "//testdata:condition.emb",
golden_file = "//testdata/golden_cpp:condition.emb.h",
)
cpp_golden_test(
name = "cpp_namespace_golden_test",
emb_file = "//testdata:cpp_namespace.emb",
golden_file = "//testdata/golden_cpp:cpp_namespace.emb.h",
)
cpp_golden_test(
name = "dynamic_size_golden_test",
emb_file = "//testdata:dynamic_size.emb",
golden_file = "//testdata/golden_cpp:dynamic_size.emb.h",
)
cpp_golden_test(
name = "enum_case_golden_test",
emb_file = "//testdata:enum_case.emb",
golden_file = "//testdata/golden_cpp:enum_case.emb.h",
)
cpp_golden_test(
name = "enum_golden_test",
emb_file = "//testdata:enum.emb",
golden_file = "//testdata/golden_cpp:enum.emb.h",
)
cpp_golden_test(
name = "explicit_sizes_golden_test",
emb_file = "//testdata:explicit_sizes.emb",
golden_file = "//testdata/golden_cpp:explicit_sizes.emb.h",
)
cpp_golden_test(
name = "float_golden_test",
emb_file = "//testdata:float.emb",
golden_file = "//testdata/golden_cpp:float.emb.h",
)
cpp_golden_test(
name = "imported_golden_test",
emb_file = "//testdata:imported.emb",
golden_file = "//testdata/golden_cpp:imported.emb.h",
)
cpp_golden_test(
name = "inline_type_golden_test",
emb_file = "//testdata:inline_type.emb",
golden_file = "//testdata/golden_cpp:inline_type.emb.h",
)
cpp_golden_test(
name = "int_sizes_golden_test",
emb_file = "//testdata:int_sizes.emb",
golden_file = "//testdata/golden_cpp:int_sizes.emb.h",
)
cpp_golden_test(
name = "large_array_golden_test",
emb_file = "//testdata:large_array.emb",
golden_file = "//testdata/golden_cpp:large_array.emb.h",
)
cpp_golden_test(
name = "nested_structure_golden_test",
emb_file = "//testdata:nested_structure.emb",
golden_file = "//testdata/golden_cpp:nested_structure.emb.h",
)
cpp_golden_test(
name = "next_keyword_golden_test",
emb_file = "//testdata:next_keyword.emb",
golden_file = "//testdata/golden_cpp:next_keyword.emb.h",
)
cpp_golden_test(
name = "no_cpp_namespace_golden_test",
emb_file = "//testdata:no_cpp_namespace.emb",
golden_file = "//testdata/golden_cpp:no_cpp_namespace.emb.h",
)
cpp_golden_test(
name = "no_enum_traits_golden_test",
emb_file = "//testdata:no_enum_traits.emb",
golden_file = "//testdata/golden_cpp:no_enum_traits.emb.h",
)
cpp_golden_test(
name = "parameters_golden_test",
emb_file = "//testdata:parameters.emb",
golden_file = "//testdata/golden_cpp:parameters.emb.h",
)
cpp_golden_test(
name = "requires_golden_test",
emb_file = "//testdata:requires.emb",
golden_file = "//testdata/golden_cpp:requires.emb.h",
)
cpp_golden_test(
name = "start_size_range_golden_test",
emb_file = "//testdata:start_size_range.emb",
golden_file = "//testdata/golden_cpp:start_size_range.emb.h",
)
cpp_golden_test(
name = "subtypes_golden_test",
emb_file = "//testdata:subtypes.emb",
golden_file = "//testdata/golden_cpp:subtypes.emb.h",
)
cpp_golden_test(
name = "text_format_golden_test",
emb_file = "//testdata:text_format.emb",
golden_file = "//testdata/golden_cpp:text_format.emb.h",
)
cpp_golden_test(
name = "uint_sizes_golden_test",
emb_file = "//testdata:uint_sizes.emb",
golden_file = "//testdata/golden_cpp:uint_sizes.emb.h",
)
cpp_golden_test(
name = "virtual_field_golden_test",
emb_file = "//testdata:virtual_field.emb",
golden_file = "//testdata/golden_cpp:virtual_field.emb.h",
)
cpp_golden_test(
name = "importer_golden_test",
emb_file = "//testdata:importer.emb",
golden_file = "//testdata/golden_cpp:importer.emb.h",
)
cpp_golden_test(
name = "importer2_golden_test",
emb_file = "//testdata:importer2.emb",
golden_file = "//testdata/golden_cpp:importer2.emb.h",
)
cpp_golden_test(
name = "imported_genfiles_golden_test",
emb_file = "//testdata:imported_genfiles.emb",
golden_file = "//testdata/golden_cpp:imported_genfiles.emb.h",
)