This project already has fairly well defined include namespacing, so i'm surprised to see non-top-level-include directories being added as include directories (e.g. here:
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../../include/substrait/common> |
).
The above pattern will pollute the global include path, which may cause include conflicts.
Specifically, this example causes a conflict on windows, where io.h is a windows header... which then conflicts with io.h in this repository.
In general, having access to header files from paths not anchored by the include namespacing of a project (#include "substrait/.../...) will make a project prone to errors when being used as a library.