Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[c]: install headers under cucumber/gherkin/ and .cmake files under gherkin/ #346

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

musicinmybrain
Copy link
Contributor

Rather than installing all the C headers directly under e.g. /usr/include, put them in a subdirectory like /usr/include/cucumber/gherkin.

This is not the same directory as the C++ headers, which have an extra cucumber/ corresponding to the cucumber:: C++ namespace, e.g. /usr/include/cucumber/cucumber/gherkin/. See cucumber/messages#267 (comment).


Rather than installing .cmake files directly under e.g. /usr/lib/cmake, put them in a subdirectory like /usr/lib/cmake/gherkin.

C++ CMake files are currently installed under e.g. /usr/lib/cmake/cucumber_gherkin; I think the leading cucumber_ corresponds to the cucumber:: C++ namespace, which is why I have chosen just gherkin for the C CMake files.

These paths will be influenced by #345.

🤔 What's changed?

Install headers under the subdirectory cucumber/gherkin within the target include directory rather than all at the top level. Install .cmake files under the gherkin subdirectory within the target cmake directory rather than all at the top level, which is more conventional.

⚡️ What's your motivation?

The C API has a large number of header files with generic names like event.h and item.h that have a high risk of conflict in system-wide installations and therefore should not be installed directly in directories like /usr/include.

See cucumber/messages#267 (comment) for discussion of the path scheme.

A review of -devel packages installed on my Fedora system showed that installing .cmake files in a subdirectory of a cmake directory as in this PR is much more conventional than installing all the .cmake files at the top level.

🏷️ What kind of change is this?

  • 🐛 Bug fix (non-breaking change which fixes a defect)

♻️ Anything particular you want feedback on?

Confirm that the adjusted installation paths are the desired ones.

📋 Checklist:

  • I agree to respect and uphold the Cucumber Community Code of Conduct
  • I've changed the behaviour of the code
    • I have added/updated tests to cover my changes.
  • My change requires a change to the documentation. ???
    • I have updated the documentation accordingly.
  • Users should know about my change
    • I have added an entry to the "Unreleased" section of the CHANGELOG, linking to this pull request.

This text was originally generated from a template, then edited by hand. You can modify the template here.

Rather than installing all the C headers directly under e.g.
`/usr/include`, put them in a subdirectory like
`/usr/include/cucumber/gherkin`.

This is *not* the same directory as the C++ headers, which have an extra
`cucumber/` corresponding to the `cucumber::` C++ namespace, e.g.
`/usr/include/cucumber/cucumber/gherkin/`. See
cucumber/messages#267 (comment).
Rather than installing `.cmake` files directly under e.g.
`/usr/lib/cmake`, put them in a subdirectory like
`/usr/lib/cmake/gherkin`.

C++ CMake files are currently installed under e.g.
`/usr/lib/cmake/cucumber_gherkin`; I think the leading `cucumber_`
corresponds to the `cucumber::` C++ namespace, which is why I have
chosen just `gherkin` for the C CMake files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant