{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Qt Creator workspace project definition",
    "description": "A Qt Creator workspace project definition",
    "type": "object",
    "properties": {
        "project.name": {
            "type": "string",
            "description": "The name of the project"
        },
        "files.exclude": {
            "type": "array",
            "items": [
                {
                    "type": "string"
                }
            ],
            "description": "Files to exclude from the project"
        },
        "targets": {
            "type": "array",
            "description": "A list of targets",
            "items": [
                {
                    "type": "object",
                    "properties": {
                        "arguments": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ],
                            "description": "Arguments to pass to the executable"
                        },
                        "executable": {
                            "type": "string",
                            "description": "The executable to run"
                        },
                        "name": {
                            "type": "string",
                            "description": "The name of the target"
                        },
                        "workingDirectory": {
                            "type": "string",
                            "description": "The working directory to run the executable in"
                        }
                    },
                    "required": [
                        "executable",
                        "name"
                    ]
                }
            ]
        },
        "build.configuration": {
            "type": "array",
            "description": "A list of build configurations",
            "items": [
                {
                    "type": "object",
                    "properties": {
                        "steps": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "object",
                                    "properties": {
                                        "arguments": {
                                            "type": "array",
                                            "items": [
                                                {
                                                    "type": "string"
                                                }
                                            ],
                                            "description": "Arguments to pass to the executable"
                                        },
                                        "executable": {
                                            "type": "string",
                                            "description": "The executable to run"
                                        },
                                        "workingDirectory": {
                                            "type": "string",
                                            "description": "The working directory to run the executable in"
                                        }
                                    },
                                    "required": [
                                        "executable"
                                    ]
                                }
                            ],
                            "description": "The steps required for the build"
                        },
                        "name": {
                            "type": "string",
                            "description": "The name of the build configuration"
                        },
                        "buildDirectory": {
                            "type": "string",
                            "description": "The directory to build the project in"
                        }
                    },
                    "required": [
                        "steps",
                        "name"
                    ]
                }
            ]
        }
    }
}
