libarchive's crypto library checks use its
config.h inside the
try_compile project. Since !4839 (merged),
that header depends on KWIML inside CMake. Add the include directory
for KWIML to the crypto library checks. Otherwise, they always fail
due to not finding the KWIML headers, and libarchive decides not
to link the crypto library.
libarchive has other code besides the hash algorithms that depends on the crypto library if its ENABLE_OPENSSL option is enabled (which in CMake is controlled by CMAKE_USE_OPENSSL). It seems to be missing some conditions to link the crypto library in those cases, and instead relies on at least one of the above-mentioned checks to pass. If they all fail, and we are using system curl, we might not link the crypto library.
Fixes: #23234 (closed)