Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .beman-tidy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# This is the config file for beman-tidy, which checks compliance with the Beman Standard (https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md)
# Check documentation for beman-tidy here:
# https://github.com/bemanproject/beman-tidy/blob/main/README.md

disabled_rules:
# None
ignored_paths:
# None
2 changes: 1 addition & 1 deletion .exemplar_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
07a42c8a3ace7b889d4d98df8f9ec3a4cf74887f
ec861600898941a5114f352f1efcba57d825b6d0
14 changes: 9 additions & 5 deletions .github/workflows/ci_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@ on:
schedule:
- cron: '1 17 * * 6'

concurrency:
group: ${{format('{0}:{1}', github.repository, github.ref)}}
cancel-in-progress: true

jobs:
beman-submodule-check:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.3

preset-test:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.3
with:
matrix_config: >
[
Expand All @@ -31,7 +35,7 @@ jobs:
]

build-and-test:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.3
with:
matrix_config: >
{
Expand Down Expand Up @@ -142,11 +146,11 @@ jobs:
}

vcpkg-ci:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.3
with:
port_name: beman-copyable-function

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.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.3
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ permissions:

jobs:
pre-commit:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.3
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:

jobs:
auto-update-pre-commit:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.3
secrets:
APP_ID: ${{ secrets.AUTO_PR_BOT_APP_ID }}
PRIVATE_KEY: ${{ secrets.AUTO_PR_BOT_PRIVATE_KEY }}
2 changes: 1 addition & 1 deletion .github/workflows/vcpkg-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
types: [published]
jobs:
vcpkg-release:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.6.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.3
with:
port_name: beman-copyable-function
secrets:
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ repos:
# This brings in a portable version of clang-format.
# See also: https://github.com/ssciwr/clang-format-wheel
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v22.1.4
rev: v22.1.5
hooks:
- id: clang-format
types_or: [c++, c]

# CMake linting and formatting
- repo: https://github.com/BlankSpruce/gersemi-pre-commit
rev: 0.27.2
rev: 0.27.6
hooks:
- id: gersemi
name: CMake linting
Expand All @@ -43,7 +43,7 @@ repos:

# Beman Standard checking via beman-tidy
- repo: https://github.com/bemanproject/beman-tidy
rev: v0.4.1
rev: v0.5.1
hooks:
- id: beman-tidy

Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-->

# Development

## Configure and Build the Project Using CMake Presets
Expand Down
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-->

<!-- markdownlint-disable-next-line line-length -->
![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg) ![Continuous Integration Tests](https://github.com/bemanproject/copyable_function/actions/workflows/ci_tests.yml/badge.svg) ![Lint Check (pre-commit)](https://github.com/bemanproject/copyable_function/actions/workflows/pre-commit-check.yml/badge.svg) [![Coverage](https://coveralls.io/repos/github/bemanproject/copyable_function/badge.svg?branch=main)](https://coveralls.io/github/bemanproject/copyable_function?branch=main) ![Standard Target](https://github.com/bemanproject/beman/blob/main/images/badges/cpp26.svg)
<!-- markdownlint-disable line-length -->
[![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg)](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#the-beman-library-maturity-model)
[![Continuous Integration Tests](https://github.com/bemanproject/copyable_function/actions/workflows/ci_tests.yml/badge.svg)](https://github.com/bemanproject/copyable_function/actions/workflows/ci_tests.yml)
[![Lint Check (pre-commit)](https://github.com/bemanproject/copyable_function/actions/workflows/pre-commit-check.yml/badge.svg)](https://github.com/bemanproject/copyable_function/actions/workflows/pre-commit-check.yml)
[![Coverage](https://coveralls.io/repos/github/bemanproject/copyable_function/badge.svg?branch=main)](https://coveralls.io/github/bemanproject/copyable_function?branch=main)
![Standard Target](https://github.com/bemanproject/beman/blob/main/images/badges/cpp26.svg)
<!-- markdownlint-restore -->

`beman.copyable_function` is a type-erased function wrapper that can represent any copyable callable matching
the function signature R(Args...). The library conforms to the [The Beman Standard](https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md).
Expand Down Expand Up @@ -162,12 +167,6 @@ include an appropriate `beman.copyable_function` header from your source code.
#include <beman/copyable_function/copyable_function.hpp>
```

> [!NOTE]
>
> `beman.copyable_function` headers are to be included with the `beman/copyable_function/` prefix.
> Altering include search paths to spell the include target another way (e.g.
> `#include <copyable_function.hpp>`) is unsupported.

## Contributing

Please do!
Expand Down
2 changes: 1 addition & 1 deletion infra/.beman_submodule
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[beman_submodule]
remote=https://github.com/bemanproject/infra.git
commit_hash=1b14bad2cd2cf0e44d1aeb608557e0e35ce27eaa
commit_hash=d536fc285ae058cf8f5b736b5ff73d18a421b296
2 changes: 1 addition & 1 deletion infra/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @ednolan @neatudarius @rishyak @wusatosi @JeffGarland
* @ednolan @rishyak @wusatosi @JeffGarland
1 change: 0 additions & 1 deletion infra/.github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

name: Lint Check (pre-commit)

on:
Expand Down
1 change: 0 additions & 1 deletion infra/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
Expand Down
1 change: 0 additions & 1 deletion infra/cmake/BuildTelemetry.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

include_guard(GLOBAL)

include(${CMAKE_CURRENT_LIST_DIR}/BuildTelemetryConfig.cmake)
Expand Down
1 change: 0 additions & 1 deletion infra/cmake/BuildTelemetryConfig.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

include_guard(GLOBAL)

set(BUILD_TELEMETRY_DIR ${CMAKE_CURRENT_LIST_DIR})
Expand Down
2 changes: 1 addition & 1 deletion infra/cmake/Config.cmake.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# cmake/Config.cmake.in -*-makefile-*-
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# cmake/Config.cmake.in -*-makefile-*-

include(CMakeFindDependencyMacro)

Expand Down
6 changes: 4 additions & 2 deletions infra/cmake/beman-install-library.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,9 @@ function(beman_install_library name)
endif()

if(NOT BEMAN_INSTALL_DESTINATION)
set(BEMAN_INSTALL_DESTINATION "${_config_install_dir}/modules")
set(BEMAN_INSTALL_DESTINATION
"${CMAKE_INSTALL_DATADIR}/${name}/modules"
)
endif()

string(REPLACE "beman." "" install_component_name "${name}")
Expand Down Expand Up @@ -210,7 +212,7 @@ function(beman_install_library name)
# NOTE: There's currently no convention for this location! CK
CXX_MODULES_BMI
DESTINATION
${_config_install_dir}/bmi-${CMAKE_CXX_COMPILER_ID}_$<CONFIG>
${CMAKE_INSTALL_DATADIR}/${name}/bmi-${CMAKE_CXX_COMPILER_ID}_$<CONFIG>
COMPONENT "${install_component_name}_Development"
)
else()
Expand Down
194 changes: 194 additions & 0 deletions infra/cmake/enable-experimental-import-std.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
if(CMAKE_VERSION VERSION_EQUAL "3.30.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.8")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.9")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.10")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.11")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.12")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.8")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.9")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
endif()
Loading
Loading