That didn't work:
ccache /opt/local/bin/clang++ -DCustomRoot_EXPORTS -DR__HAVE_CONFIG -DWITH_TBB -Iinclude -isystem explicit/include -isystem range-v3/include -isystem /opt/local/libexec/root6/include/root -isystem /opt/local/include -pipe -Os -stdlib=libc++ -m64 -pipe -fsigned-char -fno-common -Qunused-arguments -pthread -std=c++1z -stdlib=libc++ -DR__HAVE_CONFIG -O2 -g -DNDEBUG -fPIC -Wall -Weverything -pedantic -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-missing-prototypes -Wno-global-constructors -Wno-padded -Wno-conversion -Wno-double-promotion -Wno-weak-vtables -Wno-exit-time-destructors -Wno-float-equal -Wno-used-but-marked-unused -Wno-undefined-func-template -std=c++17 -Wno-old-style-cast -Wno-unused-macros -Wno-reserved-id-macro -Wno-zero-as-null-pointer-constant -MD -MT src/CMakeFiles/CustomRoot.dir/CustomRootDicts.cxx.o -MF src/CMakeFiles/CustomRoot.dir/CustomRootDicts.cxx.o.d -o src/CMakeFiles/CustomRoot.dir/CustomRootDicts.cxx.o -c src/CustomRootDicts.cxx
In file included from src/CustomRootDicts.cxx:12:
In file included from /opt/local/include/ROOT/RConfig.h:1:
/opt/local/include/ROOT/RConfig.h:1:15: fatal error: 'ROOT/RConfig.h' file not found
#include_next <ROOT/RConfig.h>
^~~~~~~~~~~~~~~~
1 error generated.
I think the original #include "RConfig.h"
finds /opt/local/libexec/root6/include/root/RConfig.h
(contents: #include_next
), which then looks for ROOT/RConfig.h
starting from the next directory in the include search list (/opt/local/include
) and finds /opt/local/include/root/RConfig.h
...which is the same file containing #include_next
. But 2nd time there are no more search paths to try, so it fails.
If I use #include
instead of #include_next
in the wrapper header then my current test case compiles. Not sure if that will break in some other case though...