From 8f4270493c21951632c6a6b70e23ede3b0272622 Mon Sep 17 00:00:00 2001 From: Ezekiel Warren Date: Thu, 7 Sep 2023 16:28:39 -0700 Subject: [PATCH] feat: initial bzlmod support --- .bazelrc | 10 + .github/workflows/bzlmod-archive.yml | 12 + .github/workflows/ci.yml | 600 --------------------------- .gitignore | 6 + BUILD.bazel | 17 + MODULE.bazel | 10 + WORKSPACE.bazel | 1 + 7 files changed, 56 insertions(+), 600 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 0000000..dd6962b --- /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 0000000..d1823b6 --- /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 346adc3..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,600 +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-4.8 - cxxstd: "03,11" - os: ubuntu-latest - container: ubuntu:18.04 - install: g++-4.8 - - toolset: gcc-5 - cxxstd: "03,11,14,1z" - os: ubuntu-latest - container: ubuntu:18.04 - install: g++-5 - - toolset: gcc-6 - cxxstd: "03,11,14,1z" - os: ubuntu-latest - container: ubuntu:18.04 - install: g++-6 - - toolset: gcc-7 - cxxstd: "03,11,14,17" - os: ubuntu-latest - container: ubuntu:18.04 - - toolset: gcc-8 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: g++-8 - - toolset: gcc-9 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - - toolset: gcc-10 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: g++-10 - - toolset: gcc-11 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: g++-11 - - toolset: gcc-12 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 - install: g++-12 - - toolset: gcc-13 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-latest - container: ubuntu:23.04 - install: g++-13 - - toolset: clang - compiler: clang++-3.9 - cxxstd: "03,11,14" - os: ubuntu-latest - container: ubuntu:18.04 - install: clang-3.9 - - toolset: clang - compiler: clang++-4.0 - cxxstd: "03,11,14" - os: ubuntu-latest - container: ubuntu:18.04 - install: clang-4.0 - - toolset: clang - compiler: clang++-5.0 - cxxstd: "03,11,14,1z" - os: ubuntu-latest - container: ubuntu:18.04 - install: clang-5.0 - - toolset: clang - compiler: clang++-6.0 - cxxstd: "03,11,14,17" - os: ubuntu-20.04 - install: clang-6.0 - - toolset: clang - compiler: clang++-7 - cxxstd: "03,11,14,17" - os: ubuntu-20.04 - install: clang-7 - - toolset: clang - compiler: clang++-8 - cxxstd: "03,11,14,17" - os: ubuntu-20.04 - install: clang-8 - - toolset: clang - compiler: clang++-9 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: clang-9 - - toolset: clang - compiler: clang++-10 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: clang-10 - - toolset: clang - compiler: clang++-11 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: clang-11 - - toolset: clang - compiler: clang++-12 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - install: clang-12 - - toolset: clang - compiler: clang++-13 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 - install: clang-13 - - toolset: clang - compiler: clang++-14 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 - install: clang-14 - - toolset: clang - compiler: clang++-15 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 - install: clang-15 - - toolset: clang - compiler: clang++-16 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-latest - container: ubuntu:23.04 - install: clang-16 - - toolset: clang - cxxstd: "03,11,14,17,2a" - os: macos-11 - - toolset: clang - cxxstd: "03,11,14,17,20,2b" - os: macos-12 - - toolset: clang - cxxstd: "03,11,14,17,20,2b" - os: macos-13 - - runs-on: ${{matrix.os}} - container: ${{matrix.container}} - - defaults: - run: - shell: bash - - steps: - - uses: actions/checkout@v3 - - - name: Setup container environment - if: matrix.container - run: | - apt-get update - apt-get -y install sudo python3 git g++ - - - name: Install packages - if: matrix.install - run: | - sudo apt-get update - sudo apt-get -y 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 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY - git submodule update --init tools/boostdep - python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY - ./bootstrap.sh - ./b2 -d0 headers - - - name: Create user-config.jam - if: matrix.compiler - run: | - echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam - - - name: Run tests - run: | - cd ../boost-root - ./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release - - windows: - strategy: - fail-fast: false - matrix: - include: - - toolset: msvc-14.0 - cxxstd: "14,latest" - addrmd: 32,64 - os: windows-2019 - - toolset: msvc-14.2 - cxxstd: "14,17,20,latest" - addrmd: 32,64 - os: windows-2019 - - toolset: msvc-14.3 - cxxstd: "14,17,20,latest" - addrmd: 32,64 - os: windows-2022 - - toolset: clang-win - cxxstd: "14,17,latest" - addrmd: 32,64 - os: windows-2022 - - toolset: gcc - cxxstd: "03,11,14,17,2a" - addrmd: 64 - os: windows-2019 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - 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 1 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 --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 embed-manifest-via=linker - - posix-cmake-subdir: - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-20.04 - - os: ubuntu-22.04 - - os: macos-11 - - os: macos-12 - - os: macos-13 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - name: Install packages - if: matrix.install - run: sudo apt-get -y 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 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY - - - name: Use library with add_subdirectory - run: | - cd ../boost-root/libs/$LIBRARY/test/cmake_subdir_test - mkdir __build__ && cd __build__ - cmake .. - cmake --build . - ctest --output-on-failure --no-tests=error - - posix-cmake-install: - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-20.04 - - os: ubuntu-22.04 - - os: macos-11 - - os: macos-12 - - os: macos-13 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - name: Install packages - if: matrix.install - run: sudo apt-get -y 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 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY - - - name: Configure - run: | - cd ../boost-root - mkdir __build__ && cd __build__ - cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DCMAKE_INSTALL_PREFIX=~/.local .. - - - name: Install - run: | - cd ../boost-root/__build__ - cmake --build . --target install - - - name: Use the installed library - run: | - cd ../boost-root/libs/$LIBRARY/test/cmake_install_test && mkdir __build__ && cd __build__ - cmake -DCMAKE_INSTALL_PREFIX=~/.local .. - cmake --build . - ctest --output-on-failure --no-tests=error - - posix-cmake-test: - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-20.04 - - os: ubuntu-22.04 - - os: macos-11 - - os: macos-12 - - os: macos-13 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - name: Install packages - if: matrix.install - run: sudo apt-get -y 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 1 https://github.com/boostorg/boost.git boost-root - cd boost-root - cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY - - - name: Configure - run: | - cd ../boost-root - mkdir __build__ && cd __build__ - cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON .. - - - name: Build tests - run: | - cd ../boost-root/__build__ - cmake --build . --target tests - - - name: Run tests - run: | - cd ../boost-root/__build__ - ctest --output-on-failure --no-tests=error - - windows-cmake-subdir: - strategy: - fail-fast: false - matrix: - include: - - os: windows-2019 - - os: windows-2022 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - 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 1 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 --git_args "--jobs 3" %LIBRARY% - - - name: Use library with add_subdirectory (Debug) - shell: cmd - run: | - cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test - mkdir __build__ && cd __build__ - cmake .. - cmake --build . --config Debug - ctest --output-on-failure --no-tests=error -C Debug - - - name: Use library with add_subdirectory (Release) - shell: cmd - run: | - cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test/__build__ - cmake --build . --config Release - ctest --output-on-failure --no-tests=error -C Release - - windows-cmake-install: - strategy: - fail-fast: false - matrix: - include: - - os: windows-2019 - - os: windows-2022 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - 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 1 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 --git_args "--jobs 3" %LIBRARY% - - - name: Configure - shell: cmd - run: | - cd ../boost-root - mkdir __build__ && cd __build__ - cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix .. - - - name: Install (Debug) - shell: cmd - run: | - cd ../boost-root/__build__ - cmake --build . --target install --config Debug - - - name: Install (Release) - shell: cmd - run: | - cd ../boost-root/__build__ - cmake --build . --target install --config Release - - - name: Use the installed library (Debug) - shell: cmd - run: | - cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test && mkdir __build__ && cd __build__ - cmake -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix .. - cmake --build . --config Debug - ctest --output-on-failure --no-tests=error -C Debug - - - name: Use the installed library (Release) - shell: cmd - run: | - cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__ - cmake --build . --config Release - ctest --output-on-failure --no-tests=error -C Release - - windows-cmake-test: - strategy: - fail-fast: false - matrix: - include: - - os: windows-2019 - - os: windows-2022 - - runs-on: ${{matrix.os}} - - steps: - - uses: actions/checkout@v3 - - - 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 1 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 --git_args "--jobs 3" %LIBRARY% - - - name: Configure - shell: cmd - run: | - cd ../boost-root - mkdir __build__ && cd __build__ - cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DBUILD_TESTING=ON .. - - - name: Build tests (Debug) - shell: cmd - run: | - cd ../boost-root/__build__ - cmake --build . --target tests --config Debug - - - name: Run tests (Debug) - shell: cmd - run: | - cd ../boost-root/__build__ - ctest --output-on-failure --no-tests=error -C Debug - - - name: Build tests (Release) - shell: cmd - run: | - cd ../boost-root/__build__ - cmake --build . --target tests --config Release - - - name: Run tests (Release) - shell: cmd - run: | - cd ../boost-root/__build__ - ctest --output-on-failure --no-tests=error -C Release diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b0f4929 --- /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 0000000..5b77e47 --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,17 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "boost.variant2", + hdrs = glob([ + "include/**/*.hpp", + "include/**/*.h", + ]), + includes = ["include"], + deps = [ + "@boost.assert", + "@boost.config", + "@boost.mp11", + ], +) diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 0000000..865b94b --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,10 @@ +module( + name = "boost.variant2", + version = "1.83.0.bzl.1", + compatibility_level = 108300, +) + +bazel_dep(name = "rules_cc", version = "0.0.8") +bazel_dep(name = "boost.assert", version = "1.83.0.bzl.1") +bazel_dep(name = "boost.config", version = "1.83.0.bzl.6") +bazel_dep(name = "boost.mp11", version = "1.83.0.bzl.1") diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel new file mode 100644 index 0000000..be0754f --- /dev/null +++ b/WORKSPACE.bazel @@ -0,0 +1 @@ +# SEE: MODULE.bazel