-
Notifications
You must be signed in to change notification settings - Fork 167
Fix required CMake version #340
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
Conversation
|
|
|
It should be used because the library requires C++11, see the Jamfile: Lines 132 to 142 in ce7a835
It doesn't fail without it though because this gets added by a dependency already which is what causes the error in the dependency and Boost.Filesystem. |
This is reflected in CMake here: Lines 78 to 89 in ce7a835
I believe, the dependency that requires it is Boost.Atomic, but that got recently fixed. Do you still have the issue after that fix was applied? |
|
I missed that, sorry.
Do you mean boostorg/atomic#78 ? That means to build Boost.Atomic you (declare to) need CMake 3.8, and as FileSystem requires Atomic it needs CMake 3.8 too. The error here shows because You can also simplify the list to just |
|
The thing is if CMake < 3.8 is used to build Boost.Filesystem, it should fail at Boost.Atomic, as expected. There's nothing in Boost.Filesystem itself that requires 3.8, so it should not be an error to specify 3.5. Projects should not be required to track the max min required CMake version across their dependency tree, it's CMake's job to figure that out. I consider this a CMake issue. Anyway, raising the min version is not really a problem, if it works around the issue. Thanks again. |
With boostorg/atomic#78 it now does. It didn't before and I simply opened PRs in each repo where CMake showed the unknown feature w/o checking if that feature was used by the library itself or a dependency as I wasn't aware it would verify features so late the error shows up in dependents too. With "as FileSystem requires Atomic it needs CMake 3.8 too." I didn't want to say that you need to declare that you need CMake 3.8 as done in this PR but that you effectively do require CMake 3.8 because otherwise configuring Filesystem will fail while configuring the Atomic dependency. But: As you effectively need CMake 3.8 anyway you can replace that long list with |
cxx_std_11requires CMake 3.8