juzzlin / Heimer

Heimer is a simple cross-platform mind map, diagram, and note-taking tool written in Qt.
GNU General Public License v3.0
887 stars 112 forks source link

Build failure with gcc13 Wchanges-meaning #242

Closed jubalh closed 1 year ago

jubalh commented 1 year ago
/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include -I/home/abuild/rpmbuild/BUILD/Heimer-4.0.0/build -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtSvg -isystem /usr/include/qt5/QtXml -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -Wall -Wextra -Wpedantic -O2 -g -DNDEBUG -fPIC -std=gnu++17 -MD -MT src/CMakeFiles/Heimer.dir/core/graph.cpp.o -MF CMakeFiles/Heimer.dir/core/graph.cpp.o.d -o CMakeFiles/Heimer.dir/core/graph.cpp.o -c /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/core/graph.cpp
[   52s] In file included from /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include/range/v3/view/adaptor.hpp:16,
[   52s]                  from /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include/range/v3/view.hpp:17,
[   52s]                  from /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/core/graph.cpp:22:
[   52s] /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include/meta/meta.hpp:3190:19: error: declaration of 'template<class Fn> template<class State, class A> using meta::detail::partition_<Fn>::invoke = meta::_t<meta::detail::partition_<Fn>::impl<State, A> >' changes meaning of 'invoke' [-Wchanges-meaning]
[   52s]  3190 |             using invoke = _t<impl<State, A>>;
[   52s]       |                   ^~~~~~
[   52s] /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include/meta/meta.hpp:3185:34: note: used here to mean 'using meta::invoke = typename Fn::invoke<A>'
[   52s]  3185 |                 using type = if_<invoke<Fn, A>, pair<list<Yes..., A>, list<No...>>,
[   52s]       |                                  ^~~~~~~~~~~~~
[   52s] /home/abuild/rpmbuild/BUILD/Heimer-4.0.0/src/contrib/range-v3-0.11.0/include/meta/meta.hpp:541:11: note: declared here
[   52s]   541 |     using invoke = typename Fn::template invoke<Args...>;
[   52s]       |           ^~~~~~
[   52s] make[2]: *** [src/CMakeFiles/Heimer.dir/build.make:422: src/CMakeFiles/Heimer.dir/core/graph.cpp.o] Error 1

Full log

juzzlin commented 1 year ago

Thanks for reporting!

I now think that I might remove that range-v3 lib as it's causing many portability issues and the use is quite limited.

juzzlin commented 1 year ago

Please try commit d6b60cb5878bc2f49ba3aaad846e626ab0ba2ef6

jubalh commented 1 year ago

Thank you for resolving this so quickly! I took d6b60c and 5b39a2 as a patch in the openSUSE package. Builds and works fine!