Skip to content

Commit d42fc6a

Browse files
committed
Merge branch 'dev'
2 parents ce3e0e8 + 2c97ccc commit d42fc6a

5 files changed

Lines changed: 126 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,26 @@ This project follows **Semantic Versioning** (SemVer).
66

77
📘 **README**: https://github.com/rixcpp/rix/blob/v0.2.0/README.md
88

9+
## v0.4.0
10+
11+
### Added
12+
- Top-level `CMakePresets.json`
13+
- Unified testing workflow via CTest presets
14+
- Header-only refactor for `rix::io`
15+
16+
### Changed
17+
- Refined umbrella `CMakeLists.txt`
18+
- Improved module wiring and export consistency
19+
- Updated README structure and documentation clarity
20+
21+
### Removed
22+
- Legacy `file.cpp` implementation
23+
- Old file-specific tests replaced by unified `test_basic.cpp`
24+
25+
### Notes
26+
This release focuses on structural stability, cleaner module boundaries,
27+
and predictable testing behavior across the Rix ecosystem.
28+
929
# Rix v0.3.1
1030

1131
## Fixed

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ if (RIX_ENABLE_IO)
113113
set(RIX_IO_ENABLE_SANITIZERS ${RIX_ENABLE_SANITIZERS} CACHE BOOL "Enable sanitizers in io" FORCE)
114114
endif()
115115

116+
# Enable CTest at the umbrella level when tests are enabled.
117+
# This ensures CTest infrastructure is generated in the top-level build dir.
118+
if (RIX_ENABLE_TESTS)
119+
enable_testing()
120+
endif()
121+
116122
# ====================================================================
117123
# Modules
118124
# ====================================================================
@@ -239,4 +245,5 @@ message(STATUS "Enabled modules : ${RIX_ENABLED_MODULE_TARGETS}")
239245
message(STATUS "Tests enabled : ${RIX_ENABLE_TESTS}")
240246
message(STATUS "Examples enabled : ${RIX_ENABLE_EXAMPLES}")
241247
message(STATUS "Sanitizers enabled : ${RIX_ENABLE_SANITIZERS}")
248+
message(STATUS "Binary dir : ${CMAKE_BINARY_DIR}")
242249
message(STATUS "======================================================")

CMakePresets.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"version": 6,
3+
"cmakeMinimumRequired": {
4+
"major": 3,
5+
"minor": 20,
6+
"patch": 0
7+
},
8+
"configurePresets": [
9+
{
10+
"name": "dev-ninja",
11+
"displayName": "Dev (Ninja)",
12+
"generator": "Ninja",
13+
"binaryDir": "${sourceDir}/build-ninja",
14+
"cacheVariables": {
15+
"CMAKE_BUILD_TYPE": "Debug",
16+
"RIX_ENABLE_IO": "ON",
17+
"RIX_ENABLE_TESTS": "ON",
18+
"RIX_ENABLE_EXAMPLES": "ON",
19+
"RIX_ENABLE_SANITIZERS": "OFF"
20+
}
21+
},
22+
{
23+
"name": "release-ninja",
24+
"displayName": "Release (Ninja)",
25+
"generator": "Ninja",
26+
"binaryDir": "${sourceDir}/build-ninja-release",
27+
"cacheVariables": {
28+
"CMAKE_BUILD_TYPE": "Release",
29+
"RIX_ENABLE_IO": "ON",
30+
"RIX_ENABLE_TESTS": "ON",
31+
"RIX_ENABLE_EXAMPLES": "OFF",
32+
"RIX_ENABLE_SANITIZERS": "OFF"
33+
}
34+
},
35+
{
36+
"name": "asan-ninja",
37+
"displayName": "ASAN/UBSAN (Ninja)",
38+
"generator": "Ninja",
39+
"binaryDir": "${sourceDir}/build-ninja-asan",
40+
"cacheVariables": {
41+
"CMAKE_BUILD_TYPE": "Debug",
42+
"RIX_ENABLE_IO": "ON",
43+
"RIX_ENABLE_TESTS": "ON",
44+
"RIX_ENABLE_EXAMPLES": "ON",
45+
"RIX_ENABLE_SANITIZERS": "ON"
46+
}
47+
}
48+
],
49+
"buildPresets": [
50+
{
51+
"name": "dev-ninja",
52+
"configurePreset": "dev-ninja"
53+
},
54+
{
55+
"name": "release-ninja",
56+
"configurePreset": "release-ninja"
57+
},
58+
{
59+
"name": "asan-ninja",
60+
"configurePreset": "asan-ninja"
61+
}
62+
],
63+
"testPresets": [
64+
{
65+
"name": "dev-ninja",
66+
"configurePreset": "dev-ninja",
67+
"execution": {
68+
"noTestsAction": "error",
69+
"stopOnFailure": false
70+
},
71+
"output": {
72+
"outputOnFailure": true
73+
}
74+
},
75+
{
76+
"name": "release-ninja",
77+
"configurePreset": "release-ninja",
78+
"execution": {
79+
"noTestsAction": "error",
80+
"stopOnFailure": false
81+
},
82+
"output": {
83+
"outputOnFailure": true
84+
}
85+
},
86+
{
87+
"name": "asan-ninja",
88+
"configurePreset": "asan-ninja",
89+
"execution": {
90+
"noTestsAction": "error",
91+
"stopOnFailure": true
92+
},
93+
"output": {
94+
"outputOnFailure": true
95+
}
96+
}
97+
]
98+
}

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ But it does not give you:
5555

5656
When building a runtime like Vix, this fragmentation becomes a liability.
5757

58-
---
59-
6058
## Why Rix exists
6159

6260
Rix exists because Vix cannot depend on:
@@ -77,8 +75,6 @@ A runtime must be:
7775

7876
Rix provides that base layer.
7977

80-
---
81-
8278
## The current ecosystem problem
8379

8480
Today, building serious C++ systems often means:
@@ -99,8 +95,6 @@ C++ does not.
9995

10096
Rix is an attempt to restore cohesion.
10197

102-
---
103-
10498
## Rix is not trying to replace the STL
10599

106100
Rix does not compete with the standard library.
@@ -121,8 +115,6 @@ It is intentionally opinionated.
121115

122116
It is intentionally boring.
123117

124-
---
125-
126118
## Designed for Vix. Useful beyond Vix.
127119

128120
Rix was built for:

0 commit comments

Comments
 (0)