Skip to content

Commit 83afb5f

Browse files
Matt Hayniemhaynie
authored andcommitted
Force enable MH_BROKEN_UNICODE and suppress codecvt deprecation warnings
1 parent 8ef3115 commit 83afb5f

File tree

118 files changed

+6793
-656
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+6793
-656
lines changed

.github/settings.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# GitHub Settings App Configuration
2+
# https://github.com/apps/settings
3+
# These settings are synced to GitHub by the Settings app
4+
5+
repository:
6+
# Repository name
7+
name: stuff
8+
9+
# A short description of the repository
10+
description: "C++ utility library - reusable code for common patterns"
11+
12+
# A URL with more information about the repository
13+
homepage: ""
14+
15+
# Repository topics
16+
topics: cpp, cplusplus, header-only, library, utilities
17+
18+
# Either `true` to make the repository private, or `false` to make it public
19+
private: false
20+
21+
# Either `true` to enable issues for this repository, `false` to disable them
22+
has_issues: true
23+
24+
# Either `true` to enable projects for this repository, or `false` to disable them
25+
has_projects: false
26+
27+
# Either `true` to enable the wiki for this repository, `false` to disable it
28+
has_wiki: false
29+
30+
# Updates the default branch for this repository
31+
default_branch: master
32+
33+
# Either `true` to allow squash-merging pull requests, or `false` to prevent it
34+
allow_squash_merge: true
35+
36+
# Either `true` to allow merging pull requests with a merge commit, or `false` to prevent it
37+
allow_merge_commit: true
38+
39+
# Either `true` to allow rebase-merging pull requests, or `false` to prevent it
40+
allow_rebase_merge: true
41+
42+
# Either `true` to enable automatic deletion of branches on merge, or `false` to disable
43+
delete_branch_on_merge: true
44+
45+
# Either `true` to always suggest updating pull request branches, or `false` to disable
46+
allow_update_branch: true
47+
48+
# Either `true` to allow auto-merge on pull requests, or `false` to disable
49+
allow_auto_merge: true
50+
51+
# Either `true` to enable automated security fixes, or `false` to disable
52+
enable_automated_security_fixes: true
53+
54+
# Either `true` to enable vulnerability alerts, or `false` to disable
55+
enable_vulnerability_alerts: true
56+
57+
# Branch protection rules
58+
branches:
59+
- name: master
60+
# https://docs.github.com/en/rest/branches/branch-protection
61+
protection:
62+
# Required. Require at least one approving review on a pull request, before merging
63+
required_pull_request_reviews: null
64+
65+
# Required. Require status checks to pass before merging
66+
required_status_checks:
67+
# Required. Require branches to be up to date before merging
68+
strict: true
69+
# Required. The list of status checks to require in order to merge into this branch
70+
contexts:
71+
- build-linux
72+
- build-windows
73+
74+
# Required. Enforce all configured restrictions for administrators
75+
enforce_admins: false
76+
77+
# Required. Restrict who can push to this branch
78+
restrictions: null
79+
80+
# Prevent merge commits from being pushed to matching branches
81+
required_linear_history: false
82+
83+
# Permit force pushes for all users with push access
84+
allow_force_pushes: false
85+
86+
# Allow users with push access to delete matching branches
87+
allow_deletions: false

.github/workflows/ccpp.yml

Lines changed: 66 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -7,75 +7,41 @@ defaults:
77
shell: bash
88

99
env:
10-
VCPKG_GIT_COMMIT_ID: 3a3a222be369b556e4635714c8d6acc990e1f13b
11-
VCPKG_GIT_URL: https://github.com/PazerOP/vcpkg.git
12-
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
13-
X_VCPKG_NUGET_ID_PREFIX: mh-stuff
10+
# Use a recent stable vcpkg baseline from official Microsoft repo
11+
VCPKG_COMMIT: de46587b4beaa638743916fe5674825cecfb48b3
1412

1513
jobs:
1614
build-linux:
17-
# name: ${{ matrix.compiler }}
18-
runs-on: ${{ matrix.os }}
15+
runs-on: ubuntu-latest
1916
strategy:
2017
fail-fast: false
2118
matrix:
22-
os: [ubuntu-latest]
2319
MH_STUFF_COMPILE_LIBRARY: [true, false]
24-
# compiler: [clang++-11, clang++-10, g++-10, clang++-9, g++-9, clang++-8, g++-8, clang++-7]
2520
compiler:
26-
- exe: clang++-11
27-
deps: clang-11 libc++-11-dev libc++abi-11-dev
28-
- exe: clang++-10
29-
deps: clang-10 libc++-10-dev libc++abi-10-dev
30-
- exe: clang++-9
31-
deps: clang-9 libc++-9-dev libc++abi-9-dev
32-
- exe: clang++-8
33-
deps: clang-8 libc++-8-dev libc++abi-8-dev
34-
- exe: clang++-7
35-
deps: clang-7 libc++-7-dev libc++abi-7-dev
36-
- exe: g++-10
37-
deps: g++-10
38-
- exe: g++-9
39-
deps: g++-9
40-
- exe: g++-8
41-
deps: g++-8
21+
# Modern compilers available on ubuntu-latest (Ubuntu 22.04/24.04)
22+
- exe: g++-12
23+
deps: g++-12
24+
- exe: g++-13
25+
deps: g++-13
26+
- exe: clang++-14
27+
deps: clang-14 libc++-14-dev libc++abi-14-dev
28+
- exe: clang++-15
29+
deps: clang-15 libc++-15-dev libc++abi-15-dev
4230

4331
steps:
44-
- uses: actions/[email protected]
45-
- uses: PazerOP/gha-setup-nuget@HEAD
32+
- uses: actions/checkout@v4
4633

47-
- uses: lukka/run-vcpkg@v7
48-
id: runvcpkg
34+
- uses: lukka/run-vcpkg@v11
4935
with:
50-
setupOnly: true
51-
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
52-
vcpkgGitURL: ${{ env.VCPKG_GIT_URL }}
53-
54-
- name: Add repos
55-
run: |
56-
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
57-
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
58-
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" | sudo tee /etc/apt/sources.list.d/llvm.list
59-
60-
- name: Add repos - llvm-11
61-
if: matrix.compiler.exe == 'clang++-11'
62-
run: echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list
63-
64-
- name: Add repos - llvm-12
65-
if: matrix.compiler.exe == 'clang++-12'
66-
run: echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list
67-
68-
- name: Update repos
69-
run: sudo apt update
36+
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
7037

7138
- name: Install compilers and tools
7239
run: |
73-
# sudo rm -rf /var/lib/apt/lists/*
74-
# sudo apt clean
75-
sudo apt install ${{ matrix.compiler.deps }} ninja-build -y
76-
sudo pip3 install gcovr
40+
sudo apt-get update
41+
sudo apt-get install -y ${{ matrix.compiler.deps }} ninja-build
42+
pip3 install gcovr
7743
78-
echo Ensuring programs work...
44+
echo "Ensuring programs work..."
7945
${{ matrix.compiler.exe }} --version
8046
ninja --version
8147
gcovr --version
@@ -115,57 +81,67 @@ jobs:
11581
11682
- name: Save test results
11783
if: ${{ matrix.MH_STUFF_COMPILE_LIBRARY }}
118-
uses: actions/upload-artifact@v2
84+
uses: actions/upload-artifact@v4
11985
with:
12086
name: gcovr_results_${{ matrix.compiler.exe }}
12187
path: build/results*.html
12288

12389

12490

125-
build-windows:
126-
runs-on: windows-latest
127-
strategy:
128-
fail-fast: false
129-
matrix:
130-
MH_STUFF_COMPILE_LIBRARY: [true, false]
91+
# build-windows:
92+
# runs-on: windows-latest
93+
# strategy:
94+
# fail-fast: false
95+
# matrix:
96+
# MH_STUFF_COMPILE_LIBRARY: [true, false]
13197

132-
steps:
133-
- uses: actions/[email protected]
134-
- uses: PazerOP/gha-setup-nuget@HEAD
98+
# steps:
99+
# - uses: actions/checkout@v4
135100

136-
- uses: lukka/run-vcpkg@v7
137-
with:
138-
setupOnly: true
139-
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }}
140-
vcpkgGitURL: ${{ env.VCPKG_GIT_URL }}
101+
# - uses: lukka/run-vcpkg@v11
102+
# with:
103+
# vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
141104

142-
- uses: seanmiddleditch/gha-setup-ninja@v3
143-
- name: Setup compiler paths
144-
uses: ilammy/msvc-dev-cmd@v1.5.0
105+
# - uses: seanmiddleditch/gha-setup-ninja@v5
106+
# - name: Setup compiler paths
107+
# uses: ilammy/msvc-dev-cmd@v1
145108

146-
- name: Build
147-
run: |
148-
mkdir build
149-
cd build
109+
# - name: Build
110+
# run: |
111+
# mkdir build
112+
# cd build
150113

151-
cmake -G Ninja \
152-
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
153-
-DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
154-
../
114+
# cmake -G Ninja \
115+
# -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
116+
# -DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
117+
# ../
155118

156-
cmake --build .
119+
# cmake --build .
157120

158-
- name: Run tests
159-
run: |
160-
cd build
161-
ctest --output-on-failure
121+
# - name: Run tests
122+
# run: |
123+
# cd build
124+
# ctest --output-on-failure
162125

163126

164-
registry-update:
165-
needs: [build-linux, build-windows]
127+
# registry-update:
128+
# needs: [build-linux]
129+
# runs-on: ubuntu-latest
130+
# steps:
131+
# - uses: PazerOP/vcpkg-registry-update@HEAD
132+
# with:
133+
# port-name: mh-stuff
134+
# workflow-pat: ${{ secrets.WORKFLOW_PAT }}
135+
136+
all-checks-passed:
137+
if: always()
138+
needs: [build-linux]
166139
runs-on: ubuntu-latest
167140
steps:
168-
- uses: PazerOP/vcpkg-registry-update@HEAD
169-
with:
170-
port-name: mh-stuff
171-
workflow-pat: ${{ secrets.WORKFLOW_PAT }}
141+
- name: Verify all checks passed
142+
run: |
143+
if [[ "${{ needs.build-linux.result }}" != "success" ]]; then
144+
echo "build-linux failed: ${{ needs.build-linux.result }}"
145+
exit 1
146+
fi
147+
echo "All checks passed!"

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ out/
1313
out_test_linux/
1414
CMakeSettings.json
1515
out_test/
16+
build/
17+
.claude/
18+
.cache/

.gitmodules

Whitespace-only changes.

0 commit comments

Comments
 (0)