feat: dlopen-based geometry *module* support#5253
Open
paulgessinger wants to merge 23 commits intoacts-project:mainfrom
Open
feat: dlopen-based geometry *module* support#5253paulgessinger wants to merge 23 commits intoacts-project:mainfrom
dlopen-based geometry *module* support#5253paulgessinger wants to merge 23 commits intoacts-project:mainfrom
Conversation
paulgessinger
commented
Mar 17, 2026
Contributor
ea64e68 to
0ca5549
Compare
e63e4a2 to
5188ecf
Compare
andiwand
previously approved these changes
Mar 25, 2026
Contributor
andiwand
left a comment
There was a problem hiding this comment.
Looks pretty solid to me.
In terms of adding vs not adding this: I don't really have an opinion. If this is useful to clients we should definitely go for this. Even if it is not immediately useful I see no harm. We can see how this evolves and collect feedback afterwards. I don't see a big impact on maintainability right now as this code should be stable compared to other parts of our software.
Contributor
There was a problem hiding this comment.
this and cmake/ActsDD4hepGeometryModuleHelpers.cmake look quite similar but I think it's fine for these kinds of cases
5188ecf to
f245d2d
Compare
andiwand
previously approved these changes
Mar 27, 2026
…pers - Add GeometryModule, GeometryModuleLoader, GeometryModuleHelpers - Add DownstreamProject tests for geometry module loading - Update CI workflows and CMake for geometry module support
…plugin - Rename GeometryModuleHelpers to GeometryModuleHelper - Add DD4hep-specific GeometryModuleHelper in plugin
- Move loader to plugin, add DD4hep-specific test - Add ActsDD4hepGeometryModuleHelpers CMake module
- Rename to ActsDD4hepGeometryModuleHelpers for DD4hep plugin - Update CMake and package config
- Add user_data_type to ActsGeometryModuleV1 - Add loadGeometryModuleImpl with typed user data validation - Remove public loadGeometryModule(userData) overload
- Add compile-time #error in headers for non-Unix platforms - Add CMake FATAL_ERROR in geometry module helper functions - Remove runtime #ifdef guards in implementation
- validate runtime geometry modules against the loader's explicit ABI tag - extend DD4hep module ABI tags with the resolved DD4hep version - document DD4hep-specific runtime module ABI matching and errors - simplify static geometry module descriptor initialization
ad6c7c9 to
6202b37
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR adds a (completely optional) mechanism to compile a geometry module. This module exposes a C API to construct a tracking geometry and send it to a host program over a shared library boundary opened via
dlopen.The host library manages lifetime of the geomerty transparently.