PointCloudLibrary / PointCloudLibrary/pcl
[custom] Version-independent installation layout?
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Hello,
We just want to suggest a small improvement. Currently, the installation layout creates a folder
${CMAKE_INSTALL_PREFIX}/include/pcl-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}/pcl
to install the PCL headers. Surprisingly, nothing else depends on the actual PCL version as the libraries and binaries are simply named pcl_${MODULE}.${EXT}. This is useful to keep depending projects independent of the actual PCL version (assuming there are no API breaking changes) - particularly useful in combination with disabling VTK's VTK_VERSIONED_INSTALL flag, too.
However, PCL's include directory depends on the version, such that depending projects need to be reconfigured (if they are not CMake-based) according to the new include path (e.g. replace pcl-1.4 by pcl-1.5), even though there are no breaking changes, and there seems to be no option to disable this. Is there any particular reason for this setup?
If not, we suggest to remove the versioned include directory as defined in pcl_utils.cmake. A patch is rather easy, we just have to remove the /${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR} parts from the paths in all involved .cmake and .cmake.in files. Maybe this is useful for everyone who wants to manually patch the file... we can prepare a PR for this if you agree to our proposal.
If you want to keep the current layout, feel free to simply close the issue, we are fine with patching the file ourselves, too. Still, we wanted at least to suggest a respective patch.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing pcl_utils.cmake and the involved .cmake and .cmake.in files for paths containing the versioned include directory. Check how the installation layout is generated and whether all related paths are covered. Done means the headers install without the PCL version in the include path, with the proposal's compatibility tradeoff resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100