@hjmjohnson I've completed the next round of changes. I struggled a bit with nifti_clib and so had to change that quite a bit too in the process (I'll set up that as a pull request after this). I have not worked through adding tests yet. What I have focused implementing is:
Allow both libraries and their downstreams to specify a prefix (NIFTI_PACKAGE_PREFIX in both cases) that
a) Installs into a directory with that prefix + library name (with the exception of binaries)
b) installs all libraries and executables with the prefix appended
c) regardless of prefix all make targets are the same to reduce the load on programmers working memory
d) other than the CMakeLists.txt file in which it is defined all targets are namespaced with NIFTI:: or GIFTI regardless of whether they are part of the current project being built, part of a superbuild, or imported using find_package
Upon installation on Unix all executables/libraries should be appropriately linked. This is almost working with the caveats:
a) I haven't looked at windows yet
b) I haven't tested on Mac OS yet
c) GIFTI does not append the nifti library relative paths unless nifti_clib was imported using find_package.
How much does CPACK resolve in this respect? Should I bother troubleshooting the final bits of linking?
Regardless of found system-libraries/superbuild status and regardless of prefix used the make and install should be seamless even if working off a pre-existing build cache.
Rather than variables to configure what is installed, label the various components as Runtime, Libraries, or Development.
Let me know what you think/any changes one would need for ITK or other downstreams to keep working without too much effort.
@hjmjohnson I've completed the next round of changes. I struggled a bit with nifti_clib and so had to change that quite a bit too in the process (I'll set up that as a pull request after this). I have not worked through adding tests yet. What I have focused implementing is:
Allow both libraries and their downstreams to specify a prefix (NIFTI_PACKAGE_PREFIX in both cases) that a) Installs into a directory with that prefix + library name (with the exception of binaries) b) installs all libraries and executables with the prefix appended c) regardless of prefix all make targets are the same to reduce the load on programmers working memory d) other than the CMakeLists.txt file in which it is defined all targets are namespaced with NIFTI:: or GIFTI regardless of whether they are part of the current project being built, part of a superbuild, or imported using find_package
Upon installation on Unix all executables/libraries should be appropriately linked. This is almost working with the caveats: a) I haven't looked at windows yet b) I haven't tested on Mac OS yet c) GIFTI does not append the nifti library relative paths unless nifti_clib was imported using find_package. How much does CPACK resolve in this respect? Should I bother troubleshooting the final bits of linking?
Regardless of found system-libraries/superbuild status and regardless of prefix used the make and install should be seamless even if working off a pre-existing build cache.
Rather than variables to configure what is installed, label the various components as Runtime, Libraries, or Development.
Let me know what you think/any changes one would need for ITK or other downstreams to keep working without too much effort.