On 30 November 2017 at 17:15, Rene Rivera <grafikrobot@gmail.com> wrote:On Thu, Nov 30, 2017 at 8:29 AM, Richard Hodges <hodges.r@gmail.com> wrote:On 30 November 2017 at 16:16, Rene Rivera <grafikrobot@gmail.com> wrote:On Thu, Nov 30, 2017 at 6:37 AM, Richard Hodges via Boost <boost@lists.boost.org> wrote:
Have you tried getting bjam to correctly build boost for c++14 on iOS for a
specific version of iOS, as a universal library?I have in the past when I used to do iOS programming for a living.It's a dark art.It is.. But the darkness of it is all Apple's fault.Have you tried to build for emscripten? (internal rules do not work).Yes. Have you tried using the built-in b2 emscripten toolset?Yes. It doesn't work.I have to compile for 'generic linux' and then cheat on all the include paths an compiler flags. It's a nightmare.I just checked.. I don't see a reported bug about that. What doesn't work?Most of the libraries simply refuse to build if you compile with --toolset=emscripten. From memory, bjam/b2 reports errors around ambiguous rule definitions. The error message were cryptic and of course b2/bjam is a dark art in itself with no documentation or examples so I simply did not have time to investigate. In order to get a product out, I compile with --toolset=generic-linux and imbue CCFLAGS and LDFLAGS with all the magic pixie dust that emscripten needs to produce a reasonable static library. Of course I avoid libraries like coroutine etc.For me, it would be easier if boost simply used a Makefile. At least that has a well-known syntax and interface, with obvious and easy-to-find rules. I have always felt that the very presence of bjam/b2 was an impediment to using boost, and in no way useful to end-users, particularly in cross-compiled environments.Perhaps this is why I baulk at the idea of building any tool on top of this house of cards.emscripten: A standards-compliant c++14 to javascript/webassembly transpiler suite - http://kripken.github.io/emscripten-site/ My use case is that I need the same source code to run under Linux, Windows, OSX, iOS, Android and in a web page. It turns out that c++ does all of that efficiently, neatly and compatibly.