Page 3 of 3

Re: Orxonox goes C++11

Posted: Sun Jan 31, 2016 12:51 pm
by flozi
Ah, you're right, I've got this on my system:
libtolua++5.1.a

Maybe we should just ask the ISG to install "tolua++5.1" then.


I just tried again with trunk over ssh, reverted and updated, but I still get the same error when running "cmake .." in an empty build folder.
Why does that work for you? I'm using "ssh zifloria@login.ee.ethz.ch". Is this the right address? Are there other ones?

Re: Orxonox goes C++11

Posted: Sun Jan 31, 2016 1:13 pm
by x3n
I connect directly to one of the machines in the student's computer room at ETZ: 'ssh tardis-dxx.ee.ethz.ch' (with xx being the number of the machine, starting at 01). That way I also get access to the /scratch of the machine where I have my checkout of orxonox

Re: Orxonox goes C++11

Posted: Sun Jan 31, 2016 2:24 pm
by muemart
I looked a bit further into tolua++. CEGUI uses it for it's LuaScriptModule, so we try to use the same library as CEGUI. Older versions of CEGUI came with their own tolua++ library, but newer ones use the system package (on Linux at least). So I guess the easiest solutions would indeed be to ask ISG to install it.

For xerces, I found an old discussion here: http://orxonox2.vseth.ethz.ch/phpBB3/vi ... &view=next

Re: Orxonox goes C++11

Posted: Mon Feb 01, 2016 11:30 am
by flozi
x3n wrote:I connect directly to one of the machines in the student's computer room at ETZ: 'ssh tardis-dxx.ee.ethz.ch' (with xx being the number of the machine, starting at 01). That way I also get access to the /scratch of the machine where I have my checkout of orxonox
Thanks, I didn't know we could do that, nice!
muemart wrote:(...) So I guess the easiest solutions would indeed be to ask ISG to install it.(...)
I just wrote them an email, I'll let you know when something happens

Re: Orxonox goes C++11

Posted: Tue Feb 02, 2016 4:51 pm
by flozi
We are a step closer now.
The isg installed tolua++5.1 now!

But I still can't compile, cmake works, but then I get this.
So... what's going on?

Re: Orxonox goes C++11

Posted: Tue Feb 02, 2016 9:41 pm
by x3n
Ok good.

About your error: I still think your errors look weird compared to my build output. Please check if you have any local modifications (especially in cmake scripts) and revert them. Also delete the build directory and start with a clean one. If you still get the same errors, create a directory on /scratch and build from there.

Anway, I managed to build orxonox on tardis. But it's a bit of a pain.

Tardis has one version of CEGUI installed:
- 0.7.6 -> /usr/lib/libCEGUIBase.so (library) and /usr/include/CEGUI (includes)

But:
Tardis has TWO versions of Ogre installed, one is incomplete:
- 1.8.0 -> /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.0 (library), includes are missing
- 1.9.0 -> /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0 (library), /usr/include/OGRE/ (includes)

Now here's the problem: CEGUI 0.7.6 needs Ogre 1.8.*. But Ogre 1.8.0 is incomplete because the headers are missing. Ogre 1.9.0 is complete, but cannot be used because it doesn't work together with CEGUI 0.7.* (and also because Orxonox is not yet ready to be built with Ogre 1.9.*).

Another problem: 1.9.0 is the default version on tardis, so all links (e.g. libOgreMain.so) point to version 1.9.0.

To make it work, I downloaded the headers for Ogre 1.8 myself and set the paths manually in LibraryConfigTardis.cmake to make it use 1.8.0.

Here are my changes in LibraryConfigTardis.cmake:

Code: Select all

-  LIST(APPEND CMAKE_INCLUDE_PATH "/usr/pack/cegui-0.6.2-sd")
-  LIST(APPEND CMAKE_LIBRARY_PATH "/usr/pack/cegui-0.6.2-sd/amd64-debian-linux5.0")
-  LIST(APPEND CMAKE_INCLUDE_PATH "/usr/pack/ogre-1.6.1-sd")
-  LIST(APPEND CMAKE_LIBRARY_PATH "/usr/pack/ogre-1.6.1-sd/amd64-debian-linux5.0")
+  SET(OGRE_INCLUDE_DIR "/scratch/landauf/dependencies/ogre_src_v1-8-1/OgreMain/include/")
+  SET(OGRE_LIBRARY_OPTIMIZED "/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.8.0")
+  SET(OGRE_PLUGIN_Plugin_ParticleFX_OPTIMIZED "/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/Plugin_ParticleFX.so")
+  SET(OGRE_PLUGIN_RenderSystem_GL_OPTIMIZED "/usr/lib/x86_64-linux-gnu/OGRE-1.8.0/RenderSystem_GL.so")
Note that my changes are not strictly correct because I downloaded headers for Ogre 1.8.1 (and used my own build-settings), while tardis uses version 1.8.0. But these issues can be sorted out.
So far it looks promising: Orxonox compiles, the tests run and orxonox starts (at least up to the point where it tries to create a window, which doesn't work via ssh). On the other hand, as long as no one sees it running with graphics, we cannot tell if it really works.

And last but not least: I still think we can (and probably should) compile our own dependencies for tardis.

Re: Orxonox goes C++11

Posted: Tue Feb 02, 2016 10:39 pm
by flozi
Oh wow, that's annoying :(

I can test if everything works next Thursday.

So should we create a repository with all dependencies on tardis? This seems to be the best solution, but quite a bit of work.


btw, I quickly tried your solution via ssh, but instead of downloading 1.8.1, I downloaded 1.8.0 from here.
This didn't work. What are your "own build-settings"? And why did you download 1.8.1 and not 1.8.0?

Re: Orxonox goes C++11

Posted: Wed Feb 03, 2016 8:48 am
by x3n
Initially I wanted to compile Ogre 1.8.1 myself, then I realized that tardis already has 1.8.0 installed. That's why I have 1.8.1 ;)

When you build the ogre sources, it will create a file called 'OgreBuildsettings.h' (or something similar) in the build directory. This file needs to be copied into the headers directory.

We probably don't need to build ALL dependencies for tardis. Maybe only ogre + cegui.

Re: Orxonox goes C++11

Posted: Wed Feb 03, 2016 7:30 pm
by flozi
Could you be a bit more precise on how you did it?

I can't compile ogre, it tells me it couldn't locate FREETYPE.
Assuming I managed to build ogre, where do I have to copy this 'OgreBuildsettings.h' to? To here: ../OgreMain/include/?

Re: Orxonox goes C++11

Posted: Wed Feb 03, 2016 8:29 pm
by x3n
Here's my build command:

Code: Select all

cmake .. -DCMAKE_BUILD_TYPE=Release -DFREETYPE_INCLUDE_DIR=/usr/include/freetype2
I did not actually compile it, so I'm not sure if this include-dir actually makes sense (since freetype2 and freetype are maybe not the same). But that doesn't matter, running cmake is enough to create OgreBuildesettings.h.
Assuming I managed to build ogre, where do I have to copy this 'OgreBuildsettings.h' to? To here: ../OgreMain/include/?
Yes.
Don't worry, the compiler will tell you if the file is missing (when you build orxonox). There's no magic guru knowledge involved in this. Just solving one error after another. ;)

Re: Orxonox goes C++11

Posted: Thu Feb 04, 2016 9:06 am
by flozi
Ok, that did the trick.
And... It worked!!! :beerchug:
(It starts normally, graphics are showing up, etc.)


Apart from the cumbersome process, another problem with this workaround: I run out of disk space while building on my ~/flo-extra-0/ folder.
I had two copies of the ogre source lying around. After deleting those it worked fine. The whole thing now takes 4.4GB.
I don't know how much it took before, but I never run out of space on my extra folder before...

Re: Orxonox goes C++11

Posted: Thu Feb 04, 2016 2:10 pm
by x3n
Well done! :)
cumbersome process
Now that you created a working setup, you can add OgreMain/include/ to a tar.gz package and upload it e.g. here: http://svn.orxonox.net/downloads/ (use HTTPS for SVN and HTTP to give the download url to other people). Students can download this package and use it without problems.
I run out of disk space
You can delete everything in the Ogre directory except for OgreMain/include/. The includes need only 4 MB disk space.

But that's probably not the main reason. On my tardis box, the build-directory allone takes 3 GB. On my windows machine it's actually >5GB!
The build directory is so large because normally we build orxonox in debug mode which gives huge object- and binary-files.
Maybe the build also became larger with GCC 4.9 and C++11?

See http://www.orxonox.net/wiki/Buildsystem for a list of build modes: -DCMAKE_BUILD_TYPE=(Debug|Release|RelWithDebInfo|RelForDevs|MinSizeRel)

For example, MinSizeRel is a release build wich is optimized for small size.
These build modes are defined here (for gcc): cmake/CompilerConfigGCC.cmake (lines 59-64). You can try to tweak these settings locally (e.g. if you need a debug build with smaller size). But please don't commit these changes unless you know what you do ;)

Re: Orxonox goes C++11

Posted: Sat Feb 06, 2016 2:49 pm
by flozi
Alright.
I added the zipped dependencies to svn (http://svn.orxonox.net/downloads/tardisDependencies.zip),
changed the build settings for tardis (http://www.orxonox.net/changeset/11109)
and updated the wiki (http://www.orxonox.net/wiki/LinuxTardis).
This should be fairly easy for our students now.

Cheers!
:beerchug:

Re: Orxonox goes C++11

Posted: Sun Feb 07, 2016 7:21 pm
by x3n
cool! thanks!