PointCloudLibrary / PointCloudLibrary/pcl

Improve toggling between static/dynamic linking of dependency libraries

Open
#2,089 14 comments 1 reaction 1 assignee View on GitHub

@taketwo is already working on this.

Since Nov 15, 2017.

kind: todo module: cmake skill: cmake
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

Follow-up to discussions in #2084.

Plan:

  1. Remove options
  • PCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32
  • PCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32
  1. Introduce options
    • BOOST_USE_STATIC
    • FLANN_USE_STATIC
    • QHULL_USE_STATIC

Open questions:

  1. Do these options express strict requirement or just a preference? For example, if the user set FLANN_USE_STATIC=TRUE, but only dynamic libraries are available, is this a configuration error? Or do we issue a warning and coerce the option to FALSE?
  2. How do these options interact with PCL_SHARED_LIBS? If shared libs are disabled, i.e. the user wants to compile PCL as a static library, should it force all the dependencies to be static as well?
  3. Default values? Depending on the platform?

The second question may involve some complicated logic. Stepping a bit back, I wonder if such level of configurability is actually needed? Maybe PCL_SHARED_LIBS is sufficient? If it is set, then we default to finding shared dependencies and fall back to static. If it is not set, then we default to static and fall back to shared (or even error)?

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.