Project Skybolt Client Development

Gondos

Member
Joined
Apr 18, 2022
Messages
24
Reaction score
33
Points
13
Location
On my chair
@Gondos I pushed some updates:
  • updates to the Skybolt v1.2 branch to fix which fix the FFT ocean compilation errors, as well as some bug fixes
  • updates to OrbiterSkyboltClient master branch to build with conan, as well as some bug fixes. Build instructions are in the README.md.
Thanks for the update, but still no luck with the conan build. Got lots of undefined references as if OpenSceneGraph was not linked against correctly :
Code:
...
/usr/bin/ld : /home/gondos/.conan/data/openscenegraph-mr/3.7.0/user/stable/package/594dd9752652a704a9a2e9ce09d380e534a007f3/lib/libosgViewer.a(View.cpp.o) : dans la fonction « osg::ref_ptr<osg::TextureRectangle>::operator->() const » :
View.cpp:(.text._ZNK3osg7ref_ptrINS_16TextureRectangleEEptEv[_ZNK3osg7ref_ptrINS_16TextureRectangleEEptEv]+0x5a) : référence indéfinie vers « typeinfo for osg::TextureRectangle »
/usr/bin/ld : /home/gondos/.conan/data/openscenegraph-mr/3.7.0/user/stable/package/594dd9752652a704a9a2e9ce09d380e534a007f3/lib/libosgViewer.a(View.cpp.o) : dans la fonction « osg::ref_ptr<osg::Stencil>::operator->() const » :
View.cpp:(.text._ZNK3osg7ref_ptrINS_7StencilEEptEv[_ZNK3osg7ref_ptrINS_7StencilEEptEv]+0x5a) : référence indéfinie vers « typeinfo for osg::Stencil »
/usr/bin/ld : /home/gondos/.conan/data/openscenegraph-mr/3.7.0/user/stable/package/594dd9752652a704a9a2e9ce09d380e534a007f3/lib/libosgViewer.a(AcrossAllScreens.cpp.o) : dans la fonction « osgViewer::AcrossAllScreens::configure(osgViewer::View&) const » :
AcrossAllScreens.cpp:(.text+0x588) : référence indéfinie vers « osgGA::GUIEventAdapter::setWindowRectangle(int, int, int, int, bool) »
/usr/bin/ld : /home/gondos/.conan/data/openscenegraph-mr/3.7.0/user/stable/package/594dd9752652a704a9a2e9ce09d380e534a007f3/lib/libosgViewer.a(PanoramicSphericalDisplay.cpp.o) : dans la fonction « osgViewer::PanoramicSphericalDisplay::configure(osgViewer::View&) const » :
PanoramicSphericalDisplay.cpp:(.text+0x190f) : référence indéfinie vers « osg::TextureRectangle::TextureRectangle() »
/usr/bin/ld : PanoramicSphericalDisplay.cpp:(.text+0x1c75) : référence indéfinie vers « osg::TexMat::TexMat() »
/usr/bin/ld : /home/gondos/.conan/data/openscenegraph-mr/3.7.0/user/stable/package/594dd9752652a704a9a2e9ce09d380e534a007f3/lib/libosgViewer.a(SphericalDisplay.cpp.o) : dans la fonction « osgViewer::SphericalDisplay::configure(osgViewer::View&) const » :
SphericalDisplay.cpp:(.text+0x1509) : référence indéfinie vers « osg::TextureCubeMap::TextureCubeMap() »
collect2: error: ld returned 1 exit status
make[2]: *** [src/Skybolt/SkyboltVisTests/CMakeFiles/SkyboltVisTests.dir/build.make:355 : bin/SkyboltVisTests] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:782 : src/Skybolt/SkyboltVisTests/CMakeFiles/SkyboltVisTests.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
[ 89%] Linking CXX static library ../../../lib/libSkyboltEngine.a
[ 89%] Built target SkyboltEngine
make: *** [Makefile:141 : all] Erreur 2
skybolt/1.3.0: 
skybolt/1.3.0: ERROR: Package 'f1b4c9ed19e5cea8bc790c6844e7cd55d127719f' build failed
skybolt/1.3.0: WARN: Build folder /home/gondos/.conan/data/skybolt/1.3.0/_/_/build/f1b4c9ed19e5cea8bc790c6844e7cd55d127719f
ERROR: skybolt/1.3.0: Error in build() method, line 63
        cmake.build()
        ConanException: Error 2 while executing cmake --build '/home/gondos/.conan/data/skybolt/1.3.0/_/_/build/f1b4c9ed19e5cea8bc790c6844e7cd55d127719f' '--' '-j12'
The engine compiled with a custom makefile and this one patch though :
Code:
diff --git a/src/Skybolt/SkyboltCommon/File/OsDirectories.cpp b/src/Skybolt/SkyboltCommon/File/OsDirectories.cpp
index b463d33..264972c 100644
--- a/src/Skybolt/SkyboltCommon/File/OsDirectories.cpp
+++ b/src/Skybolt/SkyboltCommon/File/OsDirectories.cpp
@@ -15,7 +15,7 @@ namespace file {
 
 Path getHomeDirectory()
 {
-#ifdef unix
+#if defined(unix) || defined(__linux__)
        return getenv("HOME");
 #elif defined(WIN32)
        const char* homeDrive = std::getenv("HOMEDRIVE");
@@ -28,7 +28,7 @@ Path getHomeDirectory()
 
 Path getAppUserDataDirectory(const std::string& applicationName)
 {
-#ifdef unix
+#if defined(unix) || defined(__linux__)
        return getHomeDirectory()
                .append(applicationName); // TODO: where should this go on Unix?
 #elif defined(WIN32)
I'm updating my linux branch to use cmake again, when I'm done I'll try again with your latest client version.
 

MattR

Member
Joined
Aug 5, 2021
Messages
24
Reaction score
67
Points
13
Location
Melbourne
Thanks for the update, but still no luck with the conan build. Got lots of undefined references as if OpenSceneGraph was not linked against correctly :
I had the same issue linking to the static OSG libraries on linux. I'll need to investigate further, but a workaround is to configure conan to build OSG as a shared library:
Code:
conan install ${workspace} -o openscenegraph-mr:shared=True --build=missing
 

BHawthorne

Simpit Builder
Donator
Joined
Mar 15, 2008
Messages
324
Reaction score
3
Points
18
Looks great. Excited to see how this develops. Any possibility for multi-display external camera rendering?
 

Gondos

Member
Joined
Apr 18, 2022
Messages
24
Reaction score
33
Points
13
Location
On my chair
I had the same issue linking to the static OSG libraries on linux. I'll need to investigate further, but a workaround is to configure conan to build OSG as a shared library:
Code:
conan install ${workspace} -o openscenegraph-mr:shared=True --build=missing
Still no luck, I tried building it inside a fresh debian11 docker image but it still fails during the link.
Maybe it's a distro issue? Debian is not that bleeding edge... What kind of linux environment are you using?
 

MattR

Member
Joined
Aug 5, 2021
Messages
24
Reaction score
67
Points
13
Location
Melbourne
Still no luck, I tried building it inside a fresh debian11 docker image but it still fails during the link.
Maybe it's a distro issue? Debian is not that bleeding edge... What kind of linux environment are you using?
I run the skybolt CI build on ubuntu. In case it helps, here's the build script and ubuntu build log.
 
Top