Skip to content

sisl: ship stdexec as a real conan dependency (3rd_party recipe)#324

Merged
szmyd merged 2 commits into
eBay:dev/v14.xfrom
szmyd:dev/v14.x
Jun 2, 2026
Merged

sisl: ship stdexec as a real conan dependency (3rd_party recipe)#324
szmyd merged 2 commits into
eBay:dev/v14.xfrom
szmyd:dev/v14.x

Conversation

@szmyd

@szmyd szmyd commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

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.

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.
@szmyd szmyd merged commit ed5a166 into eBay:dev/v14.x Jun 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant