The latest version of the trunk branch does not compile with C++ Builder CLang compiler - regression in [r4290].
Some of the listed errors:
C:\Program Files (x86)\Embarcadero\Studio\19.0\\include\boost_1_39\boost/mpl/aux_/logical_op.hpp(145,5): error E1172: unknown type name 'or__rebind'
C:\Program Files (x86)\Embarcadero\Studio\19.0\\include\boost_1_39\boost/mpl/if.hpp(72,5): error E1172: unknown type name 'if__rebind'
C:\Program Files (x86)\Embarcadero\Studio\19.0\\include\boost_1_39\boost/mpl/eval_if.hpp(43,5): error E1172: unknown type name 'eval_if_rebind'
Hi Jogy, I can build both c730-x86 and c730-x64 configurations just fine here.
The errors you list show that you are including the wrong Boost version. The Clang compilers should use Boost 1.55 (system include directories should include CG_64_BOOST_ROOT, which should be set to point to Boost 1.55).
Note that there is a bug in the C++Builder Starter Edition (it omits the definition of CG_64_BOOST_ROOT). See this post in [bugs:#405] "OWLNext build fails with C++Builder Starter Edition". The issue is also mentioned in [feature-requests:#131] "Support for C++Builder 10.2 Tokyo Starter Edition". The latest version of OWLMaker circumvents the issue by defining CG_64_BOOST_ROOT explicitly in the build command (after the call to "rsvars.bat" and before the call to "msbuild"):
Related
Bugs:
#405Feature Requests:
#131Jogy, I've closed this ticket as "wont-fix", since it seems to be a non-issue. If you can confirm a genuine problem, please reopen it.
The poroblem comes from rsvars.bat file - it was setting the CG_BOOST_ROOT variable to point to 1.39 version. When I edited it and changed it to 1.55, now it builds.
I don't remember editiong this file before, so it may be configured this way after installing C++ Builder or the Boost package ...
Hi Jogy, thanks for the feedback. Good that it is a non-issue!
Well, you did mention hacking the Boost path setting in this post in the discussion for [bugs:#405], so I assumed this ticket was related to the same Starter Edition issue:
http://sourceforge.net/p/owlnext/bugs/405/#9d36/bfe2
In summary, circumvent the Starter Edition bug by adding a definition for CG_64_BOOST_ROOT (pointing to Boost 1.55, for use by BCC32C/BCC32X/BCC64), and do not modify the CG_BOOST_ROOT definition (which points to Boost 1.39, for use by BCC32).
BTW. With both Boost path variables correctly in place, and with the latest changes in the C++Builder project files for OWLNext 7 and the extension libraries (now set the system include paths explicitly), I am now able to use the Starter Edition for 64-bit build testing as well, by manually copying the 64-bit toolset (compiler and linker) over from my Tokyo trial backup.
Related
Bugs:
#405Note: If you have changed the system include paths in the IDE to use CG_BOOST_ROOT for the Clang-based compilers (as you mentioned here), you should change the paths back to using CG_64_BOOST_ROOT for the Clang-based compilers.