PointCloudLibrary / PointCloudLibrary/pcl
Modernize CMake module system
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Current CMake module system of PCL does only show in summary, when a module is not build because of a dependency is missing, even it was set as ON.
Instead of this we could to it like VTK 9: Instead of a simple checkbox (ON, OFF), they have a enum with more states (e.g. ON, OFF, DEFAULT).
As this would make it easier to make sure every required component is compiled, I suggest to switch to a similar schema.
Example: Your have a job to automatically build the PCL - and this works fine. After updating an dependency, e.g. CUDA, you don't see the job doesn't build anymore the GPU module. Currently this build still will be started and a broken build will be deployed (as the GPU module is missing, which is required by another job). When you could define a module as required, CMake could throw an error and the job would detect this error.
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's current CMake module summary behavior and compare it with the linked VTK 9 module-state design. Determine how states such as ON, OFF, and DEFAULT should represent missing dependencies, and how a required module should fail configuration. Done means the design is agreed and required components cannot silently disappear from a successful build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100