This test currently fails on POSIX, as `process_io_binding` does not
explicitly implement move operations but holds on to a file descriptor
which exhibits reference semantics and has a non-trivial destructor.
The same test should pass on Windows as the Windows implementation makes
use of `unique_ptr` which gives it correct move semantics by virtue of
the rule of zero.
`process_stdio` holds on to the handles for `in`/`out`/`err`. In case of
pipes, `in` needs the handles of a `readable_pipe`, whereas `out` and
`err` need the handles of `writable_pipe`s. So far, the tests all create
a new pair using `connect_pipe`, pass the "correct" end into
`process_stdio`, and use the other end to interface with the process.
However, `process_io_binding` also supports construction from the
complementary pipe types, i.e., constructing `in`'s binding from a
`writable_pipe` and `out`/`err`'s bindings from `readable_pipe`s.
In this case, the constructor will create the corresponding pipe itself
and keep ownership of it. This mode was thus far not tested.
* Make the library modular usable.
* Switch to library requirements instead of source. As source puts extra source in install targets.
* Add requires-b2 check to top-level build file.
* Add missing test deps.
* Bump B2 require to 5.2
* Fix duplicate def of boost.process.fs feature.
* Add missing boost_test dependency.
* Move inter-lib dependencies to a project variable and into the build targets.
* Switch to /boost/test//included target for header only mode of Boost.Test.
* Adjust doc build to avoid boost-root references.
* Update build deps.
* Fix link and build of deps.