fmtlib/fmt

`export(` should not be scoped by `FMT_INSTALL`

Open

#4 806 ouverte le 14 juin 2026

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)C++ (2 881 forks)batch import
help wanted

Métriques du dépôt

Stars
 (23 489 stars)
Métriques de merge PR
 (Merge moyen 2j 9h) (12 PRs mergées en 30 j)

Description

Currently the export(...) cmake directive is scoped inside if (FMT_INSTALL): https://github.com/fmtlib/fmt/blob/11ddbcb7898d2d3445d431a54814367b21dee6ad/CMakeLists.txt#L496-L499

However, there are cases in which downstream projects might not want to install fmt but might still want to provide a export(...) themselves. However, this is impossible to do when depending on another target that doesn't export itself. CMake will error with something like

CMake Error: export("MyLibTargets" ...) includes target "mylib" which requires target "fmt" that is not in any export set.

Since having the exported target files in the build tree don't harm anyone, I suggest just unconditionally exporting regardless of whether FMT_INSTALL is true or not.

See also e.g. https://github.com/Kistler-Group/sdbus-cpp/pull/523

Guide contributeur