Building Wt using ASIO standalone without Boost

Added by Stefan Bn 6 months ago

Hi there,

I finally managed to build Wt 4.0.5 + Boost on MinGw 7.3.0/Win 10 as 64bit Library :-)

Wt 4 Release notes state:

"Wt 4 relies less on Boost, preferring the standard library where possible. If you build Wt with standalone Asio, then the header files don’t include any Boost headers anymore."

Could you please give more detailed advise how to build Wt 4.x without Boost? CMake always complains about not finding boost and thus doesn't generate Makefiles.
Is CMake still the way to go here? Does it need special options to disable boost? Or is it a completely different way to build Wt+Asio without Boost?

Thanks!
Stefan


Replies (2)

RE: Building Wt using ASIO standalone without Boost - Added by Wim Dumon 6 months ago

Hello Stefan,

A little clarification:
  • You cannot build Wt without boost. Wt relies on boost intenally.
  • We aimed to remove references to boost from the API and public header files. This was possible, except for asio, which is still included in a few header files. But we support the use of standalone asio, and in that case, once you compiled Wt (make install), you no longer need the boost header files to use the Wt API in your own applications (which was impossible in Wt 3).

Finding boost can be a pain, because it installs itself in many different ways. Look in CMakeCache.txt for more hints on what worked an what failed, and also in WtFindBoost.txt to get more information on Wt's strategies to find boost. You may need to tune these files a bit on not-so-standard platforms such as mingw.

Wim.

RE: Building Wt using ASIO standalone without Boost - Added by Stefan Bn 6 months ago

Thank you very much Wim!

That clarifies the dependencies and I'm happy to report that building Wt 4.0.5 with MinGW 64bit wasn't that challenging.

The main aspect that might need to be incorporated in Wt's CMake files in order to support 64bit builts was that variable:

CMAKE_CXX_COMPILER_ARCHITECTURE_ID = x64

Without that variable cmake was not able to find the 64bit boost libraries since the file naming scheme is different. After manually adding this variable to CMake the boost libraries where found and I could built Wt.

Stefan.

(1-2/2)