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

FAQ: document additional tools required for C/C++ development #2374

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/user/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ x86_64-apple-darwin13.4.0-clang: No such file or directory

are a telltale sign that you are lacking compilers.

Depending on the specific tools that you use for building C/C++ code, you may need some additional tools, for example:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Depending on the specific tools that you use for building C/C++ code, you may need some additional tools, for example:
The actual orchestration of the various compilation and linking steps is almost always done
by some build orchestrator (e.g. `CMake`, `meson`, ...), which will generally require a
build system (e.g. `ninja`, `make`), or possibly other supporting tools like `pkg-config`.
We package several tools that can be used for building C/C++ code; a selection that covers
the most common scenarios would be:


```
compilers cmake pkg-config make ninja meson
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
compilers cmake pkg-config make ninja meson
c-compiler cxx-compiler pkg-config cmake make ninja

While I appreciate that using compilers is a one-stop way to ensure both c-compiler and cxx-compiler get added, it feels a bit strange to also suggest that people just install fortran-compiler even if they may have no need for it. Similarly it seems strange to suggest installing meson as well.

My views here are all conditioned on a research field that is a bit more conservative about pulling in additional dependencies that are not strictly required, and that I like people to generally understand why they have most of (not going to say all) of the dependencies installed that they do. At the same time, I'm being slightly inconsistent by not complaining about ninja, but ninja is awesome and when it can get automatically used that's even better.

So my suggestion here is more along the lines of sticking to the

C/C++ code

part of your additions.

Alternatively/Additionally, I'd suggest mentioning what each of these dependencies brings / why you'd want to install them.

Copy link
Contributor Author

@traversaro traversaro Nov 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree on not installing a fortran compiler, applied your suggestions on 85dbd59 . As a personal opinion, I think that instead is fruitful to have meson here, as there are huge communities in C/C++ world that consistently use meson (gnome, mesa, c/c++ bits of numpy&scipy), but let's what is the consensus around this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll defer to you and other reviewers here. I come from a field where in terms of build systems CMake is considered the "new" way of doing things and we're slowly clawing our way out of autotools + custom stuff. I only learned that meson even existed when SciPy started their transition to it as their build system.

```

<a id="faq-compiler-required-options"></a>

<a id="why-don-t-the-c-c-compilers-automatically-know-how-to-find-libraries-installed-by-conda"></a>
Expand Down
Loading