CMake's FindBoost Module Can't Detect Boost Version

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

CMake's FindBoost Module Can't Detect Boost Version

Osman Zakir
I built Boost 1.72.0 while passing the "--layout=versioned" flag to b2, but when I tried to rebuild Jinja2Cpp with the newer version of Boost using CMake, it failed to generate project files and said it couldn't filesystem and system and also couldn't detect version information.  Could someone please help me out with this?  Thanks.

--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org
Reply | Threaded
Open this post in threaded view
|

Re: CMake's FindBoost Module Can't Detect Boost Version

Mateusz Loskot
On Tue, 17 Dec 2019 at 16:39, Osman Zakir <[hidden email]> wrote:
>
> I built Boost 1.72.0 while passing the "--layout=versioned" flag to b2, but when I tried to rebuild Jinja2Cpp with the newer version of Boost using CMake, it failed to generate project files and said it couldn't filesystem and system and also couldn't detect version information.  Could someone please help me out with this?

I recall you have been asking similar questions in the past about Jinja2Cpp.

You have received number of useful suggestions [1], e.g. to use
-DBoost_DEBUG=ON,
and investigate detailed diagnostics, to try -DBoost_COMPILER=...
and -DBoost_ARCHITECTURE hints, etc.
Please, apply this knowledge.

Finally, your questions are poorly formulated e.g. my crystal sphere has broken
and I can't figure out what compiler, toolset, cmake version, etc. you are on.
Next time, try to help people help you [2]

[1] https://cmake.org/pipermail/cmake/2018-October/068477.html
[2] http://www.catb.org/~esr/faqs/smart-questions.html

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org
--
Mateusz Loskot
http://mateusz.loskot.net
Reply | Threaded
Open this post in threaded view
|

Re: CMake's FindBoost Module Can't Detect Boost Version

Osman Zakir
I tried passing -DBoost_COMPILER and -DBoost_DEBUG but it seems it's only looking for up to Boost 1.71.0; the test versions go up to there only.  Should I edit the FindBoost.cmake file to have it look for version 1.72.0 as well?  

I'm using MSVC version 14.2, Visual Studio 2019.  I'm using the Developer Command Prompt for VS2019.  

I don't know about all of the flags I need to pass, but if it can find the Boost version then it should be able to detect all of the stuff on its own, right?  The first step there isn't going right.

--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org
Reply | Threaded
Open this post in threaded view
|

Re: CMake's FindBoost Module Can't Detect Boost Version

Mateusz Loskot
On Tue, 17 Dec 2019 at 18:43, Osman Zakir <[hidden email]> wrote:
>
> I tried passing -DBoost_COMPILER and -DBoost_DEBUG

That is incorrect!

The options must read  -DBoost_DEBUG=ON
and -DBoost_COMPILER=-vc141 or vc142, depending on
what b2.exe generated in names for your MSVC version.

> but it seems it's only looking for up to Boost 1.71.0; the test versions go up to there only.
> Should I edit the FindBoost.cmake file to have it look for version 1.72.0 as well?

If you have read/searched the FindBoost docs page
https://cmake.org/cmake/help/latest/module/FindBoost.html?highlight=version
you would have learned that you can specify
-DBoost_ADDITIONAL_VERSIONS=1.72

> I don't know about all of the flags I need to pass, but if it can find the Boost version then it should be able to detect all of the stuff on its own, right?

It should, but it still may need hints like Boost_COMPILER, or
Boost_ARCHITECTURE.

FindBoost is a Find-module.
A Find-module is a ***guesser***.
A guesser has right to fail to guess...no hard promises.

https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html

"Unlike a package configuration file, it is not shipped with upstream,
but is used by downstream to find the files by guessing locations of
files with platform-specific hints."

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org
--
Mateusz Loskot
http://mateusz.loskot.net
Reply | Threaded
Open this post in threaded view
|

Re: CMake's FindBoost Module Can't Detect Boost Version

Osman Zakir
Yeah, forgot.  

I did specify the values for the flags on the actual thing.  -DBoost_COMPILER=-vc142, -DBoost_ARCHITECTURE=-x64 and -DBoost_DEBUG=ON.  I'll try specifying the version number like what you said.  Thanks for that.  

--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org
Reply | Threaded
Open this post in threaded view
|

Re: CMake's FindBoost Module Can't Detect Boost Version

Deniz Bahadir-2
In reply to this post by Mateusz Loskot
Am 17.12.19 um 17:35 schrieb Mateusz Loskot:

> On Tue, 17 Dec 2019 at 16:39, Osman Zakir <[hidden email]> wrote:
>>
>> I built Boost 1.72.0 while passing the "--layout=versioned" flag to b2, but when I tried to rebuild Jinja2Cpp with the newer version of Boost using CMake, it failed to generate project files and said it couldn't filesystem and system and also couldn't detect version information.  Could someone please help me out with this?
>
> I recall you have been asking similar questions in the past about Jinja2Cpp.
>
> You have received number of useful suggestions [1], e.g. to use
> -DBoost_DEBUG=ON,
> and investigate detailed diagnostics, to try -DBoost_COMPILER=...
> and -DBoost_ARCHITECTURE hints, etc.
> Please, apply this knowledge.
>
> Finally, your questions are poorly formulated e.g. my crystal sphere has broken
> and I can't figure out what compiler, toolset, cmake version, etc. you are on.
> Next time, try to help people help you [2]
>
> [1] https://cmake.org/pipermail/cmake/2018-October/068477.html
> [2] http://www.catb.org/~esr/faqs/smart-questions.html
>
> Best regards,
>

Osman,

as you are obviously trying to to find a pretty recent Boost version
(1.72.0) that you even built yourself, you could probably try to skip
the Module-mode of the `find_package(Boost ...)` call and instead try to
use the Config-mode directly, like this:
```
find_package(Boost 1.72.0 EXACT CONFIG ...)
```

Thereby, you are skipping CMake's FindBoost module entirely and instead
rely on the BoostConfig.cmake file provided by Boost itself. (Then you
can even skip defining the `Boost_ADDITIONAL_VERSIONS` variable.)
However, if you did not install your Boost version in one of the
default-locations you probably need to provide some HINTs or PATHs to
`find_package`.
See [3] for further information.

Nevertheless, if you have a pretty recent version of CMake with a pretty
recent version of its FindBoost module, then even in Module mode the
FindBoost module will first try to find BoostConfig.cmake.


[3]
https://cmake.org/cmake/help/latest/command/find_package.html#full-signature-and-config-mode


Best regards,
Deniz

PS: This mailing-list will probably be discontinued within the next few
weeks. For future questions you should probably switch to
https://discourse.cmake.org, as that is the successor of the CMake
mailing-lists.
--

Powered by kitware.com/cmake

Kitware offers various services to support the CMake community. For more information on each offering, please visit https://cmake.org/services

Visit other Kitware open-source projects at https://www.kitware.com/platforms

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

This mailing list is deprecated in favor of https://discourse.cmake.org