Meta file

Each Birch project contains a META.json file providing a name, version and description of the project, as well as a manifest of its files and dependencies. The file may contain the following keys.

  • name : The name of the project (as a string).

  • version : The version of the project (as a string).

  • description : A one-sentence description of the project (as a string).

  • manifest : An object containing the following keys, listing the files to be included in the project.

    • source : A list of source files (as strings) to be compiled. These typically have a .bi file extension. If C/C++ sources are included, they may have .c or .cpp file extensions.

    • header : A list of header files (as strings) to be installed. This is typically only used if C/C++ sources are included, in which case these files are likely to have .h or .hpp file extensions.

    • data : A list of data files (as strings) to be installed. These are typically input files provided by the project.

    • other : A list of other files (as strings) to be distributed but not installed. These are typically meta files, such as README.md, LICENSE, and META.json itself.

  • require : An object containing the following keys, describing the dependencies of the project. Their presence is checked during the build of the project.

    • package : A list of other Birch packages (as strings).

    • header : A list of external C/C++ header files (as strings).

    • library : A list of external libraries (as strings).

    • program : A list of external programs (as strings).