Merge pull request #2 from hcindyl:add-bazelrc PiperOrigin-RevId: 525836509 Change-Id: Ibe1a46715a7d3bf6a7d7c8ec8a7654737ff57752
diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000..24e7dea --- /dev/null +++ b/.bazelrc
@@ -0,0 +1,17 @@ +# Copyright 2023 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. + +# Build configurations for the project +build --action_env=BAZEL_CXXOPTS="-std=c++17" +build --action_env=CC="clang"
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..8410ba3 --- /dev/null +++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,96 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, education, socio-economic status, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +This Code of Conduct also applies outside the project spaces when the Project +Steward has a reasonable belief that an individual's behavior may have a +negative impact on the project or its community. + +## Conflict Resolution + +We do not believe that all conflict is bad; healthy debate and disagreement +often yield positive results. However, it is never okay to be disrespectful or +to engage in behavior that violates the project’s code of conduct. + +If you see someone violating the code of conduct, you are encouraged to address +the behavior directly with those involved. Many issues can be resolved quickly +and easily, and this gives people more control over the outcome of their +dispute. If you are unable to resolve the matter for any reason, or if the +behavior is threatening or harassing, report it. We are dedicated to providing +an environment where participants feel welcome and safe. + +Reports should be directed to *[Tor Jeremiassen](torerik@google.com)*, the +Project Steward(s) for *[MPACT-Sim](https://mpact.googlesource.com)*. It is the +Project Steward’s duty to receive and address reported violations of the code of +conduct. They will then work with a committee consisting of representatives from +the Open Source Programs Office and the Google Open Source Strategy team. If for +any reason you are uncomfortable reaching out to the Project Steward, please +email opensource@google.com. + +We will investigate every complaint, but you may not receive a direct response. +We will use our discretion in determining when and how to follow up on reported +incidents, which may range from not taking action to permanent expulsion from +the project and project-sponsored spaces. We will notify the accused of the +report and provide them an opportunity to discuss it before any action is taken. +The identity of the reporter will be omitted from the details of the report +supplied to the accused. In potentially harmful situations, such as ongoing +harassment or threats to anyone's safety, we may take action without notice. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +Note: A version of this file is also available in the +[New Project repo](https://github.com/google/new-project/blob/master/docs/code-of-conduct.md).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..37ae0a4 --- /dev/null +++ b/CONTRIBUTING.md
@@ -0,0 +1,33 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. + +## Before you begin + +### Sign our Contributor License Agreement + +Contributions to this project must be accompanied by a +[Contributor License Agreement](https://cla.developers.google.com/about) (CLA). +You (or your employer) retain the copyright to your contribution; this simply +gives us permission to use and redistribute your contributions as part of the +project. + +If you or your current employer have already signed the Google CLA (even if it +was for a different project), you probably don't need to do it again. + +Visit <https://cla.developers.google.com/> to see your current agreements or to +sign a new one. + +### Review our Community Guidelines + +This project follows +[Google's Open Source Community Guidelines](https://opensource.google/conduct/). + +## Contribution process + +### Code Reviews + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests.
diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..4648e5e --- /dev/null +++ b/SECURITY.md
@@ -0,0 +1,4 @@ +To report a security issue, please use [https://g.co/vulnz](https://g.co/vulnz). +We use g.co/vulnz for our intake, and do coordination and disclosure here on +GitHub (including using GitHub Security Advisory). The Google Security Team will +respond within 5 working days of your report on g.co/vulnz.
diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..0fefb4a --- /dev/null +++ b/build.sh
@@ -0,0 +1,28 @@ +#!/bin/bash +# Copyright 2023 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. + +# Fail on any error +set -e + +# Display commands being run +# Note, only use if necessary for debugging, and be careful about handling of +# any credentials. +# set -x + +# Build all targets +CC=clang BAZEL_CXXOPTS=-std=c++17 bazel build ...:all + +# Test all targets +CC=clang BAZEL_CXXOPTS=-std=c++17 bazel test ...:all
diff --git a/external/BUILD.antlr4 b/external/BUILD.antlr4 new file mode 100644 index 0000000..994787d --- /dev/null +++ b/external/BUILD.antlr4
@@ -0,0 +1,33 @@ +# Copyright 2023 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. + +load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake") + +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "all_srcs", + srcs = glob(["**"]), + visibility = ["//visibility:public"], +) + +cmake( + name = "antlr4", + cache_entries = { + "CMAKE_CXX_FLAGS": "-std=c++17", + }, + lib_source = ":all_srcs", + tags = ["requires-network"], + out_static_libs = ["libantlr4-runtime.a"], +)
diff --git a/external/BUILD.elfio b/external/BUILD.elfio new file mode 100644 index 0000000..b28e853 --- /dev/null +++ b/external/BUILD.elfio
@@ -0,0 +1,23 @@ +# Copyright 2023 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. + +# BUILD file to be used in the ELFIO repo (since it doesn't use bazel) + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "elfio", + hdrs = glob(["elfio/*.hpp"]), + includes = [""], +)
diff --git a/mpact/sim/decoder/mpact_sim_isa.bzl b/mpact/sim/decoder/mpact_sim_isa.bzl index 3b8957d..e1b684e 100644 --- a/mpact/sim/decoder/mpact_sim_isa.bzl +++ b/mpact/sim/decoder/mpact_sim_isa.bzl
@@ -101,8 +101,8 @@ srcs = [f for f in out_files if f.endswith(".cc")], hdrs = [f for f in out_files if f.endswith(".h")], deps = [ - Label(Label("//mpact/sim/generic:arch_state")), - Label(Label("//mpact/sim/generic:instruction")), + Label("//mpact/sim/generic:arch_state"), + Label("//mpact/sim/generic:instruction"), "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/strings:str_format", ] + deps, @@ -156,8 +156,8 @@ srcs = [f for f in out_files if f.endswith(".cc")], hdrs = [f for f in out_files if f.endswith(".h")], deps = [ - Label(Label("//mpact/sim/generic:arch_state")), - Label(Label("//mpact/sim/generic:instruction")), + Label("//mpact/sim/generic:arch_state"), + Label("//mpact/sim/generic:instruction"), "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/functional:any_invocable", "@com_google_absl//absl/strings:str_format",