1
/****************************************************************************
3
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
6
** This file is part of the Qt Build Suite.
8
** Commercial License Usage
9
** Licensees holding valid commercial Qt licenses may use this file in
10
** accordance with the commercial license agreement provided with the
11
** Software or, alternatively, in accordance with the terms contained in
12
** a written agreement between you and Digia. For licensing terms and
13
** conditions see http://qt.digia.com/licensing. For further information
14
** use the contact form at http://qt.digia.com/contact-us.
16
** GNU Lesser General Public License Usage
17
** Alternatively, this file may be used under the terms of the GNU Lesser
18
** General Public License version 2.1 as published by the Free Software
19
** Foundation and appearing in the file LICENSE.LGPL included in the
20
** packaging of this file. Please review the following information to
21
** ensure the GNU Lesser General Public License version 2.1 requirements
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
** In addition, as a special exception, Digia gives you certain additional
25
** rights. These rights are described in the Digia Qt LGPL Exception
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
****************************************************************************/
30
\contentspage list-of-items.html
31
\previouspage rule-item.html
32
\page transformer-item.html
33
\ingroup list-of-items
35
\title Transformer Item
36
\brief Creates files, typically from other files.
38
A \e transformer takes zero or more inputs and produces one or more output artifacts
39
from them. The following transformer creates one output file from one input file:
42
inputs: "raw_input.txt"
44
fileName: "processed_input.txt"
45
fileTags: "processed_file"
48
var cmd = new JavaScriptCommand();
49
cmd.description = "Processing '" + input.fileName + "'";
50
cmd.highlight = "codegen";
51
cmd.sourceCode = function() {
52
var file = new TextFile(input.fileName);
53
var content = file.readAll();
55
content = content.replace(/\r\n/g, "\n");
56
file = new TextFile(output.fileName, TextFile.WriteOnly);
65
This example exhibits some interesting features of transformers:
67
\li If there is only one input file, the property \c input is available as syntactic sugar
69
\li The filenames of the output artifacts are available as \c outputs. If there is only one
70
of these, it can be referred to it as \c output.
73
A \c Transformer is always attached to a \c Product, possibly indirectly via a \c Module.
75
\section1 Transformer Properties
87
\li The list of inputs to the transformer.
90
\li list of Javascript commands
92
\li The commands that the transformer runs. These typically read from the input files and
93
write to the output files in some way.
98
\li If true, the transformer is enabled, otherwise it does nothing.
100
\li explicitlyDependsOn
103
\li A list of file tags. All output artifacts of this transformer will have a dependency
104
to all artifacts with the given file tags.