I had a problem where CMake picked up half of ICU from its C API, which is included with the Windows SDK, and half from the C++ API we provide. This should prevent that.
ICU_ROOTtakes precedence as a CMake variable so do that instead of as an environment variable.
ICU_LIBRARYis an output of
FindICU.cmake, not an input, so don't set it.
FindICU.cmakeneeds telling about components via their own variables.