From 2060a4566377dae1c2800e0156d17e5acef6166f Mon Sep 17 00:00:00 2001 From: Edward Nolan Date: Wed, 29 Jul 2026 01:03:59 -0400 Subject: [PATCH] Exemplar updates since 2026-05-24 2efeaf957163b146707d67a1666f7c07dc0199ec: Use absolute (${sourceDir}) paths for CMAKE_TOOLCHAIN_FILE in CMakePresets.json, add hostSystemName conditions to llvm/appleclang/msvc presets, set CMAKE_CXX_EXTENSIONS=false and CMAKE_CXX_STANDARD_REQUIRED=true, and add all/all_verify_interface_header_sets build targets. 04846fe025e54d2faf3de1456c41a5808f14fd67: Fixed README to reference BEMAN_CLOSED_VIEW_BUILD_EXAMPLES (was incorrectly BEMAN_SCAN_VIEW_BUILD_EXAMPLES) documenting the CMake option to disable building examples. e9be01c1ffc5a9f8b0e7cbba0e07082900088df6: Bumped CMake policy version max from 4.3 to 4.4 in cmake_minimum_required. f10571bacfc374aa6644d6b3b45691e0c9e698fc: Bumped googletest lockfile.json dependency to commit hash for v1.17.0 (52eb8108c5bdec04579160ae17225d66034bd723), replacing the git tag reference, as a security best practice. 32b69bd5846676013a204ce3c3fcbd6c074ea701: Bumped bemanproject/infra-workflows reusable workflow references from 1.7.3 to 1.7.4 in ci_tests.yml, pre-commit-check.yml, pre-commit-update.yml, and vcpkg-release.yml. --- .exemplar_version | 2 +- .github/workflows/ci_tests.yml | 10 ++--- .github/workflows/pre-commit-check.yml | 2 +- .github/workflows/pre-commit-update.yml | 2 +- .github/workflows/vcpkg-release.yml | 2 +- CMakeLists.txt | 2 +- CMakePresets.json | 58 ++++++++++++++++++++----- README.md | 2 +- infra/.beman_submodule | 2 +- infra/cmake/llvm-libc++-toolchain.cmake | 5 ++- lockfile.json | 2 +- 11 files changed, 64 insertions(+), 25 deletions(-) diff --git a/.exemplar_version b/.exemplar_version index 14f6221..dae4ed7 100644 --- a/.exemplar_version +++ b/.exemplar_version @@ -1 +1 @@ -ec861600898941a5114f352f1efcba57d825b6d0 +32b69bd5846676013a204ce3c3fcbd6c074ea701 diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index 1ead9b9..9bf897d 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -17,10 +17,10 @@ concurrency: jobs: beman-submodule-check: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.4 preset-test: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.4 with: matrix_config: > [ @@ -35,7 +35,7 @@ jobs: ] build-and-test: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.4 with: matrix_config: > { @@ -140,7 +140,7 @@ jobs: } vcpkg-ci: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.4 with: port_name: beman-closed-view feature_combinations: | @@ -152,4 +152,4 @@ jobs: create-issue-when-fault: needs: [preset-test, build-and-test] if: failure() && github.event_name == 'schedule' - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.4 diff --git a/.github/workflows/pre-commit-check.yml b/.github/workflows/pre-commit-check.yml index 0281976..c0a08f8 100644 --- a/.github/workflows/pre-commit-check.yml +++ b/.github/workflows/pre-commit-check.yml @@ -18,4 +18,4 @@ permissions: jobs: pre-commit: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.4 diff --git a/.github/workflows/pre-commit-update.yml b/.github/workflows/pre-commit-update.yml index 73edc2b..6c5f38f 100644 --- a/.github/workflows/pre-commit-update.yml +++ b/.github/workflows/pre-commit-update.yml @@ -9,7 +9,7 @@ on: jobs: auto-update-pre-commit: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.4 secrets: APP_ID: ${{ secrets.AUTO_PR_BOT_APP_ID }} PRIVATE_KEY: ${{ secrets.AUTO_PR_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/vcpkg-release.yml b/.github/workflows/vcpkg-release.yml index db52fab..f869844 100644 --- a/.github/workflows/vcpkg-release.yml +++ b/.github/workflows/vcpkg-release.yml @@ -6,7 +6,7 @@ on: types: [published] jobs: vcpkg-release: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.3 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.4 with: port_name: beman-closed-view secrets: diff --git a/CMakeLists.txt b/CMakeLists.txt index 48116a3..01f97be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.30...4.3) +cmake_minimum_required(VERSION 3.30...4.4) include(infra/cmake/enable-experimental-import-std.cmake) diff --git a/CMakePresets.json b/CMakePresets.json index 483e1a3..09df0e5 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -8,8 +8,10 @@ "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { "CMAKE_CXX_STANDARD": "20", - "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", - "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "./infra/cmake/use-fetch-content.cmake" + "CMAKE_CXX_EXTENSIONS": false, + "CMAKE_CXX_STANDARD_REQUIRED": true, + "CMAKE_EXPORT_COMPILE_COMMANDS": true, + "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "${sourceDir}/infra/cmake/use-fetch-content.cmake" } }, { @@ -35,7 +37,7 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/gnu-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/gnu-toolchain.cmake" } }, { @@ -46,7 +48,7 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/gnu-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/gnu-toolchain.cmake" } }, { @@ -57,7 +59,12 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/llvm-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Linux" } }, { @@ -68,7 +75,12 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/llvm-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/llvm-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Linux" } }, { @@ -79,7 +91,12 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/appleclang-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/appleclang-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Darwin" } }, { @@ -90,7 +107,12 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/appleclang-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/appleclang-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Darwin" } }, { @@ -101,7 +123,12 @@ "_debug-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/msvc-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/msvc-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" } }, { @@ -112,7 +139,12 @@ "_release-base" ], "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "infra/cmake/msvc-toolchain.cmake" + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/infra/cmake/msvc-toolchain.cmake" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" } } ], @@ -120,7 +152,11 @@ { "name": "_root-build", "hidden": true, - "jobs": 0 + "jobs": 0, + "targets": [ + "all_verify_interface_header_sets", + "all" + ] }, { "name": "gcc-debug", diff --git a/README.md b/README.md index 9132922..cecd378 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ This project requires at least the following to build: You can disable building tests by setting CMake option `BEMAN_CLOSED_VIEW_BUILD_TESTS` to `OFF` when configuring the project. -You can disable building examples by setting CMake option `BEMAN_SCAN_VIEW_BUILD_EXAMPLES` to +You can disable building examples by setting CMake option `BEMAN_CLOSED_VIEW_BUILD_EXAMPLES` to `OFF` when configuring the project. ### Supported Platforms diff --git a/infra/.beman_submodule b/infra/.beman_submodule index 5cbeca3..26f1dbf 100644 --- a/infra/.beman_submodule +++ b/infra/.beman_submodule @@ -1,3 +1,3 @@ [beman_submodule] remote=https://github.com/bemanproject/infra.git -commit_hash=7fc85e2e26cb491926ca2744c359c2aa7ea8fd27 +commit_hash=749c5588afe37daaa290b659d439cd7cd473ad1b diff --git a/infra/cmake/llvm-libc++-toolchain.cmake b/infra/cmake/llvm-libc++-toolchain.cmake index eabf363..aac8502 100644 --- a/infra/cmake/llvm-libc++-toolchain.cmake +++ b/infra/cmake/llvm-libc++-toolchain.cmake @@ -16,5 +16,8 @@ include(${CMAKE_CURRENT_LIST_DIR}/llvm-toolchain.cmake) if(NOT CMAKE_CXX_FLAGS MATCHES "-stdlib=libc\\+\\+") - string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++") + string( + APPEND CMAKE_CXX_FLAGS + " -stdlib=libc++ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0" + ) endif() diff --git a/lockfile.json b/lockfile.json index 787b905..91bafbe 100644 --- a/lockfile.json +++ b/lockfile.json @@ -4,7 +4,7 @@ "name": "googletest", "package_name": "GTest", "git_repository": "https://github.com/google/googletest.git", - "git_tag": "6910c9d9165801d8827d628cb72eb7ea9dd538c5", + "git_tag": "52eb8108c5bdec04579160ae17225d66034bd723", "cmake_args": { "INSTALL_GTEST": "OFF" }