0478 build: expose core include paths to nwfs imports

This commit is contained in:
Mario Fetka
2026-06-13 14:01:36 +00:00
committed by Mario Fetka
parent 72c7306f30
commit 73debdcbec
2 changed files with 16 additions and 9 deletions

19
AI.md
View File

@@ -47,7 +47,7 @@ unfinished work out of `TODO.md` merely because its architecture is documented.
Latest patch marker expected in an up-to-date bundle:
- `0477 build: expose nwssl error helpers for nwwebui`
- `0478 build: expose core include paths to nwfs imports`
When a later chat receives a new `mars-nwe-master` bundle, compare `git log -1`
with this marker. If the uploaded bundle already contains this commit subject,
@@ -67,17 +67,18 @@ The active line is expected to include:
Last generated patch:
- `0477 build: expose nwssl error helpers for nwwebui`
- `0478 build: expose core include paths to nwfs imports`
Purpose of that patch:
- Keep `nwwebui` on the shared `nwssl`/MatrixSSL compatibility path instead of
adding a direct OpenSSL dependency for TLS error handling.
- Export the small OpenSSL-shaped `ERR_get_error()` and `ERR_error_string_n()`
surface that the SMArT-derived `nwwebui` logging path uses.
- Make MatrixSSL compatibility errors printable through the existing
OpenSSL-shaped error API, so `nwwebui` can compile against `mars_nwe::ssl` and
log TLS failures through `nwlog`.
- Make `nwfs` consume the already-imported `libnwcore` header surface through
normal target usage requirements instead of copying or symlinking core
headers under `include/nwfs`.
- Add the generated build include directory and `include/core` to the `nwfs`
public build interface so adapted NSS namespace files can include core helper
headers directly while still linking against `mars_nwe::core`.
- Keep the NSS-specific SDK/include directories scoped to the namespace import
path that still needs them; do not add another duplicate header staging area.
Directory/NDS work order before any FLAIM storage conversion:

View File

@@ -22,6 +22,10 @@ set_target_properties(nwfs PROPERTIES
target_compile_features(nwfs PRIVATE c_std_99)
target_link_libraries(nwfs
PUBLIC
mars_nwe::core)
# Keep libnwfs quota backends self-contained even though src/CMakeLists.txt
# currently applies legacy Linux definitions globally for the old server
# executables. The explicit target definitions make the library contract clear
@@ -38,6 +42,8 @@ endif()
target_include_directories(nwfs
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>"
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include/core>"
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include/nwfs/nss/sdk/public>"
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include/nwfs/nss/sdk/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"