Skip to content

[FR] package-wide include directory #71

Description

@DanAlbert

Some packages (ffmpeg, openssl) don't split up their headers by library and instead have one common include directory for all of their libraries. For these cases it would be nice to use a package-wide include directory rather than duplicating the headers into every module.

Activity

  1. alexcohn commented on Feb 26, 2020

    @alexcohn

    This is not critical; e.g. in ffmpeg, all consumers essentially link libavutil. Therefore, we can put the headers under libavutil module.

    There is another duplication problem with ffmpeg: currently, I have separate include directories for each ABI. It is not clear whether I can use one major include directory and only store ABI-dependent headers (very few) under prefab/modules/libavutil/libs/anroid.x86 etc. ?

  2. DanAlbert commented on Feb 26, 2020

    @DanAlbert
    ContributorAuthor

    /**
    * The path to the headers on disk.
    *
    * This is the path to the platform-specific include path if it exists.
    * Otherwise this is the path to the module's include path.
    */
    val includePath: Path =
    directory.resolve("include").takeIf { it.toFile().exists() }
    ?: module.includePath

    Platform specific headers override module level headers rather than exposing two include directories. Going to fork off two more bugs for that: a schema change for supporting that, and a doc bug to clarify that behavior somewhere other than buried in the source :)

  3. DanAlbert commented on Feb 26, 2020

    @DanAlbert
    ContributorAuthor

    Filed #75 and #76

  4. added this to the 2.0 milestone on Jun 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrequires schema changeAn issue that requires a schema change to fix.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions