cmake -DMARBLE_INCLUDE_DIR broken?
Gaetan Bisson
bisson at archlinux.org
Wed Sep 23 17:58:43 PDT 2015
Hi,
I've just built and installed today's git snapshot of our marble branch.
Now I'm trying to build today's git snapshot of subsurface against it.
However, invoking cmake as:
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DMARBLE_INCLUDE_DIR='/usr/include/subsurface' \
-DUSE_LIBGIT23_API=1 \
.
Gives me:
[ 80%] Building CXX object CMakeFiles/subsurface_interface.dir/qt-ui/globe.cpp.o
In file included from /build/subsurface-git/src/subsurface/qt-ui/globe.cpp:1:0:
/build/subsurface-git/src/subsurface/qt-ui/globe.h:7:33: fatal error: marble/MarbleWidget.h: No such file or directory
compilation terminated.
CMakeFiles/subsurface_interface.dir/build.make:230: recipe for target 'CMakeFiles/subsurface_interface.dir/qt-ui/globe.cpp.o' failed
make[2]: *** [CMakeFiles/subsurface_interface.dir/qt-ui/globe.cpp.o] Error 1
But the file /usr/include/subsurface/marble/MarbleWidget.h is actually
there, so it seems the -DMARBLE_INCLUDE_DIR option does not get passed
on to whatever compiles globe.cpp.
Hum. And when I replace:
#include <marble/...
by
#include <subsurface/marble/...
in every file under qt-ui, linking fails with:
[100%] Linking CXX executable subsurface
libsubsurface_interface.a(subsurface_interface_automoc.cpp.o): In function `GlobeGPS::qt_metacall(QMetaObject::Call, int, void**)':
/build/subsurface-git/src/subsurface/moc_globe.cpp:161: undefined reference to `Marble::MarbleWidget::qt_metacall(QMetaObject::Call, int, void**)'
libsubsurface_interface.a(subsurface_interface_automoc.cpp.o): In function `GlobeGPS::qt_metacast(char const*)':
/build/subsurface-git/src/subsurface/moc_globe.cpp:156: undefined reference to `Marble::MarbleWidget::qt_metacast(char const*)'
libsubsurface_interface.a(subsurface_interface_automoc.cpp.o): In function `GlobeGPS::~GlobeGPS()':
/build/subsurface-git/src/subsurface/qt-ui/globe.h:20: undefined reference to `Marble::MarbleWidget::~MarbleWidget()'
libsubsurface_interface.a(subsurface_interface_automoc.cpp.o): In function `GlobeGPS::~GlobeGPS()':
/build/subsurface-git/src/subsurface/qt-ui/globe.h:20: undefined reference to `Marble::MarbleWidget::~MarbleWidget()'
libsubsurface_interface.a(subsurface_interface_automoc.cpp.o):(.data.rel.ro._ZTI8GlobeGPS[_ZTI8GlobeGPS]+0x10): undefined reference to `typeinfo for Marble::MarbleWidget'
...
Any help is welcome.
--
Gaetan
More information about the subsurface
mailing list