-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
building auto_index on macOS #4
Comments
What's the output of |
I suspect the reason is that macOS defaults to C++03 and we no longer support it. You'd have to pass |
I think, Boost.Build should at least produce a warning if an explicitly specified target cannot be built with the given set of features ( |
Didn't seem to output a clear warning.
Yes! I believe that fixed it. Continuing testing.
|
I didn't mean "should" as in "I expect it to do so" but rather as "it should probably be enhanced to do so". |
Ah, ok! |
Boost.JSON defines a custom https://github.com/boostorg/json/blob/a07e38be41813d698091e7abaa3bea76dc945c63/build/Jamfile Today we probably want this warning to be unconditional; in our case here we aren't passing |
It will be a widespread issue and will eventually (if not this release, then the next) affect virtually all Boost libraries and tools. We don't want "on macOS" but we probably do want "on toolset Maybe we could do that in the Boost Jamroot instead, somehow. I'm not sure how. @grafikrobot or @grisumbras might know. |
But OTOH, if the user doesn't specify any |
I'm away on holiday at present, but I will look at this at some point... |
I suspect that someone with access to the problem toolset will need to investigate some more.... using @pdimov 's command line, if I explicitly build with cxxstd=03 then I see copious build errors of the form:
The dependency is auto_index->program options->any->type index-> <type_traits> I don't see a dependency to Atomic, but that's not to say it's not there. In any case I see lots of breakages like this down the road... Ideally, what we need from Boost.Build is a way to say "this needs at least C++11" which is not the same as making |
The dependency is auto_index -> filesystem -> atomic. Line 27 in 55bce3c
https://github.com/boostorg/filesystem/blob/fe07038a2d245178630eb38d255b555d6d14966e/build/Jamfile.v2#L92 We do have a way to say "this needs at least C++11" https://github.com/boostorg/atomic/blob/ba4dc4c595a2b0e3913a9e3fecb2c0ad791eb0c9/build/Jamfile.v2#L46-L48 but the problem is that the result is no in C++03 mode, which leads to the issue described here, where silently nothing gets built. |
Yes I know, I wrote that rule for Boost.Config, what I meant to say was a way for the std level to be set to at least C++11 if nothing is otherwise specified on the b2 command line. |
That's not easy because we don't in general know the default level when nothing is specified, but yes, it's doable in principle. In practice as I said above, it would probably be enough to make the default 11 (or better yet 14) specifically for clang-darwin. |
(In theory this is |
Does it support I don't think we should check |
That's why the Predef checks where invented. https://www.boost.org/doc/libs/1_83_0/libs/predef/doc/index.html#_using_with_boost_build |
That mechanism only supports macros defined by Boost.Predef, and to my knowledge Boost.Predef doesn't have a C++ version macro, does it? It doesn't look conceptually different from what Boost.Config provides. |
https://www.boost.org/doc/libs/1_83_0/libs/predef/doc/index.html#_boost_lang_stdcpp AFAIK Config doesn't provide for a way to test the C++ version. PS. Config does provide testing specific C++ features. Which if that's what you want you should definitely use it. |
Even if we wanted to depend on Predef everywhere, It would be much better if we could just set |
It provides
Do they? I think they only know enough to support |
Yes, you're right, they don't currently "know" but it will be fairly trivial to make them know because determining |
In release-tools/build_docs, I am testing building the boost documentation for all libraries on Windows, Linux, MacOS.
The following libraries have a dependency on auto_index: math multiprecision pool type_traits vmd
I might be doing something wrong, but it seems that auto_index is not building on MacOS.
The build completes without error and generates
quickbook
, but doesn't create the required filebuild/dist/bin/auto_index
@pdimov may have been working on adding tests, the most recent commit: "attempt to get test dependencies to work".
The text was updated successfully, but these errors were encountered: