Skip to content

fix: cross-platform build fixes (Linux/macOS/Windows)#10

Merged
Justin9091 merged 9 commits into
mainfrom
test/unit-tests
May 19, 2026
Merged

fix: cross-platform build fixes (Linux/macOS/Windows)#10
Justin9091 merged 9 commits into
mainfrom
test/unit-tests

Conversation

@Justin9091
Copy link
Copy Markdown
Owner

Summary

  • CMakeLists.txt: fix src/pathing/src/paths/ — the directory was named paths/ but CMake referenced a non-existent pathing/, breaking the build on all platforms
  • tests/CMakeLists.txt: lowercase Event/, Result/, Scheduler/event/, result/, scheduler/ — case-sensitive filesystems (Linux/macOS) would fail to find the test files
  • WindowsModuleScanner.hpp: remove duplicate #include <unordered_set>
  • cmake/Dependencies.cmake: strip emoji from message(STATUS ...) calls for CI log safety
  • ServiceHostFactory.cpp: remove leftover Dutch inline refactor note

Test plan

  • cmake -B build -DNEXUS_BUILD_TESTS=ON && cmake --build build succeeds on Linux (GCC)
  • ctest --test-dir build finds and runs all test files without casing errors
  • Windows MinGW build still works
  • macOS (Clang) build resolves paths correctly

kikker234 and others added 9 commits May 18, 2026 20:48
… includes

New tests:
- RoomTests: toJson, fromJson, round-trip, empty defaults (5 tests)
- RoomRegistryTests: CRUD, addDevice/removeDevice, duplicate rejection,
  save/load round-trip (13 tests)
- ModuleResultTests: alreadyLoaded/notLoaded status codes and messages (3 tests)
- NexusConfigTests: defaults, toJson, save/load, loadOrCreate, partial keys (5 tests)
- JsonConfigSourceTests: string/int/float/bool parsing, missing file, empty object (6 tests)
- SchedulerTests: valid/invalid cron expressions, multiple tasks, tick (4 tests)

Also replaces the old placeholder JsonConfigSourceTests.

Fixes:
- src/rooms/Room.cpp: Rooms/ -> rooms/
- src/rooms/RoomRegistry.cpp: Rooms/ -> rooms/
- includes/Rooms/RoomRegistry.hpp: Rooms/ -> rooms/
- includes/services/RoomService.hpp: Rooms/ -> rooms/
- includes/Rooms/ renamed to includes/rooms/ so the lowercase includes
  match the actual path on case-sensitive filesystems (Linux)
- ModuleResultTests.cpp: add missing #include <nlohmann/json.hpp>
…ilds

- CMakeLists.txt: fix wrong src/pathing/ → src/paths/ (caused build failure
  everywhere since the directory is named paths/, not pathing/)
- tests/CMakeLists.txt: lowercase Event/, Result/, Scheduler/ → event/,
  result/, scheduler/ so ctest works on case-sensitive filesystems (Linux/macOS)
- WindowsModuleScanner.hpp: remove duplicate #include <unordered_set>
- Dependencies.cmake: strip emoji from status messages (CI log safety)
- ServiceHostFactory.cpp: remove leftover Dutch refactor note
… builds

Fixes CI failures on ubuntu-gcc, ubuntu-clang, macos-clang and windows-msvc
caused by mixed-case include paths (Event/, Logger/, Scheduler/, Task/,
pathing/) that only worked on Windows's case-insensitive filesystem.
@Justin9091 Justin9091 merged commit ee0d165 into main May 19, 2026
6 checks passed
@Justin9091 Justin9091 deleted the test/unit-tests branch May 19, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants