From a6e55ae48547578cf0ad21236535e45a2255ecd8 Mon Sep 17 00:00:00 2001 From: Ezekiel Warren Date: Thu, 7 Sep 2023 16:52:24 -0700 Subject: [PATCH 1/5] feat: initial bzlmod support --- .bazelrc | 10 ++ .github/workflows/bzlmod-archive.yml | 12 ++ .github/workflows/ci.yml | 168 --------------------------- .gitignore | 6 + BUILD.bazel | 22 ++++ MODULE.bazel | 15 +++ WORKSPACE.bazel | 1 + 7 files changed, 66 insertions(+), 168 deletions(-) create mode 100644 .bazelrc create mode 100644 .github/workflows/bzlmod-archive.yml delete mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 BUILD.bazel create mode 100644 MODULE.bazel create mode 100644 WORKSPACE.bazel diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 00000000..dd6962b5 --- /dev/null +++ b/.bazelrc @@ -0,0 +1,10 @@ + +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 + +try-import %workspace%/user.bazelrc diff --git a/.github/workflows/bzlmod-archive.yml b/.github/workflows/bzlmod-archive.yml new file mode 100644 index 00000000..d1823b66 --- /dev/null +++ b/.github/workflows/bzlmod-archive.yml @@ -0,0 +1,12 @@ +name: Bzlmod Archive + +on: + release: + types: [published] + +jobs: + bzlmod-archive: + uses: bazelboost/registry/.github/workflows/bzlmod-archive.yml@main + secrets: inherit + permissions: + contents: write diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 7ca7dca4..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,168 +0,0 @@ -name: CI - -on: - pull_request: - push: - branches: - - master - - develop - - feature/** - -env: - UBSAN_OPTIONS: print_stacktrace=1 - -jobs: - posix: - strategy: - fail-fast: false - matrix: - include: - - toolset: gcc-12 - cxxstd: "03,11,14,17,2a" - os: ubuntu-22.04 - cxxflags: "cxxflags=--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined" - linkflags: "linkflags=--coverage -lasan -lubsan" - gcov_tool: "gcov-12" - launcher: "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.8" - - toolset: gcc-9 - cxxstd: "03,11,14,17,2a" - os: ubuntu-22.04 - - toolset: clang - compiler: clang++-14 - cxxstd: "03,11,14,17,2a" - os: ubuntu-22.04 - # TODO: fix and uncomment - #- toolset: clang - # cxxstd: "03,11,14,17,2a" - # os: macos-10.15 - # cxxflags: "cxxflags=-fsanitize=address,undefined -fno-sanitize-recover=undefined -D_GNU_SOURCE=1" - # linkflags: "linkflags=-fsanitize=address,undefined" - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v2 - - - name: Install packages - if: matrix.install - run: sudo apt install ${{matrix.install}} - - - name: Setup Boost - run: | - echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY - LIBRARY=${GITHUB_REPOSITORY#*/} - echo LIBRARY: $LIBRARY - echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV - echo GITHUB_BASE_REF: $GITHUB_BASE_REF - echo GITHUB_REF: $GITHUB_REF - REF=${GITHUB_BASE_REF:-$GITHUB_REF} - REF=${REF#refs/heads/} - echo REF: $REF - BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true - echo BOOST_BRANCH: $BOOST_BRANCH - cd .. - git clone -b $BOOST_BRANCH --depth 10 https://github.com/boostorg/boost.git boost-root - cd boost-root - git submodule update --init --depth 10 --jobs 2 tools/boostdep tools/inspect libs/filesystem - python tools/boostdep/depinst/depinst.py --git_args "--depth 10 --jobs 3" filesystem - rm -rf libs/$LIBRARY/* - cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools --git_args "--depth 10 --jobs 3" $LIBRARY - ./bootstrap.sh - ./b2 -d0 headers - ./b2 -j4 variant=debug tools/inspect/build - - - name: Run tests - run: | - cd ../boost-root - ./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release "${{matrix.cxxflags}}" "${{matrix.linkflags}}" "${{matrix.launcher}}" - dist/bin/inspect libs/$LIBRARY - - - name: Prepare coverage data - if: matrix.gcov_tool - run: | - mkdir -p $GITHUB_WORKSPACE/coveralls - - echo -e "#!/bin/bash\nexec ${{matrix.gcov_tool}} \"\$@\"" > $GITHUB_WORKSPACE/coveralls/gcov_wrapper.sh - chmod +x $GITHUB_WORKSPACE/coveralls/gcov_wrapper.sh - wget https://github.com/linux-test-project/lcov/archive/v1.16.zip - unzip v1.16.zip - LCOV="`pwd`/lcov-1.16/bin/lcov --gcov-tool $GITHUB_WORKSPACE/coveralls/gcov_wrapper.sh" - - echo "$LCOV --directory ../boost-root/bin.v2/libs/$LIBRARY/ --base-directory `pwd`/libs/$LIBRARY/test --capture --output-file $GITHUB_WORKSPACE/coveralls/coverage.info" - $LCOV --directory ../boost-root/bin.v2/libs/$LIBRARY/ --base-directory ../boost-root/ --capture --output-file $GITHUB_WORKSPACE/coveralls/coverage.info - $LCOV --remove $GITHUB_WORKSPACE/coveralls/coverage.info "/usr*" "*/$LIBRARY/test/*" ${{matrix.ignore_coverage}} "*/$LIBRARY/tests/*" "*/$LIBRARY/examples/*" "*/$LIBRARY/example/*" -o $GITHUB_WORKSPACE/coveralls/coverage.info - - cd ../boost-root - OTHER_LIBS=`grep "submodule .*" .gitmodules | sed 's/\[submodule\ "\(.*\)"\]/"\*\/boost\/\1\.hpp" "\*\/boost\/\1\/\*"/g'| sed "/\"\*\/boost\/$LIBRARY\/\*\"/d" | sed ':a;N;$!ba;s/\n/ /g'` - echo $OTHER_LIBS - eval "$LCOV --remove $GITHUB_WORKSPACE/coveralls/coverage.info $OTHER_LIBS -o $GITHUB_WORKSPACE/coveralls/coverage.info" - - - name: Coveralls - uses: coverallsapp/github-action@master - if: matrix.gcov_tool - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: ./coveralls/coverage.info - parallel: true - - windows: - strategy: - fail-fast: false - matrix: - include: - - toolset: msvc - cxxstd: "14,17,latest" - addrmd: 64 - os: windows-2022 - - toolset: msvc-14.2 - cxxstd: "14,17,latest" - addrmd: 64 - os: windows-2019 - #- toolset: gcc - # cxxstd: "03,11,14,17,2a" - # addrmd: 64 - # os: windows-2019 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v2 - - - name: Setup Boost - shell: cmd - run: | - echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY% - for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi - echo LIBRARY: %LIBRARY% - echo LIBRARY=%LIBRARY%>>%GITHUB_ENV% - echo GITHUB_BASE_REF: %GITHUB_BASE_REF% - echo GITHUB_REF: %GITHUB_REF% - if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF% - set BOOST_BRANCH=develop - for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master - echo BOOST_BRANCH: %BOOST_BRANCH% - cd .. - git clone -b %BOOST_BRANCH% --depth 10 https://github.com/boostorg/boost.git boost-root - cd boost-root - xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\ - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools --git_args "--jobs 3" %LIBRARY% - cmd /c bootstrap - b2 -d0 headers - - - name: Run tests - shell: cmd - run: | - cd ../boost-root - b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release - - finish: - needs: posix - runs-on: ubuntu-latest - steps: - - name: Coveralls Finished - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.github_token }} - parallel-finished: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b0f49292 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ + +/bazel-* +/external +/.cache +/compile_commands.json +user.bazelrc diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 00000000..22cf3dd4 --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,22 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "boost.stacktrace", + hdrs = glob([ + "include/**/*.hpp", + "include/**/*.h", + ]), + includes = ["include"], + deps = [ + "@boost.array", + "@boost.config", + "@boost.container_hash", + "@boost.core", + "@boost.predef", + "@boost.static_assert", + "@boost.type_traits", + "@boost.winapi", + ], +) diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 00000000..767510aa --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,15 @@ +module( + name = "boost.stacktrace", + version = "1.83.0.bzl.1", + compatibility_level = 108300, +) + +bazel_dep(name = "rules_cc", version = "0.0.8") +bazel_dep(name = "boost.array", version = "1.83.0.bzl.1") +bazel_dep(name = "boost.config", version = "1.83.0.bzl.6") +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.predef", version = "1.83.0.bzl.1") +bazel_dep(name = "boost.static_assert", version = "1.83.0.bzl.1") +bazel_dep(name = "boost.type_traits", version = "1.83.0.bzl.1") +bazel_dep(name = "boost.winapi", version = "1.83.0.bzl.1") diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel new file mode 100644 index 00000000..be0754f6 --- /dev/null +++ b/WORKSPACE.bazel @@ -0,0 +1 @@ +# SEE: MODULE.bazel From 8ab0a5c67243837e9c356e31685e8cd89439edf4 Mon Sep 17 00:00:00 2001 From: Xavier Bonaventura Date: Mon, 14 Oct 2024 05:57:28 +0200 Subject: [PATCH 2/5] fix: include missing ipp files (#2) --- BUILD.bazel | 1 + 1 file changed, 1 insertion(+) diff --git a/BUILD.bazel b/BUILD.bazel index 22cf3dd4..b8bcb3b8 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -7,6 +7,7 @@ cc_library( hdrs = glob([ "include/**/*.hpp", "include/**/*.h", + "include/**/*.ipp, ]), includes = ["include"], deps = [ From e82907adff69204da40453dd5c0d18dbacaa35b2 Mon Sep 17 00:00:00 2001 From: Ezekiel Warren Date: Sun, 13 Oct 2024 20:58:35 -0700 Subject: [PATCH 3/5] chore: bump version --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 767510aa..dac1d9fe 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "boost.stacktrace", - version = "1.83.0.bzl.1", + version = "1.83.0.bzl.2", compatibility_level = 108300, ) From 2187ee62d83323b9a38a2f1a1f7683da8f32e97e Mon Sep 17 00:00:00 2001 From: Xavier Bonaventura Date: Sun, 20 Oct 2024 20:55:28 +0200 Subject: [PATCH 4/5] fix: add missing closing quotes (#3) --- BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD.bazel b/BUILD.bazel index b8bcb3b8..fbd559df 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -7,7 +7,7 @@ cc_library( hdrs = glob([ "include/**/*.hpp", "include/**/*.h", - "include/**/*.ipp, + "include/**/*.ipp", ]), includes = ["include"], deps = [ From 52d6eb618c4fc4cbfeaef2f2fb963ddabd2805c4 Mon Sep 17 00:00:00 2001 From: Ezekiel Warren Date: Sun, 20 Oct 2024 11:59:51 -0700 Subject: [PATCH 5/5] chore: bump version --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index dac1d9fe..bc765e0b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "boost.stacktrace", - version = "1.83.0.bzl.2", + version = "1.83.0.bzl.3", compatibility_level = 108300, )