mirror of https://github.com/bazelbuild/rules_cc
Merge pull request #146 from bazelbuild:meteorcloudy-patch-1
PiperOrigin-RevId: 475272913 Change-Id: Id75eee2933ee396ae5fc5cbe4941369b813b2c8e
This commit is contained in:
commit
13d212d39b
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"homepage": "https://github.com/bazelbuild/rules_cc"
|
||||||
|
"maintainers": [],
|
||||||
|
"versions": [],
|
||||||
|
"yanked_versions": {}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
matrix:
|
||||||
|
platform: ["centos7", "debian10", "macos", "ubuntu2004", "windows"]
|
||||||
|
tasks:
|
||||||
|
verify_targets:
|
||||||
|
name: "Verify build targets"
|
||||||
|
platform: ${{ platform }}
|
||||||
|
build_targets:
|
||||||
|
- "@rules_cc//cc/..."
|
||||||
|
- "@rules_cc//tools/runfiles"
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"integrity": "",
|
||||||
|
"strip_prefix": "{REPO}-{VERSION}",
|
||||||
|
"url": "https://github.com/{OWNER}/{REPO}/archive/refs/tags/{TAG}.tar.gz"
|
||||||
|
}
|
|
@ -1 +1 @@
|
||||||
* @oquenchil @c-mita @comius
|
* @oquenchil @c-mita @comius @buildbreaker2021
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
module(
|
module(
|
||||||
name = "rules_cc",
|
name = "rules_cc",
|
||||||
compatibility_level = 1,
|
compatibility_level = 1,
|
||||||
toolchains_to_register = ["@local_config_cc_toolchains//:all"],
|
version = "0.0.3",
|
||||||
version = "0.0.1",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
bazel_dep(name = "bazel_skylib", version = "1.0.3")
|
bazel_dep(name = "bazel_skylib", version = "1.0.3")
|
||||||
|
@ -11,3 +10,5 @@ bazel_dep(name = "platforms", version = "0.0.4")
|
||||||
cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure")
|
cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure")
|
||||||
|
|
||||||
use_repo(cc_configure, "local_config_cc_toolchains")
|
use_repo(cc_configure, "local_config_cc_toolchains")
|
||||||
|
|
||||||
|
register_toolchains("@local_config_cc_toolchains//:all")
|
||||||
|
|
24
WORKSPACE
24
WORKSPACE
|
@ -2,6 +2,30 @@ workspace(name = "rules_cc")
|
||||||
|
|
||||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||||
|
|
||||||
|
http_archive(
|
||||||
|
name = "platforms",
|
||||||
|
sha256 = "5308fc1d8865406a49427ba24a9ab53087f17f5266a7aabbfc28823f3916e1ca",
|
||||||
|
urls = [
|
||||||
|
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
|
||||||
|
"https://github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
http_archive(
|
||||||
|
name = "io_bazel_rules_go",
|
||||||
|
sha256 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366",
|
||||||
|
urls = [
|
||||||
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip",
|
||||||
|
"https://github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
|
||||||
|
|
||||||
|
go_rules_dependencies()
|
||||||
|
|
||||||
|
go_register_toolchains(version = "1.18.4")
|
||||||
|
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "bazel_federation",
|
name = "bazel_federation",
|
||||||
sha256 = "0d6893f0d18f417a3324ce7f0ed2e6e5b825d6d5ab42f0f3d7877cb313f36453",
|
sha256 = "0d6893f0d18f417a3324ce7f0ed2e6e5b825d6d5ab42f0f3d7877cb313f36453",
|
||||||
|
|
1
cc/BUILD
1
cc/BUILD
|
@ -27,6 +27,7 @@ filegroup(
|
||||||
exports_files([
|
exports_files([
|
||||||
"defs.bzl",
|
"defs.bzl",
|
||||||
"action_names.bzl",
|
"action_names.bzl",
|
||||||
|
"system_library.bzl",
|
||||||
])
|
])
|
||||||
|
|
||||||
# The toolchain type used to distinguish cc toolchains.
|
# The toolchain type used to distinguish cc toolchains.
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
load("//cc/private/rules_impl:cc_flags_supplier.bzl", _cc_flags_supplier = "cc_flags_supplier")
|
load("//cc/private/rules_impl:cc_flags_supplier.bzl", _cc_flags_supplier = "cc_flags_supplier")
|
||||||
load("//cc/private/rules_impl:compiler_flag.bzl", _compiler_flag = "compiler_flag")
|
load("//cc/private/rules_impl:compiler_flag.bzl", _compiler_flag = "compiler_flag")
|
||||||
|
load("//cc/private/rules_impl:native.bzl", "NativeCcInfo", "NativeCcToolchainConfigInfo", "NativeDebugPackageInfo", "native_cc_common")
|
||||||
|
|
||||||
_MIGRATION_TAG = "__CC_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"
|
_MIGRATION_TAG = "__CC_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"
|
||||||
|
|
||||||
|
@ -173,3 +174,11 @@ def compiler_flag(**attrs):
|
||||||
**attrs: Rule attributes
|
**attrs: Rule attributes
|
||||||
"""
|
"""
|
||||||
_compiler_flag(**_add_tags(attrs))
|
_compiler_flag(**_add_tags(attrs))
|
||||||
|
|
||||||
|
cc_common = native_cc_common
|
||||||
|
|
||||||
|
CcInfo = NativeCcInfo
|
||||||
|
|
||||||
|
CcToolchainConfigInfo = NativeCcToolchainConfigInfo
|
||||||
|
|
||||||
|
DebugPackageInfo = NativeDebugPackageInfo
|
||||||
|
|
|
@ -71,6 +71,10 @@ Returns the current `CcToolchainInfo`.
|
||||||
if not CC_TOOLCHAIN_TYPE in ctx.toolchains:
|
if not CC_TOOLCHAIN_TYPE in ctx.toolchains:
|
||||||
fail("In order to use find_cc_toolchain, your rule has to depend on C++ toolchain. See find_cc_toolchain.bzl docs for details.")
|
fail("In order to use find_cc_toolchain, your rule has to depend on C++ toolchain. See find_cc_toolchain.bzl docs for details.")
|
||||||
toolchain_info = ctx.toolchains[CC_TOOLCHAIN_TYPE]
|
toolchain_info = ctx.toolchains[CC_TOOLCHAIN_TYPE]
|
||||||
|
if toolchain_info == None:
|
||||||
|
# No cpp toolchain was found, so report an error.
|
||||||
|
fail("Unable to find a CC toolchain using toolchain resolution. Target: %s, Platform: %s, Exec platform: %s" %
|
||||||
|
(ctx.label, ctx.fragments.platform.platform, ctx.fragments.platform.host_platform))
|
||||||
if hasattr(toolchain_info, "cc_provider_in_toolchain") and hasattr(toolchain_info, "cc"):
|
if hasattr(toolchain_info, "cc_provider_in_toolchain") and hasattr(toolchain_info, "cc"):
|
||||||
return toolchain_info.cc
|
return toolchain_info.cc
|
||||||
return toolchain_info
|
return toolchain_info
|
||||||
|
@ -93,8 +97,7 @@ def find_cpp_toolchain(ctx):
|
||||||
"""
|
"""
|
||||||
return find_cc_toolchain(ctx)
|
return find_cc_toolchain(ctx)
|
||||||
|
|
||||||
# buildifier: disable=unused-variable
|
def use_cc_toolchain(mandatory = False):
|
||||||
def use_cc_toolchain(mandatory = True):
|
|
||||||
"""
|
"""
|
||||||
Helper to depend on the cc toolchain.
|
Helper to depend on the cc toolchain.
|
||||||
|
|
||||||
|
@ -107,9 +110,8 @@ def use_cc_toolchain(mandatory = True):
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
mandatory: Whether or not it should be an error if the toolchain cannot be resolved.
|
mandatory: Whether or not it should be an error if the toolchain cannot be resolved.
|
||||||
Currently ignored, this will be enabled when optional toolchain types are added.
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
A list that can be used as the value for `rule.toolchains`.
|
A list that can be used as the value for `rule.toolchains`.
|
||||||
"""
|
"""
|
||||||
return [CC_TOOLCHAIN_TYPE]
|
return [config_common.toolchain_type(CC_TOOLCHAIN_TYPE, mandatory = mandatory)]
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
licenses(["notice"]) # Apache 2.0
|
licenses(["notice"]) # Apache 2.0
|
||||||
|
@ -16,3 +18,9 @@ filegroup(
|
||||||
"**/BUILD",
|
"**/BUILD",
|
||||||
]),
|
]),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
bzl_library(
|
||||||
|
name = "native_bzl",
|
||||||
|
srcs = ["native.bzl"],
|
||||||
|
visibility = ["//cc:__pkg__"],
|
||||||
|
)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
"""Rule that allows select() to differentiate between compilers."""
|
"""Rule that allows select() to differentiate between compilers."""
|
||||||
|
|
||||||
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
|
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain", "use_cpp_toolchain")
|
||||||
|
|
||||||
def _compiler_flag_impl(ctx):
|
def _compiler_flag_impl(ctx):
|
||||||
toolchain = find_cpp_toolchain(ctx)
|
toolchain = find_cpp_toolchain(ctx)
|
||||||
|
@ -25,7 +25,5 @@ compiler_flag = rule(
|
||||||
attrs = {
|
attrs = {
|
||||||
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
||||||
},
|
},
|
||||||
toolchains = [
|
toolchains = use_cpp_toolchain(),
|
||||||
"@bazel_tools//tools/cpp:toolchain_type", # copybara-use-repo-external-label
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Copyright 2022 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.
|
||||||
|
|
||||||
|
# Redefine native symbols with a new name as a workaround for
|
||||||
|
# exporting them in `//third_party/bazel_rules/rules_proto/proto:defs.bzl` with their original name.
|
||||||
|
#
|
||||||
|
# While we cannot force users to load these symbol due to the lack of a
|
||||||
|
# allowlisting mechanism, we can still export them and tell users to
|
||||||
|
# load it to make a future migration to pure Starlark easier.
|
||||||
|
|
||||||
|
"""Lovely workaround to be able to expose native constants pretending to be Starlark."""
|
||||||
|
|
||||||
|
# buildifier: disable=native-cc
|
||||||
|
NativeCcInfo = CcInfo
|
||||||
|
|
||||||
|
# buildifier: disable=native-cc
|
||||||
|
NativeDebugPackageInfo = DebugPackageInfo
|
||||||
|
|
||||||
|
# buildifier: disable=native-cc
|
||||||
|
NativeCcToolchainConfigInfo = CcToolchainConfigInfo
|
||||||
|
|
||||||
|
# buildifier: disable=native-cc
|
||||||
|
native_cc_common = cc_common
|
|
@ -382,10 +382,8 @@ def configure_unix_toolchain(repository_ctx, cpu_value, overriden_tools):
|
||||||
False,
|
False,
|
||||||
), ":")
|
), ":")
|
||||||
|
|
||||||
bazel_linkopts = "-lstdc++:-lm"
|
bazel_linklibs = "-lstdc++:-lm"
|
||||||
bazel_linklibs = ""
|
bazel_linkopts = ""
|
||||||
if hasattr(repository_ctx, "flag_enabled") and repository_ctx.flag_enabled("incompatible_linkopts_to_linklibs"):
|
|
||||||
bazel_linkopts, bazel_linklibs = bazel_linklibs, bazel_linkopts
|
|
||||||
link_opts = split_escaped(get_env_var(
|
link_opts = split_escaped(get_env_var(
|
||||||
repository_ctx,
|
repository_ctx,
|
||||||
"BAZEL_LINKOPTS",
|
"BAZEL_LINKOPTS",
|
||||||
|
|
|
@ -22,7 +22,7 @@ load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
licenses(["notice"]) # Apache 2.0
|
licenses(["notice"])
|
||||||
|
|
||||||
py_binary(
|
py_binary(
|
||||||
name = "legacy_fields_migrator",
|
name = "legacy_fields_migrator",
|
||||||
|
|
Loading…
Reference in New Issue