I followed all the steps in the "README" file but when execute "cmake. && make -j3" the following error occurs:
root@s0me1:~/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6# cmake . && make -j3
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
-- Checking for module 'gtkmm-3.0'
-- Found gtkmm-3.0, version 3.22.2
-- Checking for module 'gthread-2.0'
-- Found gthread-2.0, version 2.54.0
-- Checking for module 'openssl'
-- Found openssl, version 1.1.0f
-- Checking for module 'libarchive'
-- Found libarchive, version 3.2.2
-- Configuring done
-- Generating done
-- Build files have been written to: /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6
Scanning dependencies of target grub-customizer
Scanning dependencies of target grubcfg-proxy
[ 12%] Building CXX object CMakeFiles/grubcfg-proxy.dir/src/main/proxy.cpp.o
[ 25%] Building CXX object CMakeFiles/grub-customizer.dir/src/main/client.cpp.o
[ 37%] Building CXX object CMakeFiles/grub-customizer.dir/src/Bootstrap/GtkView.cpp.o
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:0,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from /usr/include/gtkmm-3.0/gtkmm.h:87,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/../View/Gtk/About.hpp:23,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/GtkView.cpp:18:
/usr/include/glibmm-2.4/glibmm/variant.h:2012:24: error: ‘std::index_sequence’ has not been declared
std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h:2012:38: error: expected ‘,’ or ‘...’ before ‘<’ token
std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h: In static member function ‘static Glib::Variant<std::tuple<_Tps ...> > Glib::Variant<std::tuple<_Tps ...> >::create(const std::tuple<_Tps ...>&)’:
/usr/include/glibmm-2.4/glibmm/variant.h:2030:45: error: ‘index_sequence_for’ is not a member of ‘std’
detail::expand_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h:2030:69: error: expected primary-expression before ‘...’ token
detail::expand_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h: At global scope:
/usr/include/glibmm-2.4/glibmm/variant.h:2073:71: error: ‘std::index_sequence’ has not been declared
void assign_tuple(std::vector<VariantBase> &variants, Tuple & t, std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h:2073:85: error: expected ‘,’ or ‘...’ before ‘<’ token
void assign_tuple(std::vector<VariantBase> &variants, Tuple & t, std::index_sequence<Is...>)
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:0,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from /usr/include/gtkmm-3.0/gtkmm.h:87,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/../View/Gtk/About.hpp:23,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/GtkView.cpp:18:
/usr/include/glibmm-2.4/glibmm/variant.h: In member function ‘std::tuple<_Tps ...> Glib::Variant<std::tuple<_Tps ...> >::get() const’:
/usr/include/glibmm-2.4/glibmm/variant.h:2095:45: error: ‘index_sequence_for’ is not a member of ‘std’
detail::assign_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h:2095:69: error: expected primary-expression before ‘...’ token
detail::assign_tuple(variants, data, std::index_sequence_for<Types...>{});
[ 50%] Linking CXX executable grubcfg-proxy
[ 50%] Built target grubcfg-proxy
[ 62%] Building CXX object CMakeFiles/grub-customizer.dir/src/Bootstrap/GtkApplication.cpp.o
[ 75%] Building CXX object CMakeFiles/grub-customizer.dir/src/Bootstrap/FactoryImpl/GlibThread.cpp.o
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:0,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/FactoryImpl/../../Controller/Helper/GLibThread.hpp:29,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/FactoryImpl/GlibThread.cpp:19:
/usr/include/glibmm-2.4/glibmm/variant.h:2012:24: error: ‘std::index_sequence’ has not been declared
std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h:2012:38: error: expected ‘,’ or ‘...’ before ‘<’ token
std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h: In static member function ‘static Glib::Variant<std::tuple<_Tps ...> > Glib::Variant<std::tuple<_Tps ...> >::create(const std::tuple<_Tps ...>&)’:
/usr/include/glibmm-2.4/glibmm/variant.h:2030:45: error: ‘index_sequence_for’ is not a member of ‘std’
detail::expand_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h:2030:69: error: expected primary-expression before ‘...’ token
detail::expand_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h: At global scope:
/usr/include/glibmm-2.4/glibmm/variant.h:2073:71: error: ‘std::index_sequence’ has not been declared
void assign_tuple(std::vector<VariantBase> &variants, Tuple & t, std::index_sequence<Is...>)
/usr/include/glibmm-2.4/glibmm/variant.h:2073:85: error: expected ‘,’ or ‘...’ before ‘<’ token
void assign_tuple(std::vector<VariantBase> &variants, Tuple & t, std::index_sequence<Is...>)
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:0,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/FactoryImpl/../../Controller/Helper/GLibThread.hpp:29,
from /root/Downloads/grub-customizer_5.0.6/grub-customizer-5.0.6/src/Bootstrap/FactoryImpl/GlibThread.cpp:19:
/usr/include/glibmm-2.4/glibmm/variant.h: In member function ‘std::tuple<_Tps ...> Glib::Variant<std::tuple<_Tps ...> >::get() const’:
/usr/include/glibmm-2.4/glibmm/variant.h:2095:45: error: ‘index_sequence_for’ is not a member of ‘std’
detail::assign_tuple(variants, data, std::index_sequence_for<Types...>{});
/usr/include/glibmm-2.4/glibmm/variant.h:2095:69: error: expected primary-expression before ‘...’ token
detail::assign_tuple(variants, data, std::index_sequence_for<Types...>{});
CMakeFiles/grub-customizer.dir/build.make:86: recipe for target 'CMakeFiles/grub-customizer.dir/src/Bootstrap/GtkView.cpp.o' failed
make[2]: *** [CMakeFiles/grub-customizer.dir/src/Bootstrap/GtkView.cpp.o] Error 1
make[2]: ** Esperando que outros processos terminem.
CMakeFiles/grub-customizer.dir/build.make:134: recipe for target 'CMakeFiles/grub-customizer.dir/src/Bootstrap/FactoryImpl/GlibThread.cpp.o' failed
make[2]: *** [CMakeFiles/grub-customizer.dir/src/Bootstrap/FactoryImpl/GlibThread.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/grub-customizer.dir/all' failed
make[1]: *** [CMakeFiles/grub-customizer.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
Seems like Glibmm updated to C++ 14 now...
Grub Customizer forces g++ to use C++ 11 because older versions of g++ used an older standard of C++. C++ 11 is the minimum version required to compile Grub Customizer.
You can fix this by opening the file CMakeLists.txt and replacing "-std=c++11" by "-std=c++14".
... and I have to find a general solution.