Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • VTK-m VTK-m
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 192
    • Issues 192
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 37
    • Merge requests 37
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VTK
  • VTK-mVTK-m
  • Issues
  • #646
Closed
Open
Created Nov 18, 2021 by Kenneth Moreland@kmorelMaintainer

Third party lcl needs name mangling

One of the third party libraries included with the VTK-m source is lcl (the lightweight cell library). The headers of this header-only library are included in the compiler include paths and simply included by VTK-m headers.

This is problematic if VTK-m is used in conjunction with another software product that also includes its own version of lcl. It opens the possibility of including different, possibly incompatible, versions of the lcl. This can be solved in one of two ways:

  1. Mangle the symbols to make the includes in VTK-m unique. This typically means adding or changing the namespace. It also means changing the #include path to be slightly unique (e.g. vtkmlcl/lcl.h instead of lcl/lcl.h).

  2. Change the CMake to allow VTK-m to optionally include an external lcl rather than the one included in the thirdparty directory. This allows external software to point multiple products to the same library.

This is needed to satisfy the E4S Community Policies. It is also generally a good practice.

Assignee
Assign to
Time tracking