[cmake-developers] FindBZip2.cmake

Brad King brad.king at kitware.com
Mon Aug 24 11:41:54 EDT 2015


On 08/23/2015 07:36 AM, Rolf Eike Beer wrote:
> you introduced in 7c912af2 that this module not only looks into the Windows 
> registry, but also added PATH_SUFFIXES include and lib for find_* calls.
> Wouldn't CMake automatically append those to all paths given?

No.  The suffixes are only added after values found in CMAKE_PREFIX_PATH
and similar variables, not to every path given.

> Another thing which I found is that there seems to be an obscure problem in 
> FindBZip2.cmake to not find the library on Windows if the path contains 
> backslashes. Yes, really. Just compare the cmake part of these 2 links (no 
> idea how long they will present, as they are CI logs):
> 
> https://ci.appveyor.com/project/Mapbox/libosmium/build/1.0.228/job/my1segqcq89k28en
> https://ci.appveyor.com/project/Mapbox/libosmium/build/1.0.227/job/rnu1e71degn7snwm
> 
> I have no clue what happens there, why it happens only for that module, and 
> why noone noticed that before. I do not have access to a Windows system where 
> I can test easily, but maybe you can have a look (or find someone to)? I 
> thought that it may be "\b", because that would be unique to that module in 
> that build configuration, but if I pass the CMAKE_PREFIX_PATH with forward 
> slash at that point it still fails, while all other modules work.

The BZIP2_NEED_PREFIX check generates a CMakeLists.txt file that
refers to the raw path given without re-escaping the backslashes.
Then the check fails to configure due to the backslashes being
interpreted as invalid CMake escape sequences.

-Brad



More information about the cmake-developers mailing list