Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1002 commits
Select commit Hold shift + click to select a range
f5eca8e
Updated Readme.
neerajsys Nov 1, 2025
13fc6a4
Updated Readme.
neerajsys Nov 1, 2025
125b2f5
Updated Readme, action yml.
neerajsys Nov 1, 2025
0bdd773
Updated Readme.
neerajsys Nov 1, 2025
5286a9f
Updated Readme.
neerajsys Nov 2, 2025
ab3b9cc
static_method test cases, error-codes, doc.
neerajsys Nov 2, 2025
1932383
Update README.md
neerajsys Nov 2, 2025
7fca65c
Update README.md
neerajsys Nov 2, 2025
422906a
Update README.md
neerajsys Nov 2, 2025
ab87b86
added test case, readme update.
neerajsys Nov 3, 2025
00c1eb5
Merge branch 'release' into develop
neerajsys Nov 3, 2025
0e6d702
all test cases passing now.
neerajsys Nov 3, 2025
3599c41
fixed conflicts.
neerajsys Nov 3, 2025
0250333
Update README.md
neerajsys Nov 3, 2025
1d29859
static_method, known args/return type tests. done.
neerajsys Nov 4, 2025
7da867a
added latest benchmarks with std::string & std::string_view.
neerajsys Nov 4, 2025
7aa25a7
Update README.md
neerajsys Nov 4, 2025
d2b9aff
Refactor README for improved readability
neerajsys Nov 4, 2025
68d4451
Update README.md
neerajsys Nov 4, 2025
6e80bf1
return-erased static_method test, fixes, doc ups.
neerajsys Nov 5, 2025
287323e
test-case & doc update.
neerajsys Nov 5, 2025
c5d6c27
Create reflection-apis-redefined.txt
neerajsys Nov 6, 2025
0d7382c
Rename reflection-apis-redefined.txt to reflection-apis-redefined.md
neerajsys Nov 6, 2025
c173ddb
deprecated API's marked, early warning.
neerajsys Nov 7, 2025
960e699
CxxTestRegistration: code-improvement, wip.
neerajsys Nov 7, 2025
733052d
fix- gcc/clang err, missed include.
neerajsys Nov 7, 2025
252ad6e
refactor, renames.
neerajsys Nov 8, 2025
00e393e
CxxTestRegistration: improvements done.
neerajsys Nov 8, 2025
e92d2eb
fix- gcc compile errors.
neerajsys Nov 8, 2025
d710333
Readme update.
neerajsys Nov 8, 2025
975891d
new constructor api- wip.
neerajsys Nov 9, 2025
69eeded
header sanitization, minor bug fix, new ctor-apis:wip.
neerajsys Nov 10, 2025
c952c4c
redundent code cleanup.
neerajsys Nov 10, 2025
337eaf2
updated readme.md
neerajsys Nov 10, 2025
15800a5
new constructor-api, wip.
neerajsys Nov 11, 2025
0e90096
fix- gcc/clang compile error.
neerajsys Nov 11, 2025
addfa4c
new ctor dispatch defined. wip.
neerajsys Nov 11, 2025
5f81ff7
Update README.md
neerajsys Nov 11, 2025
595ebc4
Update README.md
neerajsys Nov 11, 2025
51f67b9
Update README.md
neerajsys Nov 11, 2025
e2e37db
Update README.md
neerajsys Nov 11, 2025
666afbd
default-ctor's fptr added in cache. wip.
neerajsys Nov 12, 2025
33e48cc
erase_return function cache improvement.
neerajsys Nov 13, 2025
6e49b7d
fix clang/gcc 'template' compile err.
neerajsys Nov 13, 2025
e08ab47
parametrized-ctor dispatch in place now.
neerajsys Nov 13, 2025
af2a203
new ctor api setup, wip
neerajsys Nov 13, 2025
d514c4f
fix clang/gcc 'template' compile err.
neerajsys Nov 14, 2025
5c7ed65
new-ctor-apis: code fixes. wip.
neerajsys Nov 14, 2025
4bf6fe7
organizing fptr metadata, simplified hierarchy.
neerajsys Nov 14, 2025
22d7c2e
organizing fptr metadata, wip.
neerajsys Nov 14, 2025
0dd9111
organizing fptr metadata, wip..
neerajsys Nov 14, 2025
5f8ec48
organizing metadata: function_ptr.h, inits. wip.
neerajsys Nov 15, 2025
0943010
gcc/clang compile error fix.
neerajsys Nov 15, 2025
2ae0414
organizing metadata: re-name/factor. wip.
neerajsys Nov 15, 2025
1278e71
organizing metadata: wip.
neerajsys Nov 15, 2025
25e8a86
fix clang/gcc template error.
neerajsys Nov 15, 2025
bcde3bb
organizing metadata: method_ptr.h, wip.
neerajsys Nov 16, 2025
b97efc2
organizing metadata: method_ptr_const.h, wip.
neerajsys Nov 16, 2025
5b31ef8
organizing metadata: erased method lambda added.
neerajsys Nov 16, 2025
47401bd
organizing metadata: method_const lambdas fix.
neerajsys Nov 16, 2025
d92865b
minor renaming.
neerajsys Nov 16, 2025
9c33ffa
general refactor, header
neerajsys Nov 17, 2025
87233b5
organizing metadata: ctor-init improvements.
neerajsys Nov 17, 2025
a8049ce
organizing metadata: added functor_cast.
neerajsys Nov 17, 2025
a0c05f6
organizing metadata: functor_cast in use for function.
neerajsys Nov 17, 2025
87ce185
organizing metadata: functor_cast with method-functor
neerajsys Nov 18, 2025
8f5c643
clang/gcc template error fix.
neerajsys Nov 18, 2025
adb6f55
organizing metadata: erasure_base.h removed.
neerajsys Nov 18, 2025
c2fff8a
organizing metadata: removing lambda_base.h, wip.
neerajsys Nov 18, 2025
e6eab16
organizing metadata: removed FunctorId.hpp.
neerajsys Nov 18, 2025
eadead6
organizing metadata: removed lambda_base.
neerajsys Nov 18, 2025
89adc92
organizing metadata: finished. cleanup done.
neerajsys Nov 19, 2025
19b0359
function_ptr.h: using function pointer istead of lambda now.
neerajsys Nov 19, 2025
16a77e0
fix clang/gcc compile err.
neerajsys Nov 19, 2025
987e075
function/method_lambda, using function ptr (for voids).
neerajsys Nov 19, 2025
cf8ace3
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
neerajsys Nov 19, 2025
5e14c03
header includes based optimization.
neerajsys Nov 29, 2025
243702b
erased-return: removed unnecessary lambdas.
neerajsys Nov 30, 2025
d0689d1
erased-return: removed unnecessary std::function.
neerajsys Nov 30, 2025
8aecbc4
erased-return: removed unnecessary lambdas. for const.
neerajsys Nov 30, 2025
1121dc5
general refactor.
neerajsys Dec 1, 2025
07c7ce5
refactor, files reorganized.
neerajsys Dec 3, 2025
dfa2244
clang/gcc, template/typename error fix.
neerajsys Dec 3, 2025
6a46e30
msvc compile err fix.
neerajsys Dec 3, 2025
c73f201
rtl::constructor- wip.
neerajsys Dec 10, 2025
042335d
rtl::constructor- defined. wip.
neerajsys Dec 11, 2025
730452d
code improved, logic simplified.
neerajsys Dec 15, 2025
3c8e96a
callable init errors, test cases.
neerajsys Dec 15, 2025
acbfb3e
rtl::constructor- implementation done.
neerajsys Dec 15, 2025
21f6060
rtl::constructor- default-ctor impl, basic tests.
neerajsys Dec 16, 2025
e8728b0
rtl::constructor- test setup.
neerajsys Dec 17, 2025
6910f69
clang/gcc compile error fix.
neerajsys Dec 17, 2025
51a744d
updated ReadMe, new apis in ex.
neerajsys Dec 17, 2025
5dafd26
rtl::constructor- by value call test.
neerajsys Dec 17, 2025
4d2fc72
rtl::constructor- call by ref(perfect-fwd) test, bug fix.
neerajsys Dec 18, 2025
bfd4165
rtl::constructor- ref overloads, auto resolution test.
neerajsys Dec 18, 2025
0e848ce
new-ctor design regression, few colne fails.
neerajsys Dec 18, 2025
5a3280c
rtl::constructor: regression fixes.
neerajsys Dec 19, 2025
d620252
cloning, regression, all tests fixed. Passing.
neerajsys Dec 19, 2025
356ccce
RObjectBuilder cleanup.
neerajsys Dec 19, 2025
90e2598
code-move: concern seperation.
neerajsys Dec 19, 2025
e9bcace
clang/gcc compile err fix.
neerajsys Dec 19, 2025
a9ee76d
rtl::function regression tests. passed.
neerajsys Dec 20, 2025
8d2d178
rtl::static_method integration, regression passed.
neerajsys Dec 20, 2025
4c009a7
cleanup: phasing old dispatch, call() api.
neerajsys Dec 20, 2025
ad09a99
rtl::constructor integration, no-args, regression passed.
neerajsys Dec 20, 2025
b82c47e
rtl::constructor regression, tests passed.
neerajsys Dec 20, 2025
493ce2c
phase-out old, cleanup, wip.
neerajsys Dec 20, 2025
7ea4b96
phase-out-old: SetupConstructor trimmed.
neerajsys Dec 21, 2025
81e9be9
phase-out-old-design: cleanup, wip.
neerajsys Dec 21, 2025
4460b05
phase-out-old: SetupFunction trimmed.
neerajsys Dec 21, 2025
1c2e78e
phase-out-old: SetupDispatch added.
neerajsys Dec 21, 2025
620bb7d
phase-out-old: minor cleanup.
neerajsys Dec 22, 2025
88cb79e
phase-out-old: FunctorContainer removed.
neerajsys Dec 22, 2025
ff300a5
phase-out-old: refactor.
neerajsys Dec 22, 2025
0194778
phase-out-old: integrating new callables in tests.
neerajsys Dec 22, 2025
d3a7d58
phase-out-old: integrating new callables, wip.
neerajsys Dec 23, 2025
eb741d4
replaced TypeId to traits::uid, warning: build time increased.
neerajsys Dec 23, 2025
34c0598
'TargetTypeMismatch' handled in callers, build time OK.
neerajsys Dec 23, 2025
8ce5974
regression: perfect-forwarding tests. fix, refactor.
neerajsys Dec 23, 2025
038b4c0
error-handling in rtl::method improved.
neerajsys Dec 24, 2025
b35d9a8
regression: CopyConstructorTests, wip.
neerajsys Dec 24, 2025
afe2aba
design improvement: non-member return-erased-fn caller.
neerajsys Dec 25, 2025
d5a8823
design improv: introduced dispatch::forward_call, wip.
neerajsys Dec 26, 2025
7d04999
design improv: rtl::function done.
neerajsys Dec 26, 2025
f7d186e
updated Readme.
neerajsys Dec 26, 2025
e6a21d0
design improv: code cleanup.
neerajsys Dec 26, 2025
d216177
design improv: removed std::any from all erased-return.
neerajsys Dec 27, 2025
ba0646a
design improv: fn_void cleanup, wip.
neerajsys Dec 27, 2025
b57b3b4
design improv: forward_call integration, wip.
neerajsys Dec 27, 2025
82f151a
design improv: rtl::method, erased-target-known-return fixed.
neerajsys Dec 28, 2025
6ce7383
design improv: removed enum 'fn_void'.
neerajsys Dec 28, 2025
50594f6
design improv: forward_call integration.
neerajsys Dec 28, 2025
1ab9ca4
regression: CopyConstructorTests, done.
neerajsys Dec 28, 2025
cf5b49f
Update README.md
neerajsys Dec 29, 2025
6bf632d
Update README.md
neerajsys Dec 29, 2025
be771c0
Update README.md
neerajsys Dec 29, 2025
51c22f9
Update README.md
neerajsys Dec 30, 2025
fba2a13
files renamed/added.
neerajsys Dec 30, 2025
13738c2
registration example-code refactored.
neerajsys Dec 30, 2025
0947a82
introduced rtl::const_method, few tests failing.
neerajsys Dec 31, 2025
b4940b9
gcc 'typename' compile error fix.
neerajsys Dec 31, 2025
2ab876b
clang 'template' compile error fix.
neerajsys Dec 31, 2025
dcbe022
test fixes, few known fails.
neerajsys Dec 31, 2025
7cb2088
builder-code refactored, member_kind fix.
neerajsys Jan 1, 2026
ccbc5e8
Registration code n metadata refinement
neerajsys Jan 2, 2026
b0ec203
RObjectId, code cleanup.
neerajsys Jan 2, 2026
c993f1d
minor changes and comment fixes.
neerajsys Jan 3, 2026
23e0182
minor but important test refinement.
neerajsys Jan 3, 2026
17330dd
minor test-cases refactoring.
neerajsys Jan 4, 2026
ca868a2
const-methods: overload auto-resolution, wip.
neerajsys Jan 4, 2026
5000d74
const-methods: overload auto-resolution, wip.
neerajsys Jan 5, 2026
2b5da95
clang/gcc 'template' error fix.
neerajsys Jan 5, 2026
df24e36
const-methods: refactor, wip.
neerajsys Jan 5, 2026
583670c
const-methods: implicit call to non-const fixed.
neerajsys Jan 6, 2026
d2ae123
const-methods: target-erased caller, const ready now.
neerajsys Jan 6, 2026
c171ecd
last incomplete code-check-in fix.
neerajsys Jan 6, 2026
f73a588
const-methods: MethodInvoker code refactor.
neerajsys Jan 7, 2026
6baea03
const-methods: error-code placement.
neerajsys Jan 10, 2026
22bc323
const-methods: all test-case pass now.
neerajsys Jan 10, 2026
98460d9
regression: copy/move ctors with new callables.
neerajsys Jan 10, 2026
b91f250
regression: MyReflectionTests.cpp with new callables.
neerajsys Jan 11, 2026
4078555
regression: const-methods, new callables, done.
neerajsys Jan 11, 2026
76ad267
gcc/clang compile err fix.
neerajsys Jan 11, 2026
4a88e97
removed old method calling interfaces.
neerajsys Jan 11, 2026
d03e2de
new dispatch for all reflected calls in place now.
neerajsys Jan 12, 2026
5c39672
removed 'FunctorId', replaced by rtl::type_meta.
neerajsys Jan 12, 2026
6ec6e6e
clean-up, refactor, files rename/delete.
neerajsys Jan 12, 2026
15202ee
clean-up, refactor, renames/dels, license.
neerajsys Jan 13, 2026
af5cd06
clang/gcc 'constexpr' compile err fix.
neerajsys Jan 13, 2026
b432f27
added test coverage.
neerajsys Jan 13, 2026
7f46b53
git-action fix, json-dump formatted.
neerajsys Jan 13, 2026
3fe0eb4
gcov action job fix.
neerajsys Jan 13, 2026
9825a06
gcov error fix.
neerajsys Jan 13, 2026
12a45a0
git badge fix.
neerajsys Jan 13, 2026
d0d7d21
added Codecov coverage upload.
neerajsys Jan 13, 2026
d03610e
Readme, bagde fix.
neerajsys Jan 13, 2026
98a35e9
fix codecov upload.
neerajsys Jan 13, 2026
e149f08
readme, badge fix.
neerajsys Jan 13, 2026
9db8f30
codecov, auth fix.
neerajsys Jan 13, 2026
5c6d019
codecov config.
neerajsys Jan 13, 2026
36608c4
Readme updated.
neerajsys Jan 14, 2026
4c619db
resolved merge conflicts.
neerajsys Jan 14, 2026
9fe7324
Merge pull request #85 from ReflectCxx/develop
neerajsys Jan 14, 2026
3046aea
headers include fix.
neerajsys Jan 14, 2026
8c5b034
Readme badge update.
neerajsys Jan 14, 2026
d583d21
dead-code cleanup, codecov improvement.
neerajsys Jan 14, 2026
b31ec30
Merge pull request #86 from ReflectCxx/develop
neerajsys Jan 14, 2026
d5bb370
Update README badges for release branch.
neerajsys Jan 14, 2026
189a367
readme: quick preview improved.
neerajsys Jan 14, 2026
3af6c0a
readme: quick preview, closing notes.
neerajsys Jan 14, 2026
1384d9e
readme: hyphens.
neerajsys Jan 14, 2026
b350f5b
Merge pull request #87 from ReflectCxx/develop
neerajsys Jan 14, 2026
865b3ef
codespaces: live demo setup.
neerajsys Jan 15, 2026
20d6164
demo code updated.
neerajsys Jan 15, 2026
0243350
demo, example code update.
neerajsys Jan 15, 2026
3ac3e6b
Refine examples and comments in README.md
neerajsys Jan 15, 2026
356cbcf
Readme update.
neerajsys Jan 15, 2026
58c1500
codecov: ignore few projs.
neerajsys Jan 15, 2026
0154545
multiple actions fix.
neerajsys Jan 15, 2026
03e9f06
codespace setup.
neerajsys Jan 15, 2026
82319ed
readme update.
neerajsys Jan 15, 2026
4419704
readme badge update.
neerajsys Jan 15, 2026
0f66b65
Update README to consolidate Codespaces link
neerajsys Jan 15, 2026
7c9010c
Update README for GitHub Codespaces link formatting
neerajsys Jan 15, 2026
62df15b
update README.
neerajsys Jan 15, 2026
47ae755
readme, link update
neerajsys Jan 15, 2026
65c590d
Merge pull request #88 from ReflectCxx/develop
neerajsys Jan 15, 2026
0371709
codespaces cmd update.
neerajsys Jan 15, 2026
fd3b85d
seperate demo code.
neerajsys Jan 15, 2026
3ccd022
cleanup.
neerajsys Jan 15, 2026
674ad00
Format demo link section in README.md
neerajsys Jan 15, 2026
8a55897
Merge pull request #89 from ReflectCxx/release
neerajsys Jan 16, 2026
416eaaa
git release: artifacts upload.
neerajsys Jan 16, 2026
e42472f
fix binary names.
neerajsys Jan 16, 2026
fc0f734
fix msvc binary rename err.
neerajsys Jan 16, 2026
41b94c1
Merge pull request #90 from ReflectCxx/develop
neerajsys Jan 16, 2026
aa86792
fix codecov run on merge.
neerajsys Jan 16, 2026
830840e
upload permission issue fix.
neerajsys Jan 16, 2026
b22581c
README update.
neerajsys Jan 16, 2026
bd6ce38
Merge pull request #91 from ReflectCxx/develop
neerajsys Jan 16, 2026
948a4b8
renaming relase bins.
neerajsys Jan 16, 2026
a1a27a3
Merge pull request #92 from ReflectCxx/develop
neerajsys Jan 16, 2026
cc86d32
Add FUNDING.yml for GitHub sponsorship
neerajsys Jan 16, 2026
4733996
added sponser badge.
neerajsys Jan 16, 2026
7bb407c
Support update.
neerajsys Jan 16, 2026
002a789
Merge branch 'release' into develop
neerajsys Jan 16, 2026
1f69cfd
Readme update.
neerajsys Jan 16, 2026
c9b27b8
Merge branch 'develop' of https://github.com/ReflectCxx/ReflectionTem…
neerajsys Jan 16, 2026
2eeb021
badge fix.
neerajsys Jan 16, 2026
c94fd54
badge update
neerajsys Jan 16, 2026
43b2ec3
minor change
neerajsys Jan 16, 2026
c24a951
Merge pull request #93 from ReflectCxx/develop
neerajsys Jan 16, 2026
2128a0f
minor Readme refinement.
neerajsys Jan 16, 2026
aa48037
Update README.md
neerajsys Jan 16, 2026
0cb993c
Update README.md
neerajsys Jan 16, 2026
2379e92
Update README.md
neerajsys Jan 16, 2026
3ff1d0b
Update README.md
neerajsys Jan 16, 2026
6641a29
Merge pull request #94 from ReflectCxx/release
neerajsys Jan 17, 2026
7ba7bc1
yml: userid changed.
neerajsys Jan 17, 2026
6a1e039
minor readme update.
neerajsys Jan 17, 2026
d0aed6e
Merge pull request #95 from ReflectCxx/develop
neerajsys Jan 17, 2026
e234e86
fixing a clone test.
neerajsys Jan 17, 2026
fdc7333
gcc/clang, template err fix.
neerajsys Jan 17, 2026
c8ed500
RObjectConverters: Heap clone fix.
neerajsys Jan 17, 2026
abe22b0
gocv known coverage exclusion.
neerajsys Jan 17, 2026
5f52cc0
codecov ignore file.
neerajsys Jan 17, 2026
e0b96b3
Merge pull request #96 from ReflectCxx/develop
neerajsys Jan 17, 2026
8fbe27e
Readme update.
neerajsys Jan 17, 2026
9025d96
Merge pull request #97 from ReflectCxx/develop
neerajsys Jan 17, 2026
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
17 changes: 17 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
coverage:
status:
project:
rtl:
paths:
- ReflectionTemplateLib/rtl
target: 85%
informational: true

comment:
layout: "diff, flags, files"
behavior: default

ignore:
- "demo/**"
- "RTLBenchmarkApp/**"
- "ReflectionTemplateLib/rtl/detail/src/RObjectConverters_string.cpp"
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# These are supported funding model platforms
github: neerajsys
93 changes: 93 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: RTL Build

permissions:
contents: write

on:
pull_request:
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
push:
branches: [ release ]
workflow_dispatch:

jobs:
build:
name: Build (${{ matrix.os }} / ${{ matrix.compiler }})
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, windows-latest]
compiler: [gcc, clang, msvc]
exclude:
- os: windows-latest
compiler: gcc
- os: windows-latest
compiler: clang
- os: ubuntu-latest
compiler: msvc

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

# Linux dependencies
- name: Install dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt update
sudo apt install -y ninja-build g++ clang

# Configure (Linux)
- name: Configure (Linux)
if: runner.os == 'Linux'
run: |
if [ "${{ matrix.compiler }}" = "gcc" ]; then
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++;
else
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++;
fi

# Configure (Windows / MSVC)
- name: Configure (Windows / MSVC)
if: runner.os == 'Windows'
run: cmake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release

# Build
- name: Build
run: cmake --build build --config Release --parallel

# Rename binaries (Linux)
- name: Rename binaries (Linux)
if: runner.os == 'Linux'
run: |
mv bin/RTLTestRunApp bin/RTLTestRunApp-${{ matrix.compiler }}
mv bin/RTLBenchmarkApp bin/RTLBenchmarkApp-${{ matrix.compiler }}

# Rename binaries (Windows / MSVC)
- name: Rename binaries (Windows)
if: runner.os == 'Windows'
run: |
ren bin\Release\RTLTestRunApp.exe RTLTestRunApp-msvc.exe
ren bin\Release\RTLBenchmarkApp.exe RTLBenchmarkApp-msvc.exe

# Upload artifacts (all builds)
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: rtl-test-binaries-${{ matrix.compiler }}
path: bin/

# Publish to GitHub Release (release branch only)
- name: Publish to GitHub Release (All binaries)
if: github.ref == 'refs/heads/release'
uses: softprops/action-gh-release@v2
with:
tag_name: latest
name: Latest RTL Build
files: |
bin/**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69 changes: 69 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: RTL Coverage

on:
pull_request:
branches: [ release, develop ]
paths-ignore:
- '**/*.md'
push:
branches: [ release ]
workflow_dispatch:

jobs:
coverage:
name: RTL Coverage (Linux / GCC)
runs-on: ubuntu-latest

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

- name: Install coverage tools
run: |
sudo apt update
sudo apt install -y lcov gcovr ninja-build g++

- name: Configure (Coverage)
run: |
cmake -B build -G Ninja \
-DENABLE_COVERAGE=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_COMPILER=g++

- name: Build
run: cmake --build build --parallel

- name: Run tests
run: |
./bin/RTLTestRunApp

- name: Capture RTL coverage
run: |
lcov --capture --directory . \
--output-file coverage.info \
--ignore-errors=inconsistent,negative,mismatch

lcov --extract coverage.info \
'*ReflectionTemplateLib/rtl/*' \
-o coverage_rtl.info

- name: Generate HTML report
run: |
genhtml coverage_rtl.info \
--output-directory coverage_rtl \
--ignore-errors inconsistent,corrupt

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: rtl-coverage-report
path: coverage_rtl

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: coverage_rtl.info
flags: rtl
name: RTL-Core-Coverage
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################

/build
/bin
/.vscode
25 changes: 19 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
# CMakeLists.txt for the entire project
cmake_minimum_required(VERSION 3.20)
# Set the project name
project(CxxReflectionProject)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

# Add the subdirectories
add_subdirectory(CxxTestProject)
# ----------------------------
# Coverage Support (Linux)
# ----------------------------
option(ENABLE_COVERAGE "Enable code coverage" OFF)

if(ENABLE_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
message(STATUS "Code coverage enabled")
add_compile_options(--coverage -O0 -g)
add_link_options(--coverage)
endif()

# ----------------------------
# Subdirectories
# ----------------------------
add_subdirectory(ReflectionTemplateLib)
add_subdirectory(CxxTypeRegistration)
add_subdirectory(CxxReflectionTests)
add_subdirectory(CxxTestRegistration)
add_subdirectory(CxxTestProps)
add_subdirectory(CxxTestUtils)
add_subdirectory(RTLTestRunApp)
add_subdirectory(RTLBenchmarkApp)
36 changes: 0 additions & 36 deletions CxxReflectionTests/CMakeLists.txt

This file was deleted.

21 changes: 0 additions & 21 deletions CxxReflectionTests/src/CMakeLists.txt

This file was deleted.

Loading