I'll need to try and see what happens with <source> in user-config. Probably nothing good, because one would expect neither <build-name> nor <tag> to be specified in such a case.
If I remove the check for ZLIB_SOURCE, and just do alias boost_zlib : /zlib//zlib ; libraries-to-install += boost_zlib ; unconditionally in libs/iostreams/build/Jamfile, this is what happens: - when `using zlib : : <source>C:/Projects/zlib-1.2.11 ;` is in user-config, the default `b2 install` fails because `address-model=32,64 variant=debug,release` conflict as all try to build `libz.lib`. When address-model=32 variant=debug is given, `libz.lib` is installed in C:\Boost\lib, and the CMake configuration for boost_zlib correctly points to it. - when using a prebuilt `using zlib : : <include>C:/Projects/include <search>C:/Projects/lib <name>zlib-8 ;`, the CMake configuration file for boost_zlib points to "${_BOOST_LIBDIR}/zlib-8", which is not correct.