[cmake-developers] FindBoost: boost version vs cached variables

Philip Lowman philip at yhbt.com
Mon Jul 2 00:14:18 EDT 2012


Andriy,

Sorry for the delay in responding.  I did some additional testing tonight
and merged the changes into next.  Thanks again for reporting this.

On Thu, Jun 21, 2012 at 1:12 PM, Andriy Gapon <avg at icyb.net.ua> wrote:

> on 20/06/2012 07:39 Philip Lowman said the following:
> > I wasn't aware of this defect.  Thanks for pointing it out.
> >
> > Could you give the attached version a whirl?  I got rid of the odd
> caching
> > behavior (not sure exactly why FindBoost was written that way to begin
> with) and
> > this appears to resolve the bug.
>
> Yes, thank you very much!
> With the attached version the Boost detection works as expected.  And just
> in
> case: I haven't run into any regressions with a real/larger project.
>
> > On Tue, Jun 19, 2012 at 10:54 AM, Andriy Gapon <avg at icyb.net.ua
> > <mailto:avg at icyb.net.ua>> wrote:
> >
> >
> >     FindBoost.cmake currently (as of CMake 2.8.8) has fairly simply
> logic to see if
> >     Boost is already found and the relevant variables are cached.
> >     Essentially that logic verifies that Boost_INCLUDE_DIR and
> >     Boost_${COMPONENT}_FOUND variables are set.
> >
> >     What it doesn't do is validate that the found/cached Boost version
> satisfies the
> >     requested version.  At least it seems so.  And this is amplified by
> the fact that
> >     the variables remained set and cached even if the original search
> for Boost
> >     couldn't find a satisfactory version.
> >
> >     A sample CMakeLists.txt file:
> >
> >     CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
> >     PROJECT(boost_test)
> >     FIND_PACKAGE(Boost 1.51)
> >     IF(Boost_FOUND)
> >            MESSAGE("Boost 1.51 found!!!")
> >     ELSE(Boost_FOUND)
> >            MESSAGE("Boost 1.51 not found...")
> >     ENDIF(Boost_FOUND)
> >
> >
> >     As you know, Boost 1.51 doesn't exist yet.
> >
> >     But on a system with Boost 1.48.0 installed I get:
> >
> >     $ cmake .
> >     -- The C compiler identification is GNU 4.2.1
> >     -- The CXX compiler identification is GNU 4.2.1
> >     -- Check for working C compiler: /usr/bin/gcc
> >     -- Check for working C compiler: /usr/bin/gcc -- works
> >     -- Detecting C compiler ABI info
> >     -- Detecting C compiler ABI info - done
> >     -- Check for working CXX compiler: /usr/bin/c++
> >     -- Check for working CXX compiler: /usr/bin/c++ -- works
> >     -- Detecting CXX compiler ABI info
> >     -- Detecting CXX compiler ABI info - done
> >     -- Could NOT find Boost
> >     Boost 1.51 not found...
> >     -- Configuring done
> >     -- Generating done
> >     -- Build files have been written to: /home/avg/tmp/boost-test
> >
> >     So far so good.  Running cmake again:
> >
> >     $ cmake .
> >     Boost 1.51 found!!!
> >     -- Configuring done
> >     -- Generating done
> >     -- Build files have been written to: /home/avg/tmp/boost-test
> >
> >     Adding SET(Boost_DEBUG TRUE) I get the following for a secondary run:
> >     $ cmake .
> >     -- [ /usr/local/share/cmake/Modules/FindBoost.cmake:519 ] boost
> 1.48.0 is already
> >     in the cache.  To view debugging messages, please clear the cache.
> >     Boost 1.51 found!!!
> >     -- Configuring done
> >     -- Generating done
> >     -- Build files have been written to: /home/avg/tmp/boost-test
> >
> >     So FindBoost correctly knows that it has seen boost 1.48.0, but it
> misreports that
> >     boost 1.51 is available.
> >
> >     --
> >     Andriy Gapon
> >
> >     --
> >
> >     Powered by www.kitware.com <http://www.kitware.com>
> >
> >     Visit other Kitware open-source projects at
> >     http://www.kitware.com/opensource/opensource.html
> >
> >     Please keep messages on-topic and check the CMake FAQ at:
> >     http://www.cmake.org/Wiki/CMake_FAQ
> >
> >     Follow this link to subscribe/unsubscribe:
> >     http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
> >
> >
> >
> >
> > --
> > Philip Lowman
>
>
> --
> Andriy Gapon
>
>
>


-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120702/7febcef1/attachment.html>


More information about the cmake-developers mailing list