You are sourcing include files from the bitcoin source tree without also adding the intermediate static libraries generated by Core during compilation that implement the header file(s) you're including.
In particular, the CSHA256 class lives in src/crypto/sha256.h\cpp which get compiled into src/crypto/libbitcoin_crypto_base.a , a static library that's not exported to /lib after compilation so put this file in your target_link_libraries as well.
Because Core uses makefiles and not CMake, you can't just set CMake to include the whole project folder as a dependency so you have to correlate header files you use with their required static libraries which you can find in
src/Makefile.am