Skip to content

Don't assign anything but the top-level include directory to target include directories #116

@mortbopet

Description

@mortbopet

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions