I have created two ebuilds for VCMI that will let Gentoo users play the game. The first ebuild downloads and compiles the game engine (v0.90), and the second ebuild downloads and extracts core.zip, and indicates to the user how to get the game running. I have also created a patch for the problem I signaled here. I will soon add a third ebuild for users that want to compile the game from source directly. I hope it helps bring more HOMM3 lovers to VCMI.
As the attachment system did not seem to work last time, I have posted them on my github, but feel free to use them. I will let Gentoo admins integrate them into the official repositories as soon as possible.
To the devs: guys, you are doing a terrific job, keep up the good work
I’ve tried it yesterday (on amd64 arch) and it fails to compile:
CXX libvcmi_la-CCompressedStream.lo
CXX libvcmi_la-CBinaryReader.lo
CXX libvcmi_la-CFileInfo.lo
CXX libvcmi_la-CFileInputStream.lo
CXX libvcmi_la-CFilesystemLoader.lo
CXX libvcmi_la-CLodArchiveLoader.lo
CXX libvcmi_la-CMemoryStream.lo
CXX libvcmi_la-CResourceLoader.lo
CXX libvcmi_la-BattleAction.lo
In file included from CCreatureSet.h:6:0,
from BattleState.h:6,
from BattleAction.cpp:4:
CArtHandler.h:201:152: error: default argument for parameter of type ‘std::shared_ptr’ has type 'long int’
make[2]: *** [libvcmi_la-BattleAction.lo] Error 1
make[2]: *** Waiting for unfinished jobs…
make[2]: Leaving directory /var/tmp/portage/games-strategy/vcmi-0.90/work/vcmi-0.90/lib' make[1]: *** [all] Error 2 make[1]: Leaving directory/var/tmp/portage/games-strategy/vcmi-0.90/work/vcmi-0.90/lib’
make: *** [all-recursive] Error 1
Hey orbitgray,
Good to see some fellow Gentoo users!
If you could post the result of emerge --info ‘=games-strategy/vcmi-0.90’, that would help me a lot (because it does compile fine with me).
Thanks for pointing out the Manifest, I just updated the Manifest on github, feel free to take the new version.
orbitgray: you are using GCC 4.5.4 but it does not support shared pointers.
Quick solution, switch to a more recent version of GCC. GCC 4.6.3 works fine, you can emerge it by running “emerge =sys-devel/gcc-4.6.3” then tell Gentoo to use this compiler by running gcc-config.
Long solution: patch the source code to make use of boost shared pointers instead of shared_ptr .
Hope this helps
EDIT:
Actually, my initial assumption that GCC 4.5.4 does not support shared pointers was wrong. Only some specific syntax did not compile.