Repository navigation
Select the Conan C++26 mode with an option - #455
Merged
Merged
Conversation
Assisted-by: Claude:claude-opus-5-5 Assisted-by: Codex:gpt-6.1-sol
CMakeDeps links every component into libfn::libfn, so the fn_cxx26 component also enabled LIBFN_CXX26 and C++26 on the aggregate target. Use an explicit cxx26 option, following the Conan Center recipe review (conan-io/conan-center-index#30871). The profile selects the language standard, and libfn::fn_cxx26 becomes an alias when cxx26 is enabled. Consumers that exchange fn types must use the same mode. Package headers through CMake's install rules and provide the libfn::version component. The test package checks that the aggregate's LIBFN_CXX26 definition matches the option. Linux CI uses the image's CMake to satisfy the recipe's tool requirement. Assisted-by: Claude:claude-opus-5-5 Assisted-by: Codex:gpt-6.1-sol
Remove the consumer's explicit cxx_std_20 requirement so the test uses libfn::fn's CMake usage requirement, or compiler.cppstd from the Conan profile. Clarify this distinction in the README. Assisted-by: Claude:claude-opus-5-5 Assisted-by: Codex:gpt-6.1-sol
🤖 Augment PR SummarySummary: Makes Conan C++26 mode selection explicit and aligns packaging with CMake.
🤖 Was this summary useful? React with 👍 or 👎 |
Mirror the Conan Center recipe, which restored its compiler table after review, with main's floors; also drop the default includedirs. Assisted-by: Claude:claude-opus-5-5
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Port the fixes from the Conan Center review of the libfn recipe (conan-io/conan-center-index#30871) to the in-repo
conanfile.py, and tidy the README sections around packaging.CMakeDeps links every component into the
libfn::libfnaggregate. Withfn_cxx26as a component, any consumer linkinglibfn::libfngotLIBFN_CXX26and, through the recipe's build module, C++26 without asking for either. Acxx26option replaces the component: it selects the mode for the whole dependency graph, the profile'scompiler.cppstdselects the standard, andlibfn::fn_cxx26becomes an alias oflibfn::fnwhen the option is set.Changes for Conan consumers:
-o "libfn/*:cxx26=True"and-s compiler.cppstd=26; without the option,libfn::fn_cxx26does not exist.libfn::libfnno longer selects the mode.libfn::version, as the CMake package does.Other changes:
test_packagecompiles a mode check againstlibfn::libfn, and no longer sets the C++ standard itself; it builds only if the package (or the Conan profile) supplies C++20.cmaketool requirement to the image's CMake: ConanCenter has no Linux arm64 cmake binary, so the lane would otherwise build cmake from source on every run.Verified locally with gcc 16.2.1 and Conan 2.31.1: both Conan lanes pass; the mode check fails for a recipe that puts a
fn_cxx26component back and for one whosecxx26option omits the define; the packaged headers matchinclude/*.hpp. Through the installed CMake package and clang 22 (default C++17),test_packagebuilds as C++20 and fails once the package's compile features are removed. The Windows lane is covered by CI only.Assisted-by: Claude:claude-opus-5-5
Assisted-by: Codex:gpt-6.1-sol