This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

1. BuildDj

BuildDj is a project definition format based on JSON that aims to provide an easy to learn, machine readable, human writable project definition format to build source files. It is oriented to support the Freedesktop/GNOME stack (C, C++, Python, Vala, intltool, gtk-doc, .desktop, XDG dirs...)

It is mostly a format definition, the current reference implementation is being done with waf since it's the tool that provides the best balance between ease of deployment and implementations of the features set. However waf is

1.1. Main Goals

1.2. Specification

The format is under heavy development testing at the moment, ideas are more than welcome.

Spec

1.3. Example

Here is an example of the current format draft:

{
        "project":
        {
                "name":    "CC Test",
          "version": "0.0.1",
          "url":     "http://www.codethink.co.uk"
        },
        "requires":
        {
                "gtk+-2.0": 
                {
                        "type":      "package",
                        "version":   "2.14",
                        "mandatory": "True"
                }
        },
        "targets":
        {
                "my_gtk_program":
                {
                        "type":     "program",
                        "tool":     "cc",
                        "input":    ["gtk_program.c"],
                        "packages": ["gtk+-2.0"]
                }
        }
}

2024-10-23 10:58