fmtlib/fmt

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

Open

#4.806 aberto em 14 de jun. de 2026

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)C++ (2.881 forks)batch import
help wanted

Métricas do repositório

Stars
 (23.489 stars)
Métricas de merge de PR
 (Mesclagem média 2d 9h) (12 fundiu PRs em 30d)

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

Guia do colaborador