[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