The problem isn't the integration between the library, cmake, pkg-config, and libcheck's .pc file. The actual problem is that Ubuntu (and AFAIK, certain versions on Debian) ship a broken .pc file in the libcheck package.

I agree that using the cmake package is the most correct approach. However, since that would effectively make libhpack fail to build in those popular OSes, I'd rather be pragmatic and stick to the current approach for the time being.