mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
bazel: Limit define scope to specific cc targets (see #3757)
- Add `declare_[cc|objc]_library` macros to configure common `copts` and `local_defines` (where supported) on `[cc|objc]_library` targets. This limits the scope of defines to the specific target without inheritance by dependent targets. - `objc_library` does not currently support `local_defines` so we use `copts` instead of MacOS. - Use `**kwargs` to pass all other arguments to the actual cc target declaration.
This commit is contained in:
@@ -9,33 +9,16 @@ package(default_visibility = [
|
||||
|
||||
load("@bazel_skylib//lib:selects.bzl", "selects")
|
||||
load("@build_bazel_rules_apple//apple:apple.bzl", "apple_dynamic_framework_import")
|
||||
load("//bazel:library_helpers.bzl", "declare_cc_library", "declare_objc_library")
|
||||
load("//bazel/win:variables.bzl",
|
||||
WIN_DLLS="DLLS",
|
||||
WIN_DLLS_X64="DLLS_X64",
|
||||
WIN_SANDBOX_LIBS="SANDBOX_LIBS",
|
||||
WIN_COMMON_COPTS="COMMON_COPTS",
|
||||
WIN_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||
WIN_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG",
|
||||
WIN_COMMON_DEFINES="COMMON_DEFINES",
|
||||
WIN_COMMON_DEFINES_RELEASE="COMMON_DEFINES_RELEASE",
|
||||
WIN_COMMON_DEFINES_DEBUG="COMMON_DEFINES_DEBUG")
|
||||
WIN_SANDBOX_LIBS="SANDBOX_LIBS")
|
||||
load("//bazel/linux:variables.bzl",
|
||||
LINUX_SOS="SOS",
|
||||
LINUX_COMMON_COPTS="COMMON_COPTS",
|
||||
LINUX_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||
LINUX_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG",
|
||||
LINUX_COMMON_DEFINES="COMMON_DEFINES",
|
||||
LINUX_COMMON_DEFINES_RELEASE="COMMON_DEFINES_RELEASE",
|
||||
LINUX_COMMON_DEFINES_DEBUG="COMMON_DEFINES_DEBUG")
|
||||
LINUX_SOS="SOS")
|
||||
load("//bazel/mac:variables.bzl",
|
||||
"CEF_FRAMEWORK_NAME",
|
||||
MAC_COMMON_COPTS="COMMON_COPTS",
|
||||
MAC_COMMON_COPTS_RELEASE="COMMON_COPTS_RELEASE",
|
||||
MAC_COMMON_COPTS_DEBUG="COMMON_COPTS_DEBUG",
|
||||
MAC_COMMON_DEFINES="COMMON_DEFINES",
|
||||
MAC_COMMON_DEFINES_RELEASE="COMMON_DEFINES_RELEASE",
|
||||
MAC_COMMON_DEFINES_DEBUG="COMMON_DEFINES_DEBUG")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_import", "cc_library", "objc_library")
|
||||
"CEF_FRAMEWORK_NAME")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_import")
|
||||
|
||||
#
|
||||
# Define supported configurations.
|
||||
@@ -124,7 +107,7 @@ selects.config_setting_group(
|
||||
|
||||
# Public headers for cef_wrapper here.
|
||||
# Seperated from the actual cef_wrapper since the *.mm file needs access to these as well.
|
||||
cc_library(
|
||||
declare_cc_library(
|
||||
name = "cef_wrapper_headers",
|
||||
hdrs = glob(
|
||||
[
|
||||
@@ -137,7 +120,7 @@ cc_library(
|
||||
),
|
||||
)
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "cef_wrapper_apple",
|
||||
srcs = [
|
||||
"libcef_dll/wrapper/cef_library_loader_mac.mm",
|
||||
@@ -145,7 +128,7 @@ objc_library(
|
||||
implementation_deps = [":cef_wrapper_headers"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
declare_cc_library(
|
||||
name = "cef_wrapper",
|
||||
srcs = glob(
|
||||
[
|
||||
@@ -159,42 +142,9 @@ cc_library(
|
||||
"include/test/*.h",
|
||||
],
|
||||
),
|
||||
copts = select({
|
||||
"@platforms//os:windows": WIN_COMMON_COPTS,
|
||||
"@platforms//os:linux": LINUX_COMMON_COPTS,
|
||||
"@platforms//os:macos": MAC_COMMON_COPTS,
|
||||
"//conditions:default": None,
|
||||
}) + select({
|
||||
"@cef//:windows_opt": WIN_COMMON_COPTS_RELEASE,
|
||||
"@cef//:windows_dbg": WIN_COMMON_COPTS_DEBUG,
|
||||
"@cef//:windows_fastbuild": WIN_COMMON_COPTS_RELEASE,
|
||||
"@cef//:linux_opt": LINUX_COMMON_COPTS_RELEASE,
|
||||
"@cef//:linux_dbg": LINUX_COMMON_COPTS_DEBUG,
|
||||
"@cef//:linux_fastbuild": LINUX_COMMON_COPTS_RELEASE,
|
||||
"@cef//:macos_opt": MAC_COMMON_COPTS_RELEASE,
|
||||
"@cef//:macos_dbg": MAC_COMMON_COPTS_DEBUG,
|
||||
"@cef//:macos_fastbuild": MAC_COMMON_COPTS_RELEASE,
|
||||
"//conditions:default": None,
|
||||
}),
|
||||
defines = [
|
||||
"WRAPPING_CEF_SHARED",
|
||||
] + select({
|
||||
"@platforms//os:windows": WIN_COMMON_DEFINES,
|
||||
"@platforms//os:linux": LINUX_COMMON_DEFINES,
|
||||
"@platforms//os:macos": MAC_COMMON_DEFINES,
|
||||
"//conditions:default": None,
|
||||
}) + select({
|
||||
"@cef//:windows_opt": WIN_COMMON_DEFINES_RELEASE,
|
||||
"@cef//:windows_dbg": WIN_COMMON_DEFINES_DEBUG,
|
||||
"@cef//:windows_fastbuild": WIN_COMMON_DEFINES_RELEASE,
|
||||
"@cef//:linux_opt": LINUX_COMMON_DEFINES_RELEASE,
|
||||
"@cef//:linux_dbg": LINUX_COMMON_DEFINES_DEBUG,
|
||||
"@cef//:linux_fastbuild": LINUX_COMMON_DEFINES_RELEASE,
|
||||
"@cef//:macos_opt": MAC_COMMON_DEFINES_RELEASE,
|
||||
"@cef//:macos_dbg": MAC_COMMON_DEFINES_DEBUG,
|
||||
"@cef//:macos_fastbuild": MAC_COMMON_DEFINES_RELEASE,
|
||||
"//conditions:default": None,
|
||||
}),
|
||||
],
|
||||
deps = [":cef_wrapper_headers"] +
|
||||
select({
|
||||
"@platforms//os:macos": [":cef_wrapper_apple"],
|
||||
@@ -206,7 +156,7 @@ cc_library(
|
||||
)
|
||||
|
||||
# Only available on MacOS/Windows.
|
||||
cc_library(
|
||||
declare_cc_library(
|
||||
name = "cef_sandbox_linkflags",
|
||||
linkopts = select({
|
||||
"@platforms//os:macos": ["-lsandbox"],
|
||||
|
@@ -10,7 +10,8 @@ package(default_visibility = [
|
||||
":__subpackages__",
|
||||
])
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library", "objc_library")
|
||||
load("//bazel:library_helpers.bzl", "declare_cc_library", "declare_objc_library")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
#
|
||||
# Source file lists.
|
||||
@@ -53,7 +54,7 @@ filegroup(
|
||||
# MacOS targets.
|
||||
#
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "BrowserLibMac",
|
||||
srcs = srcs_common + srcs_browser + srcs_browser_mac,
|
||||
target_compatible_with = [
|
||||
@@ -65,7 +66,7 @@ objc_library(
|
||||
],
|
||||
)
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "RendererLibMac",
|
||||
srcs = srcs_common + srcs_renderer,
|
||||
target_compatible_with = [
|
||||
|
@@ -10,7 +10,8 @@ package(default_visibility = [
|
||||
":__subpackages__",
|
||||
])
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library", "objc_library")
|
||||
load("//bazel:library_helpers.bzl", "declare_cc_library", "declare_objc_library")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
#
|
||||
# Source file lists.
|
||||
@@ -40,7 +41,7 @@ srcs_renderer_mac = [
|
||||
# MacOS targets.
|
||||
#
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "BrowserLibMac",
|
||||
srcs = srcs_browser + srcs_browser_mac,
|
||||
target_compatible_with = [
|
||||
@@ -51,7 +52,7 @@ objc_library(
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
declare_cc_library(
|
||||
name = "RendererLibMac",
|
||||
srcs = srcs_renderer_mac,
|
||||
target_compatible_with = [
|
||||
|
@@ -10,7 +10,8 @@ package(default_visibility = [
|
||||
":__subpackages__",
|
||||
])
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library", "objc_library")
|
||||
load("//bazel:library_helpers.bzl", "declare_cc_library", "declare_objc_library")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
#
|
||||
# Source file lists.
|
||||
@@ -51,7 +52,7 @@ filegroup(
|
||||
srcs = ["resources/net"],
|
||||
)
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "BrowserLibMac",
|
||||
srcs = srcs_browser + srcs_browser_mac,
|
||||
target_compatible_with = [
|
||||
@@ -64,7 +65,7 @@ objc_library(
|
||||
],
|
||||
)
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "RendererLibMac",
|
||||
srcs = srcs_renderer_mac,
|
||||
target_compatible_with = [
|
||||
|
@@ -2,7 +2,8 @@
|
||||
# reserved. Use of this source code is governed by a BSD-style license that
|
||||
# can be found in the LICENSE file.
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library", "objc_library")
|
||||
load("//bazel:library_helpers.bzl", "declare_cc_library", "declare_objc_library")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
# Allow access from all //tests packages.
|
||||
package(default_visibility = [
|
||||
@@ -62,7 +63,7 @@ filegroup(
|
||||
# MacOS targets.
|
||||
#
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "BrowserLibMac",
|
||||
srcs = srcs_common + srcs_browser + srcs_browser_mac,
|
||||
target_compatible_with = [
|
||||
@@ -73,7 +74,7 @@ objc_library(
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
declare_cc_library(
|
||||
name = "RendererLibMac",
|
||||
srcs = srcs_common + srcs_renderer + srcs_renderer_mac,
|
||||
target_compatible_with = [
|
||||
@@ -89,7 +90,7 @@ cc_library(
|
||||
# Needs to be defined here because Bazel disallows direct access to files
|
||||
# outside of the package directory.
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "BrowserLibMacCefTests",
|
||||
srcs = srcs_browser_mac_ceftests,
|
||||
target_compatible_with = [
|
||||
@@ -101,7 +102,7 @@ objc_library(
|
||||
],
|
||||
)
|
||||
|
||||
objc_library(
|
||||
declare_objc_library(
|
||||
name = "RendererLibMacCefTests",
|
||||
srcs = srcs_renderer_mac_ceftests,
|
||||
target_compatible_with = [
|
||||
|
Reference in New Issue
Block a user