You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice for EXP's cmake --install to put all of its public libraries and headers in the install tree, so that Gala and other consumers can compile against the tree without poking at the source or build directories. This means including the libraries and headers of vendored dependencies.
Gala would also find useful a "minimal build" mode that just builds the expui and exputil libraries.
@lgarrison Do you have a list of public headers needed by the minimum install for Gala at least?
Might save some iteration...
The second issue is trivial. Implemented at tested at the compile level. Took 90 sec on my X1C laptop! Added ENABLE_MINIMAL to implement this with a single flag. I suppose we could also have a ENABLE_PYTHON_ONLY set of flags if need be. One step more than MINIMAL.
See #168 for the proposed metaflag implementation.
Thanks! That's helpful. The transitive closure of those first three is bigger than anticipated. Still doable 'by hand', but maybe there's clever way. I'll look.
I've added some support for installing public headers from submodules and the core libraries in EXP-code/EXP/#170. TBH, I meant to make a separate PR, oops, but this is probably okay since the minor issue is also Gala related.
Summary: each submodule and EXP support libraries get a separate directory to keep things somewhat clean.
It seems to do what is supposed to do, but there are missing headers, almost certainly. So consider this a WIP. The CMake incantations are easily augmented for those missing bits, as you find them. I was not able to find a clean way to do the transitive closure over header dependencies automatically. In principle, GCC can do this, but not in a helpful form.
Anyway, if you try this and find missing headers, please add them and push a PR. Thanks.
Activity
The9Cat commentedon Oct 18, 2025
@lgarrison Do you have a list of public headers needed by the minimum install for Gala at least?
Might save some iteration...
The second issue is trivial. Implemented at tested at the compile level. Took 90 sec on my X1C laptop! Added
ENABLE_MINIMALto implement this with a single flag. I suppose we could also have aENABLE_PYTHON_ONLYset of flags if need be. One step more than MINIMAL.See #168 for the proposed metaflag implementation.
lgarrison commentedon Oct 20, 2025
Gala is including these headers from EXP:
We need any headers transitively included by those headers. In terms of vendored dependencies, it might just be these two:
The9Cat commentedon Oct 21, 2025
Thanks! That's helpful. The transitive closure of those first three is bigger than anticipated. Still doable 'by hand', but maybe there's clever way. I'll look.
The9Cat commentedon Oct 21, 2025
I've added some support for installing public headers from submodules and the core libraries in EXP-code/EXP/#170. TBH, I meant to make a separate PR, oops, but this is probably okay since the minor issue is also Gala related.
Summary: each submodule and EXP support libraries get a separate directory to keep things somewhat clean.
It seems to do what is supposed to do, but there are missing headers, almost certainly. So consider this a WIP. The CMake incantations are easily augmented for those missing bits, as you find them. I was not able to find a clean way to do the transitive closure over header dependencies automatically. In principle, GCC can do this, but not in a helpful form.
Anyway, if you try this and find missing headers, please add them and push a PR. Thanks.
The9Cat commentedon Oct 23, 2025
Addressed by PR #170