Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
fbfa160
chore: Change build type to Debug
FrozenLemonTee Sep 23, 2025
d8ad37d
fix: Remove redundant code and fix none void type to void type issue …
FrozenLemonTee Sep 23, 2025
5c2bb0f
test: Add tests for pipe operator
FrozenLemonTee Sep 23, 2025
c1072f3
refactor: Add nodiscard marks
FrozenLemonTee Sep 23, 2025
d40486d
docs: Correct docs
FrozenLemonTee Sep 23, 2025
db19062
feat: Add notifySome
FrozenLemonTee Sep 24, 2025
942ca64
feat: Add semaphore
FrozenLemonTee Sep 24, 2025
e51fcf3
refactor: Add additional error messages
FrozenLemonTee Sep 24, 2025
c72c3bc
refactor: Supress variable-unused warning
FrozenLemonTee Sep 24, 2025
73d6f6e
test: Add tests for semaphore
FrozenLemonTee Sep 24, 2025
7572f69
docs: Add docs for notifySome
FrozenLemonTee Sep 25, 2025
03091a2
refactor: Add const qualifiers and inline qualifiers
FrozenLemonTee Sep 25, 2025
9e1a41c
refactor: Add notify in acquire because of blocking method release
FrozenLemonTee Sep 25, 2025
357b44e
refactor: Add template name
FrozenLemonTee Sep 25, 2025
4c85db0
refactor: Adjust the time measurement method
FrozenLemonTee Sep 25, 2025
4a12f1e
refactor: Remove redundant template args
FrozenLemonTee Sep 25, 2025
8734e8a
test: Add stress test
FrozenLemonTee Sep 25, 2025
8512d00
docs: Add docs for semaphores.h
FrozenLemonTee Sep 25, 2025
d28e2d4
docs: Add semaphores to readme
FrozenLemonTee Sep 25, 2025
05b27bb
test: Error adjust
FrozenLemonTee Sep 25, 2025
b2c0fe9
refactor: No need notify call
FrozenLemonTee Sep 25, 2025
5329108
feat: Add syncPoint(todo)
FrozenLemonTee Sep 25, 2025
7e1bcbe
refactor: Use EXPECT_EQ/EXPECT_NE to avoid crash
FrozenLemonTee Sep 26, 2025
36de4c1
feat: SyncPoint complete
FrozenLemonTee Sep 26, 2025
6755ac1
test: Add tests for syncPoint
FrozenLemonTee Sep 26, 2025
d2274f6
fix: Fix edge case of zero max_arrived and exception handling
FrozenLemonTee Sep 27, 2025
254f6a6
feat: Add maxArrived and currentArrived
FrozenLemonTee Sep 27, 2025
ec420b0
test: Add more tests
FrozenLemonTee Sep 27, 2025
42b1801
docs: Add syncPoint to README.md
FrozenLemonTee Sep 27, 2025
0904e54
docs: Correct the statements
FrozenLemonTee Sep 27, 2025
03f48e8
docs: Update examples
FrozenLemonTee Sep 27, 2025
08b6c08
docs: Add docs for syncPoint.h
FrozenLemonTee Sep 27, 2025
177b6b6
feat: Add coroutines.h(Complete generator)
FrozenLemonTee Sep 28, 2025
6aaa99f
test: Simple test for generator
FrozenLemonTee Sep 28, 2025
d797888
test: Unit tests for generator
FrozenLemonTee Sep 28, 2025
d507b23
feat: Add move semantics and disable copy semantics
FrozenLemonTee Sep 28, 2025
456da91
refactor: Move rangesOf to math module
FrozenLemonTee Sep 28, 2025
d8abe10
fix: Fix rethrow logic
FrozenLemonTee Sep 28, 2025
387749f
fix: Fix comparison logic
FrozenLemonTee Sep 28, 2025
8d2d211
test: Move rangesOf tests
FrozenLemonTee Sep 28, 2025
9ce520e
test: Add new unit tests for generator
FrozenLemonTee Sep 28, 2025
d46b1b3
refactor: Use alias
FrozenLemonTee Sep 28, 2025
99b6d7a
docs: Add docs for rangesOf
FrozenLemonTee Sep 28, 2025
2e81f63
fix: Fix function call
FrozenLemonTee Sep 28, 2025
f66b079
test: Add simple test for rangesOf
FrozenLemonTee Sep 28, 2025
f1852c9
refactor: Use alias
FrozenLemonTee Sep 28, 2025
5492bff
refactor: Remove explict literal mark
FrozenLemonTee Sep 28, 2025
aff390f
feat: Add generators.h
FrozenLemonTee Sep 29, 2025
00b68b1
feat: Add method generator()
FrozenLemonTee Sep 29, 2025
3663a30
test: Simple tests for generators.h
FrozenLemonTee Sep 29, 2025
5436615
test: Access method end with type
FrozenLemonTee Sep 29, 2025
de798e3
test: Unit tests for generators.h and iterable::generator()
FrozenLemonTee Sep 29, 2025
2ba2092
docs: Add docs for method generator
FrozenLemonTee Sep 29, 2025
eb5804b
refactor: Rename variable
FrozenLemonTee Sep 29, 2025
d8ddcf7
refactor: Rename template names and suppress warning
FrozenLemonTee Sep 29, 2025
be1bf64
docs: Add docs for generators.h
FrozenLemonTee Sep 29, 2025
be1a90f
docs: Update docs
FrozenLemonTee Sep 29, 2025
8ec4b84
feat: Add swap functions and std::swap overload versions
FrozenLemonTee Oct 1, 2025
80bfd1b
refactor: Impl move semantics
FrozenLemonTee Oct 1, 2025
b0653e1
refactor: Use constructors
FrozenLemonTee Oct 1, 2025
b5161ef
refactor: Remove redundant keywords
FrozenLemonTee Oct 1, 2025
c16627f
refactor: Remove redundant header
FrozenLemonTee Oct 1, 2025
4398444
feat: Impl std::less for comparable
FrozenLemonTee Oct 1, 2025
fe360a5
feat: Impl std::equal_to for hashable
FrozenLemonTee Oct 1, 2025
d583239
feat: Impl std::to_string for printable
FrozenLemonTee Oct 1, 2025
3e1e7c5
style: Small changes
FrozenLemonTee Oct 1, 2025
2c84025
test: Tests for swap
FrozenLemonTee Oct 1, 2025
60024d4
test: Fix test for condition variable
FrozenLemonTee Oct 1, 2025
797c116
test: Add test for tuple
FrozenLemonTee Oct 1, 2025
2deda79
fix: Fix operator+(concat)
FrozenLemonTee Oct 1, 2025
c306f9b
feat: Add value assignment operator for alternative
FrozenLemonTee Oct 1, 2025
5e61d73
feat: Add concept CmpTraits
FrozenLemonTee Oct 2, 2025
893353b
feat: Add concept HashTraits
FrozenLemonTee Oct 2, 2025
cb9d0c7
refactor: Fix operator<=> of comparable and remove redundant std::les…
FrozenLemonTee Oct 2, 2025
663be2d
refactor: Fix specialization of std::hash for hashable
FrozenLemonTee Oct 2, 2025
1f611bd
refactor: Remove redundant std::equal_to specialization
FrozenLemonTee Oct 2, 2025
1db4d92
feat: Impl hash traits for iterationStream.h
FrozenLemonTee Oct 2, 2025
ec0b5ac
test: Remove tests that have bugs
FrozenLemonTee Oct 2, 2025
9a2109e
test: Add simple tests for std::less/std::hash/std::equal_to, three-w…
FrozenLemonTee Oct 2, 2025
e31f9e1
feat: Impl hash traits for containerAdapter.h
FrozenLemonTee Oct 2, 2025
4f5ea64
test: Simple tests for hash func of containerAdaptor
FrozenLemonTee Oct 2, 2025
e11e8c5
test: Fix memory leaked tests
FrozenLemonTee Oct 2, 2025
89781bf
test: Use any template args
FrozenLemonTee Oct 3, 2025
115e424
refactor: Use original::indexSequence
FrozenLemonTee Oct 3, 2025
716478f
ci: Add basic-tests.yml
FrozenLemonTee Oct 3, 2025
ac793db
ci: CTest config
FrozenLemonTee Oct 3, 2025
3e90647
refactor: Use assignment operator
FrozenLemonTee Oct 3, 2025
ab0b4d7
refactor: Use end iterator logic
FrozenLemonTee Oct 3, 2025
a910c87
fix: Fix memory leak
FrozenLemonTee Oct 3, 2025
3ca35af
ci: BUILD_TYPE setting
FrozenLemonTee Oct 3, 2025
55135e9
ci: Fix issue of no test found using ctest
FrozenLemonTee Oct 3, 2025
4250b7d
ci: Add matrix of sanitizers
FrozenLemonTee Oct 3, 2025
eb29765
ci: Add full tests config
FrozenLemonTee Oct 3, 2025
2763795
ci: Fix typo and logic errors in config
FrozenLemonTee Oct 3, 2025
dd6e15e
ci: Fix typo and logic errors in config
FrozenLemonTee Oct 3, 2025
669d879
ci: Fix typo and logic errors in config
FrozenLemonTee Oct 3, 2025
7710daa
ci: Remove UBSan case
FrozenLemonTee Oct 3, 2025
22538f1
ci: Add docs deploy config
FrozenLemonTee Oct 3, 2025
d7a83f4
docs: Add version selection
FrozenLemonTee Oct 3, 2025
a1b60db
Merge pull request #14 from FrozenLemonTee/dev
FrozenLemonTee Oct 3, 2025
6986338
docs: doc deploy ci try fix
FrozenLemonTee Oct 3, 2025
3276b56
Merge branch 'dev' into test
FrozenLemonTee Oct 3, 2025
4be9f59
docs: doc deploy ci try to fix branch name to master
FrozenLemonTee Oct 3, 2025
c5c6d6d
Merge branch 'dev' into test
FrozenLemonTee Oct 3, 2025
1f010a3
ci: Remove comment
FrozenLemonTee Oct 3, 2025
dca04d8
docs: Fix file path
FrozenLemonTee Oct 3, 2025
1d3d1b0
docs: Unified commenting style
FrozenLemonTee Oct 3, 2025
3927d46
docs: doc deploy ci try fix
FrozenLemonTee Oct 3, 2025
0f53c7c
fix: Use notifyAll to ensure sharedFuture working properly
FrozenLemonTee Oct 4, 2025
54ffaa3
fix: Use a more concise access operator
FrozenLemonTee Oct 4, 2025
44a78ca
fix: Remove inconsistent status check
FrozenLemonTee Oct 4, 2025
8cfbdbb
refactor: Use original::thread::sleep
FrozenLemonTee Oct 4, 2025
ef7235c
test: Correct the test logic
FrozenLemonTee Oct 4, 2025
ad94239
docs: Various docs update
FrozenLemonTee Oct 4, 2025
a33cd73
ci: Version to 0.1.5
FrozenLemonTee Oct 4, 2025
86d7845
refactor: Fix Clang build&link errors
FrozenLemonTee Oct 4, 2025
70618d0
fix: Fix atomic variable UAS issues
FrozenLemonTee Oct 4, 2025
2aaf8d4
Merge branch 'test' into pre-0.1.5
FrozenLemonTee Oct 4, 2025
821f5b8
ci: Use test matrix and test gcc15 and clang20
FrozenLemonTee Oct 4, 2025
5d55f84
ci: Test gcc15 and clang20
FrozenLemonTee Oct 4, 2025
87f3c17
ci: Remove macos test
FrozenLemonTee Oct 4, 2025
3c9a7ae
Merge branch 'test' into pre-0.1.5
FrozenLemonTee Oct 4, 2025
1ffb7ba
ci: Using gcc13 to fix package not found error
FrozenLemonTee Oct 4, 2025
5a5745e
Merge branch 'test' into pre-0.1.5
FrozenLemonTee Oct 4, 2025
bdaa1e1
test: Relaxation of test standards
FrozenLemonTee Oct 4, 2025
1b2cfb8
test: Relaxation of test standards
FrozenLemonTee Oct 4, 2025
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
72 changes: 72 additions & 0 deletions .github/workflows/basic-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# .github/workflows/basic-tests.yml

name: Test Branch CI - Basic Tests

on:
push:
branches: [ test ]
pull_request:
branches: [ test ]

jobs:
build-and-test:
runs-on: ubuntu-latest
name: Test (${{ matrix.build_type }} - ${{ matrix.sanitizer }} - ${{ matrix.compiler }})

strategy:
matrix:
compiler: [gcc, clang]
build_type: [Debug]
sanitizer: [none, asan]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake ninja-build libgtest-dev wget lsb-release software-properties-common

if [[ "${{ matrix.compiler }}" == "gcc" ]]; then
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get install -y gcc-13 g++-13
fi

if [[ "${{ matrix.compiler }}" == "clang" ]]; then
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20
fi

- name: Set compiler
run: |
if [[ "${{ matrix.compiler }}" == "gcc" ]]; then
export CC=gcc-13
export CXX=g++-13
elif [[ "${{ matrix.compiler }}" == "clang" ]]; then
export CC=clang-20
export CXX=clang++-20
fi
echo "Using compiler: $CC / $CXX"

- name: Configure CMake
run: |
EXTRA_FLAGS=""
if [[ "${{ matrix.sanitizer }}" == "asan" ]]; then
EXTRA_FLAGS="-DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address"
fi
cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -G Ninja $EXTRA_FLAGS

- name: Build
run: cmake --build build

- name: List test executables
run: find build -name "*test*" -type f -executable | grep -v ".a$" | sort

- name: Show available tests
run: cd build && ctest -N

- name: Run tests
run: cd build && ctest --verbose --output-on-failure
91 changes: 91 additions & 0 deletions .github/workflows/deploy-docs-latest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# .github/workflows/deploy-docs-latest.yml

name: Deploy Documentation - Latest

on:
push:
branches: [ test ]

jobs:
build-and-deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y doxygen graphviz plantuml

- name: Build documentation
run: |
mkdir -p ../original_docs
doxygen Doxyfile

if [ ! -d "../original_docs/docs/html" ]; then
echo "Error: Documentation was not generated"
ls -la ../original_docs/docs/ || echo "Docs directory not found"
exit 1
fi

# Create version information file
echo '<!DOCTYPE html>' > ../original_docs/docs/html/version.html
echo '<html>' >> ../original_docs/docs/html/version.html
echo '<head>' >> ../original_docs/docs/html/version.html
echo ' <title>Version Info</title>' >> ../original_docs/docs/html/version.html
echo '</head>' >> ../original_docs/docs/html/version.html
echo '<body>' >> ../original_docs/docs/html/version.html
echo ' <h1>Documentation Version</h1>' >> ../original_docs/docs/html/version.html
echo ' <p>Version: latest</p>' >> ../original_docs/docs/html/version.html
echo ' <p>Branch: test</p>' >> ../original_docs/docs/html/version.html
echo " <p>Build Date: $(date -u)</p>" >> ../original_docs/docs/html/version.html
echo " <p>Commit: ${{ github.sha }}</p>" >> ../original_docs/docs/html/version.html
echo '</body>' >> ../original_docs/docs/html/version.html
echo '</html>' >> ../original_docs/docs/html/version.html

- name: Deploy to original_docs repository
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"

# Clone document repository
git clone -b master https://${{ secrets.GH_PAT }}@github.com/FrozenLemonTee/original_docs.git deploy-repo
cd deploy-repo

# Clean up old files (keep the .git directory)
find . -maxdepth 1 ! -name '.git' ! -name '.' ! -name 'CNAME' -exec rm -rf {} + 2>/dev/null || true

# Copy the new document to directory latest
mkdir -p latest
cp -r ../../original_docs/docs/html/* latest/

# Create index.html
echo '<!DOCTYPE html>' > index.html
echo '<html>' >> index.html
echo '<head>' >> index.html
echo ' <meta http-equiv="refresh" content="0; url=latest/index.html">' >> index.html
echo '</head>' >> index.html
echo '<body>' >> index.html
echo ' <p>Redirecting to <a href="latest/index.html">latest documentation</a>...</p>' >> index.html
echo ' <p>Available versions:</p>' >> index.html
echo ' <ul>' >> index.html
echo ' <li><a href="stable/index.html">Stable (master branch)</a></li>' >> index.html
echo ' <li><a href="latest/index.html">Latest (test branch)</a></li>' >> index.html
echo ' <li><a href="versions/">Tag versions</a></li>' >> index.html
echo ' </ul>' >> index.html
echo '</body>' >> index.html
echo '</html>' >> index.html

# Submit and push
git add .
if git diff-index --quiet HEAD --; then
echo "No changes to deploy"
else
git commit -m "Deploy latest documentation from test branch - ${{ github.sha }}"
git push origin master
echo "✅ Latest documentation deployed successfully"
fi
121 changes: 121 additions & 0 deletions .github/workflows/deploy-docs-stable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# .github/workflows/deploy-docs-stable.yml

name: Deploy Documentation - Stable

on:
push:
branches: [ master ]
tags: [ 'v*' ]

jobs:
build-and-deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Determine documentation version
id: version
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
TAG=${GITHUB_REF#refs/tags/}
echo "docs-version=$TAG" >> $GITHUB_OUTPUT
echo "is-tag=true" >> $GITHUB_OUTPUT
else
echo "docs-version=stable" >> $GITHUB_OUTPUT
echo "is-tag=false" >> $GITHUB_OUTPUT
fi
echo "Version: ${{ steps.version.outputs.docs-version }}"

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y doxygen graphviz plantuml

- name: Build documentation
run: |
# Create the necessary directory structure
mkdir -p ../original_docs

# Run doxygen
doxygen Doxyfile

# Check whether the document was generated successfully
if [ ! -d "../original_docs/docs/html" ]; then
echo "Error: Documentation was not generated in expected location"
ls -la ../original_docs/docs/ || echo "Docs directory not found"
exit 1
fi

# Create version information file
echo '<!DOCTYPE html>' > ../original_docs/docs/html/version.html
echo '<html>' >> ../original_docs/docs/html/version.html
echo '<head>' >> ../original_docs/docs/html/version.html
echo ' <title>Version Info</title>' >> ../original_docs/docs/html/version.html
echo '</head>' >> ../original_docs/docs/html/version.html
echo '<body>' >> ../original_docs/docs/html/version.html
echo ' <h1>Documentation Version</h1>' >> ../original_docs/docs/html/version.html
echo " <p>Version: ${{ steps.version.outputs.docs-version }}</p>" >> ../original_docs/docs/html/version.html
echo ' <p>Branch: master</p>' >> ../original_docs/docs/html/version.html
echo " <p>Build Date: $(date -u)</p>" >> ../original_docs/docs/html/version.html
echo " <p>Commit: ${{ github.sha }}</p>" >> ../original_docs/docs/html/version.html
echo '</body>' >> ../original_docs/docs/html/version.html
echo '</html>' >> ../original_docs/docs/html/version.html

- name: Deploy to original_docs repository
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
# Configure git
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"

# Clone document repository
git clone -b master https://${{ secrets.GH_PAT }}@github.com/FrozenLemonTee/original_docs.git deploy-repo

cd deploy-repo

# Clean up old files (keep the .git directory)
find . -maxdepth 1 ! -name '.git' ! -name '.' ! -name 'CNAME' -exec rm -rf {} + 2>/dev/null || true

if [[ "${{ steps.version.outputs.is-tag }}" == "true" ]]; then
# Tag Version: Create Version Directory
mkdir -p versions/${{ steps.version.outputs.docs-version }}
cp -r ../../original_docs/docs/html/* versions/${{ steps.version.outputs.docs-version }}/
echo "Deployed tag version: ${{ steps.version.outputs.docs-version }}"
else
# Branch master: update stable version
mkdir -p stable
cp -r ../../original_docs/docs/html/* stable/
echo "Deployed stable version from master"
fi

# Create index.html redirection
echo '<!DOCTYPE html>' > index.html
echo '<html>' >> index.html
echo '<head>' >> index.html
echo ' <meta http-equiv="refresh" content="0; url=stable/index.html">' >> index.html
echo '</head>' >> index.html
echo '<body>' >> index.html
echo ' <p>Redirecting to <a href="stable/index.html">stable documentation</a>...</p>' >> index.html
echo ' <p>Available versions:</p>' >> index.html
echo ' <ul>' >> index.html
echo ' <li><a href="stable/index.html">Stable (master branch)</a></li>' >> index.html
echo ' <li><a href="latest/index.html">Latest (test branch)</a></li>' >> index.html
echo ' <li><a href="versions/">Tag versions</a></li>' >> index.html
echo ' </ul>' >> index.html
echo '</body>' >> index.html
echo '</html>' >> index.html

# Submit and push
git add .
if git diff-index --quiet HEAD --; then
echo "No changes to deploy"
else
git commit -m "Deploy ${{ steps.version.outputs.docs-version }} documentation from ${{ github.sha }}"
git push origin master
echo "Documentation deployed successfully"
fi
80 changes: 80 additions & 0 deletions .github/workflows/full-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# .github/workflows/full-tests.yml

name: Master Branch CI - Full Tests

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
linux-tests:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc, clang]
build_type: [Debug, Release]
sanitizer: [none, asan]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y cmake ninja-build libgtest-dev wget lsb-release software-properties-common

if [[ "${{ matrix.compiler }}" == "gcc" ]]; then
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get install -y gcc-13 g++-13
fi

if [[ "${{ matrix.compiler }}" == "clang" ]]; then
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20
fi

- name: Configure and Build
run: |
if [[ "${{ matrix.compiler }}" == "gcc" ]]; then
export CC=gcc-13
export CXX=g++-13
elif [[ "${{ matrix.compiler }}" == "clang" ]]; then
export CC=clang-20
export CXX=clang++-20
fi

SANITIZER_FLAGS=""
if [[ "${{ matrix.sanitizer }}" == "asan" ]]; then
SANITIZER_FLAGS="-DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address"
fi

cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -G Ninja $SANITIZER_FLAGS
cmake --build build

- name: Run tests
run: |
cd build && ctest --output-on-failure

windows-tests:
runs-on: windows-latest
strategy:
matrix:
build_type: [Debug, Release]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Configure and Build
run: |
cmake -B build -G "Ninja"
cmake --build build --config ${{ matrix.build_type }}

- name: Run tests
run: |
cd build && ctest -C ${{ matrix.build_type }} --output-on-failure
7 changes: 5 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

cmake_minimum_required(VERSION 3.31)
project(original LANGUAGES CXX)
set(ORIGINAL_VERSION 0.1.4)
set(ORIGINAL_VERSION 0.1.5)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_BUILD_TYPE Release)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (default Debug)" FORCE)
endif()

include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
Expand Down Expand Up @@ -70,6 +72,7 @@ install(FILES
option(BUILD_TESTING "Build the testing directories" ON)

if (BUILD_TESTING)
include(CTest)
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Zi")
Expand Down
Loading