PointCloudLibrary / PointCloudLibrary/pcl

[custom] Version-independent installation layout?

Open
#6,335 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: triage
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.