Skip to content

Commit

Permalink
chore: add boost bazel tests (#3)
Browse files Browse the repository at this point in the history
One minor source change, but it was sent as a PR upstream boostorg#401
  • Loading branch information
andrewkatson authored Apr 30, 2024
1 parent f339fa2 commit 209ff53
Show file tree
Hide file tree
Showing 15 changed files with 7,298 additions and 15 deletions.
1 change: 1 addition & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
test
3 changes: 2 additions & 1 deletion .bazelrc
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

common --enable_bzlmod
build --incompatible_use_platforms_repo_for_constraints
build --incompatible_enable_cc_toolchain_resolution
build --incompatible_strict_action_env
build --enable_runfiles
build --registry=https://raw.githubusercontent.com/bazelboost/registry/main
build --registry=https://bcr.bazel.build
query --registry=https://raw.githubusercontent.com/bazelboost/registry/main
query --registry=https://bcr.bazel.build

try-import %workspace%/user.bazelrc
18 changes: 18 additions & 0 deletions .github/workflows/bazel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: bazel

on: [pull_request]

jobs:
test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- run: bazelisk test ... -k
working-directory: test
131 changes: 120 additions & 11 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,151 @@ load("@rules_cc//cc:defs.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

_COMMON_DEPS = [
"@boost.bind",
"@boost.config",
"@boost.core",
"@boost.date_time",
"@boost.move",
"@boost.system",
"@boost.type_traits",
"@boost.chrono",
]

_COMMON_HDRS = [
"include/boost/thread/detail/*.hpp",
"include/boost/thread/*.hpp",
"include/boost/thread/futures/*.hpp",
"include/boost/thread/csbl/*.hpp",
"include/boost/thread/executors/*.hpp",
]

_WINDOWS_HDRS = [
"include/boost/thread/win32/*.hpp",
]

_POSIX_HDRS = [
"include/boost/thread/pthread/*.hpp",
]

_MAC_HDRS = [
"include/boost/thread/pthread/*.hpp",
]

_WINDOWS_SRCS = [
"src/win32/*.cpp",
]

_MAC_SRCS = [
"src/pthread/once.cpp",
"src/pthread/thread.cpp",
]

_POSIX_SRCS = [
"src/pthread/thread.cpp",
"src/pthread/once.cpp",
]

_COMMON_SRCS = [
"src/future.cpp",
]

_COMMON_EXCLUDE_SRCS = ["src/pthread/once_atomic.cpp"]

cc_library(
name = "thread_posix",
target_compatible_with = select({
"@platforms//os:windows": ["@platforms//:incompatible"],
"@platforms//os:macos": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
hdrs = glob(_POSIX_HDRS + _COMMON_HDRS),
srcs = glob(_POSIX_SRCS + _COMMON_SRCS, exclude = _COMMON_EXCLUDE_SRCS),
includes = ["include"],
deps = _COMMON_DEPS,
defines = [
"BOOST_THREAD_DONT_USE_ATOMIC",
],
)

cc_library(
name = "thread_windows",
target_compatible_with = select({
"@platforms//os:windows": [],
"@platforms//os:macos": ["@platforms//:incompatible"],
"//conditions:default": ["@platforms//:incompatible"],
}),
hdrs = glob(_WINDOWS_HDRS + _COMMON_HDRS),
srcs = glob(_WINDOWS_SRCS + _COMMON_SRCS, exclude = _COMMON_EXCLUDE_SRCS),
includes = ["include"],
linkopts = ["-DEFAULTLIB:shell32"],
local_defines = [
"BOOST_THREAD_BUILD_LIB",
],
defines = [
"BOOST_THREAD_WIN32",
"BOOST_THREAD_DONT_USE_ATOMIC",
],
deps = _COMMON_DEPS + [
"@boost.atomic",
],
)

cc_library(
name = "thread_mac",
target_compatible_with = select({
"@platforms//os:windows": ["@platforms//:incompatible"],
"@platforms//os:macos": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
hdrs = glob(_MAC_HDRS + _COMMON_HDRS),
srcs = glob(_MAC_SRCS + _COMMON_SRCS, exclude = _COMMON_EXCLUDE_SRCS),
includes = ["include"],
defines = [
"BOOST_THREAD_DONT_USE_ATOMIC",
],
deps = _COMMON_DEPS,
)

cc_library(
name = "boost.thread",
hdrs = glob([
"include/**/*.hpp",
"include/**/*.h",
]),
], exclude = _POSIX_HDRS + _WINDOWS_HDRS + _MAC_HDRS + _COMMON_HDRS),
includes = ["include"],
srcs = glob(["src/**/*.cpp"], exclude = _POSIX_SRCS + _WINDOWS_SRCS + _MAC_SRCS + _COMMON_SRCS + _COMMON_EXCLUDE_SRCS),
deps = [
"@boost.algorithm",
"@boost.assert",
"@boost.atomic",
"@boost.bind",
"@boost.chrono",
"@boost.concept_check",
"@boost.config",
"@boost.container",
"@boost.container_hash",
"@boost.core",
"@boost.date_time",
"@boost.exception",
"@boost.function",
"@boost.intrusive",
"@boost.io",
"@boost.iterator",
"@boost.lexical_cast",
"@boost.move",
"@boost.optional",
"@boost.predef",
"@boost.preprocessor",
"@boost.smart_ptr",
"@boost.static_assert",
"@boost.system",
"@boost.throw_exception",
"@boost.tuple",
"@boost.type_traits",
"@boost.utility",
"@boost.winapi",
],
] + select({
"@platforms//os:windows": [
":thread_windows",
"@boost.winapi",
],
"@platforms//os:macos": [
":thread_mac",
],
"//conditions:default": [
":thread_posix",
],
}) + _COMMON_DEPS,
)
7 changes: 4 additions & 3 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ module(
)

bazel_dep(name = "rules_cc", version = "0.0.8")
bazel_dep(name = "platforms", version = "0.0.7")
bazel_dep(name = "boost.algorithm", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.assert", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.atomic", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.bind", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.chrono", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.chrono", version = "1.83.0.bzl.2")
bazel_dep(name = "boost.concept_check", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.config", version = "1.83.0.bzl.6")
bazel_dep(name = "boost.container", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.container_hash", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.core", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.date_time", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.date_time", version = "1.83.0.bzl.2")
bazel_dep(name = "boost.exception", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.function", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.intrusive", version = "1.83.0.bzl.1")
Expand All @@ -28,7 +29,7 @@ bazel_dep(name = "boost.predef", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.preprocessor", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.smart_ptr", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.static_assert", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.system", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.system", version = "1.83.0.bzl.2")
bazel_dep(name = "boost.throw_exception", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.tuple", version = "1.83.0.bzl.1")
bazel_dep(name = "boost.type_traits", version = "1.83.0.bzl.1")
Expand Down
Loading

0 comments on commit 209ff53

Please sign in to comment.