Closed andrewandersonintel closed 1 year ago
Thank you for report @andrewandersonintel ! - have you tried making line SET(CMAKE_CXX_STANDARD 14)
conditional depending on LLVM version? Ie, if LLVM version below ~16 then use C++14 otherwise use C++17? (and if that works I will be happy to accept this as PR)
Also tagging @andriish who might have thoughts on this.
I'll give it a try and open a PR if it works!
Success -- with CMAKE_CXX_STANDARD 17 binder builds successfully against LLVM 16. I opened a PR here https://github.com/RosettaCommons/binder/pull/265
Thank you @andrewandersonintel ! - PR looks good to me and i just merged it. Closing this issue as resolved.
Hello,
When trying to rebuild a binder-based project that had been working fine for many months, I've discovered that it no longer builds. The trigger for the failure was updating LLVM. Looking at the error messages, it seems that binder can't rely on
SET(CMAKE_CXX_STANDARD 14)
any more, since LLVM now relies on a large amount of C++17.I see tens of thousands of lines of error messages, but they're all of this form:
I have tried to override the setting for CMAKE_CXX_STANDARD in my
ExternalProject_add
invocation by using theCMAKE_ARGS
parameter, but since it isSET
and notOPTION
in the binder CMakeLists.txt this has no effect.Does anyone know of a workaround for this / can anyone confirm this issue with LLVM 16+? The only immediate solution I can see is to fork binder and remove the forced C++14 in the CMakeLists.txt but I really don't want to do that!