Hello,
I am trying to compile ROOT 6.02.03 via cmake and confguring the various paths to match my system (debian) - using these flags:
...
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_INCLUDEDIR=include/root \
-DCMAKE_INSTALL_LIBDIR=lib/root \
-DCMAKE_INSTALL_BINDIR=bin \
-DCMAKE_INSTALL_CMAKEDIR=lib/root/cmake \
-DCMAKE_INSTALL_SYSCONFDIR=/etc/root \
-DCMAKE_INSTALL_MANDIR=share/man \
-DCMAKE_INSTALL_DOCDIR=share/doc/root-system6 \
-DCMAKE_INSTALL_ICONDIR=share/icons/root \
-DCMAKE_INSTALL_ACLOCALDIR=share/aclocal \
-DCMAKE_INSTALL_DATAROOTDIR=share \
-DCMAKE_INSTALL_DATADIR=share/root \
-DCMAKE_INSTALL_FONTDIR=share/fonts/truetype/root \
-DCMAKE_INSTALL_ELISPDIR=share/emacs/site-lisp \
-DCMAKE_INSTALL_MACRODIR=share/root/macros \
-DCMAKE_INSTALL_TESTDIR=share/doc/root-system6/test \
-DCMAKE_INSTALL_TUTDIR=share/doc/root-system6/tutorials \
...
The compilation passes OK, but when trying to run ROOT, I end up with these error messages:
LoadROOTSplashscreenPixmap, failed to load a splashscreen image
LoadROOTSplashscreenPixmap, failed to load a splashscreen image
PopupLogo, failed to create a background pixmap
ERROR in cling::CIFactory::createCI():
resource directory /usr/lib/etc/cling/lib/clang/3.6.0 not found!
error: unable to read PCH file /usr/lib/etc/allDict.cxx.pch: 'No such file or directory'
fatal error: malformed or corrupted AST file: 'Unable to load module "/usr/lib/etc/allDict.cxx.pch": module file not found'
input_line_3:1:45: error: no type named 'Interpreter' in namespace 'cling'
namespace cling {namespace runtime { cling::Interpreter *gCling=(cling::Interpreter*)20689056;} }
~~~~~~~^
input_line_3:1:73: error: no member named 'Interpreter' in namespace 'cling'
namespace cling {namespace runtime { cling::Interpreter *gCling=(cling::Interpreter*)20689056;} }
~~~~~~~^
input_line_3:1:85: error: expected expression
namespace cling {namespace runtime { cling::Interpreter *gCling=(cling::Interpreter*)20689056;} }
^
input_line_4:1:10: fatal error: 'Rtypes.h' file not found
#include "Rtypes.h"
^
*** Break *** segmentation violation
Error in <TUnixSystem::StackTrace> script /usr/lib/etc/gdb-backtrace.sh is missing
The paths seems to be somewhat messed up at runtime (the splash image should be searched for in the ICONSDIR /usr/share/icons/root, not in /usr/share/root/icons, and the cling and *.pch files should be searched for in the SYSCONFDIR /etc/root, instead of in /usr/lib/etc). The cling errors actually appears when already redefining the first three paths: PREFIX, LIBDIR and INCLUDEDIR paths. If none of the paths is redefined, ROOT6 compiled via cmake works fine. However, trying the similar directory structure when compiling ROOT the old way via configure, it works OK as well. So the problem is cmake specific.
Is it a bug, or is it a current incompleness of the ROOT cmake build system ? (I know there is the comment that cmake was tested on SLC, Mac and Windows only. However, I expected this concerns the dependencies rather then the place where ROOT is installed).
Thanks,
Pavel