Details
-
Improvement
-
Resolution: Fixed
-
Blocker
-
master
-
None
-
MacOS, built-in TBB
Description
When the built-in TBB is used is TBB_INCLUDE_DIRS is set to
${CMAKE_BINARY_DIR}/include
|
To suppress warning the syntax
include_directories(SYSTEM ${TBB_INCLUDE_DIRS})
|
This leads the directory where the ROOT headers are to be marked as "system".
On MacOS, this means that the line
-isystem include
|
is added to the compilation line.
When clang generates dependency (at least with the flag we are using), it does *NOT* include any system header in the list produced by -MF.
In this case this means that NO ROOT headers is included in the .d files. Leading of course to corrupt builds as soon as any of the header that should have been listed is modied,
See for example
ninja -t deps tree/treeplayer/CMakeFiles/TreePlayer.dir/src/TFormLeafInfo.cxx.o
|
tree/treeplayer/CMakeFiles/TreePlayer.dir/src/TFormLeafInfo.cxx.o: #deps 1, deps mtime 1508358059 (VALID)
|
/Users/pcanal/root_working/code/rootcling/tree/treeplayer/src/TFormLeafInfo.cxx
|
|
or
$ ninja -t deps core/imt/CMakeFiles/Imt.dir/src/TTaskGroup.cxx.o
|
core/imt/CMakeFiles/Imt.dir/src/TTaskGroup.cxx.o: #deps 1, deps mtime 1508351306 (VALID)
|
/Users/pcanal/root_working/code/rootcling/core/imt/src/TTaskGroup.cxx
|
Cheers,
Philippe.