Add initial content of rules_cc repo

RELNOTES: None.
PiperOrigin-RevId: 227846116
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..939e534
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. 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. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## 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.
+
+## Community Guidelines
+
+This project follows [Google's Open Source Community
+Guidelines](https://opensource.google.com/conduct/).
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1ae74b3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,36 @@
+# C++ rules for Bazel
+
+This repository contains Starlark implementation of C++ rules in Bazel.
+
+The rules are being incrementally converted from their native implementations in the [Bazel source tree](https://source.bazel.build/bazel/+/master:src/main/java/com/google/devtools/build/lib/rules/cpp/).
+
+For the list of C++ rules, see the Bazel
+[documentation](https://docs.bazel.build/versions/master/be/overview.html).
+
+# Getting Started
+
+There is no need to use rules from this repository just yet. If you want to use
+rules\_cc anyway, add the following to your WORKSPACE file:
+
+```
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+    name = "rules_cc",
+    urls = ["https://github.com/bazelbuild/rules_cc/archive/TODO"],
+    sha256 = "TODO",
+)
+```
+
+Then, in your BUILD files, import and use the rules:
+
+```
+load("@rules_cc//cc:rules.bzl", "cc_library")
+cc_library(
+    ...
+)
+```
+
+# Migration Tools
+
+This repository also contains migration tools that can be used to migrate your
+project for Bazel incompatible changes.
diff --git a/cc/BUILD b/cc/BUILD
new file mode 100644
index 0000000..9a01f92
--- /dev/null
+++ b/cc/BUILD
@@ -0,0 +1 @@
+# Intentionally left empty
diff --git a/cc/rules.bzl b/cc/rules.bzl
new file mode 100644
index 0000000..48b8926
--- /dev/null
+++ b/cc/rules.bzl
@@ -0,0 +1,85 @@
+# Copyright 2018 The Bazel Authors. All rights reserved.
+#
+# 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
+#
+#    http://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.
+
+"""Starlark rules for building C++ projects."""
+
+def cc_binary(**attrs):
+    """Bazel cc_binary rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#cc_binary
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.cc_binary(**attrs)
+
+def cc_test(**attrs):
+    """Bazel cc_test rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#cc_test
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.cc_test(**attrs)
+
+def cc_library(**attrs):
+    """Bazel cc_library rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.cc_library(**attrs)
+
+def cc_import(**attrs):
+    """Bazel cc_import rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#cc_import
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.cc_import(**attrs)
+
+def cc_proto_library(**attrs):
+    """Bazel cc_proto_library rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#cc_proto_library
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.cc_proto_library(**attrs)
+
+def fdo_prefetch_hints(**attrs):
+    """Bazel fdo_prefetch_hints rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#fdo_prefetch_hints
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.fdo_prefetch_hints(**attrs)
+
+def fdo_profile(**attrs):
+    """Bazel fdo_profile rule.
+
+    https://docs.bazel.build/versions/master/be/c-cpp.html#fdo_profile
+
+    Args:
+      **attrs: Rule attributes
+    """
+    native.fdo_profile(**attrs)