Builing ROOT with cmake

In the past I used the configure script to build ROOT as follows:

./configure --prefix=/foo/bar --all --enable-cxx14
make -j8
make install

Now that ROOT has switched to cmake, I tried to build with

cmake -D all:BOOL=ON -D cxx14:BOOL=ON ../root-6.08.06
cmake --build . -- -j8
cmake -DCMAKE_INSTALL_PREFIX=/tmp/root -P cmake_install.cmake
cmake --build . --target install

But when I run the second command (cmake --build .), I get errors about R.

[ 54%] Generating G__RInterface.cxx, ../../lib/libRInterface_rdict.pcm, ../../lib/libRInterface.rootmap
In file included from input_line_12:6:
In file included from /msu/data/t3work9/ivanp/build-gcc-6.3.0/build-root-6.08.06/include/TRInterface.h:16:
In file included from /msu/data/t3work9/ivanp/build-gcc-6.3.0/build-root-6.08.06/include/TRObject.h:15:
/msu/data/t3work9/ivanp/build-gcc-6.3.0/build-root-6.08.06/include/RExports.h:68:9: fatal error: 'RcppCommon.h' file
      not found
#include<RcppCommon.h>
        ^
Error: ../../bin/rootcling: compilation failure (/msu/data/t3work9/ivanp/build-gcc-6.3.0/build-root-6.08.06/lib/libRInterfacec7a1118d06_dictUmbrella.h)
gmake[2]: *** [bindings/r/G__RInterface.cxx] Error 1
gmake[1]: *** [bindings/r/CMakeFiles/G__RInterface.dir/all] Error 2
gmake: *** [all] Error 2

I don’t have R installed and I’m not intending to use it. Is there are way to set up the Makefile to build everything that can be built with cmake, like configure --all used to do?

If I’m not mistaken, -Dall=On should just try to turn everything on - and then disable the package if the headers cannot be found. So this seems to be a bug, maybe @mato can help?

Until then (he is traveling) you should be able to turn everything on and then turn R off: -Dall=On -Dr=Off. Does that help?

Axel

1 Like

The suggestion of @Axel should work.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.