-
assigned issue to
RFE: de-duplication of installed headers
Currently we may install as many as 16 library variants (for instance {seq,par} X {O3,debug} X {smp,udp,mpi,NATIVE}
). While each library is distinct, they currently each contain a seprate include/
directory with identical contents.
It should be a straight-forward engineering task to install only one instance of the headers and construct the proper -I...
in upcxx-meta
Comments (6)
-
-
reporter - changed milestone to 2020.9.0 release
This feature request missed the cut-off for 2020.3.0. Rolling-over.
-
- changed milestone to 2021.3.0 release
Mass roll-over of open issues to next release milestone
-
reporter - changed status to open
Since this issue was first entered,
upcxx_config.hpp
has been added and it does vary with the library it is paired to. That will make the solution marginally more difficult, but still fairly mechanical.I am now considering attacking this issue for the upcoming release, but its resolution in the next few business days is far from certain.
-
reporter - changed milestone to 2021.9.0 release
A proposed solution is now in pull request 333.
However, I am NOT considering merge of that PR for the pending 2021.3.0 release due to the perceived reward (5MB on disk based on a Dirac install) relative the the risk (unusable install). I have updated the Milestone accordingly.
I hope to merge a week or two after we release and then a few weeks of nightly testing and corresponding nightly and bleeding-edge installs should let us know of any regressions.
-
reporter - changed status to resolved
De-duplication of installed headers
This commit revises the install targets in
bld/Makefile
to install a single instance ofinclude/upcxx/
to be used with all of the libraries.Installed per-library directories now contain a
gen_include/upcxx
holding only the generatedupcxx_config.hpp
. All other headers are now installed in$(prefix)/include/upcxx
. Care has been taken to avoid parallel installs of the headers, which meant splitting thedo-upcxx-install-headers
target intodo-upcxx-install-include
anddo-upcxx-install-gen_include
.The generated bottom-level
upcxx-meta
has been updated for the changed layout.The per-library build directories continue to contain both an
include
andgen_include
, where theinclude/upcxx
remains a symlink to$(top_srcdir)/src
. While it was tempting to merge the per-library symlinks in the build directory, the current scheme is parallel-make-safe in a way I could not achieve usingln -sf
.There were also some "incident" changes for maintainability. In addition to the changed name (headers -> include) on the target handling the header installation,
do-upcxx-install-all
was renameddo-upcxx-install-one-codemode
to more accurately reflect its role. Also, some missingPHONY:
dependencies were added for paranoia.Resolves issue 299
→ <<cset f0a5ed14f35c>>
- Log in to comment
This was discussed in the 2020-02-12 meeting
Paul will attempt as time allows