sisl: ship stdexec as a real conan dependency (3rd_party recipe)#324
Merged
Conversation
sisl/async/task.hpp and when_all.hpp are public, installed headers that FetchContent. So consumers of the sisl package -- and everything downstream (nuraft_mesg and its test_package) -- could not find exec/task.hpp. Add a header-only conan recipe for stdexec pinned to commit ea0d8788 (release nvhpc-25.09, the exact revision the in-tree FetchContent blocks use, so the headers are byte-identical), export it from prepare_v2.sh, and require it with transitive_headers=True so it flows to all consumers. The recipe also propagates -D_PSTL_PAR_BACKEND_SERIAL (keeps <execution> off the TBB PSTL backend) and -Wno-empty-body/-Wno-subobject-linkage, matching the in-tree stdexec_iface targets. Verified: conan create builds the settings-independent header package (sha256 matched); generated CMakeDeps for a consumer carry the include dir, the PSTL define, and the warning flags; the sisl->stdexec edge resolves with headers=True/transitive_headers=True.
- stdexec recipe: -Wno-subobject-linkage is gcc-only; clang rejects it as an unknown warning option (fatal under -Werror). Apply it for gcc only; clang gets just -Wno-empty-body. Both still get -D_PSTL_PAR_BACKEND_SERIAL. - conanfile: gate the breakpad/cci.20210521 requirement behind a _use_breakpad() helper that excludes gcc >= 16 (the 2021 recipe doesn't build there); other Linux/libstdc++ toolchains keep it.
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.
sisl/async/task.hpp and when_all.hpp are public, installed headers that FetchContent. So consumers of the sisl package -- and everything downstream (nuraft_mesg and its test_package) -- could not find exec/task.hpp.
Add a header-only conan recipe for stdexec pinned to commit ea0d8788 (release nvhpc-25.09, the exact revision the in-tree FetchContent blocks use, so the headers are byte-identical), export it from prepare_v2.sh, and require it with transitive_headers=True so it flows to all consumers. The recipe also propagates -D_PSTL_PAR_BACKEND_SERIAL (keeps off the TBB PSTL backend) and -Wno-empty-body/-Wno-subobject-linkage, matching the in-tree stdexec_iface targets.
Verified: conan create builds the settings-independent header package (sha256 matched); generated CMakeDeps for a consumer carry the include dir, the PSTL define, and the warning flags; the sisl->stdexec edge resolves with headers=True/transitive_headers=True.