~bzoltan/kubuntu-packaging/decouple_cmake_plugin

« back to all changes in this revision

Viewing changes to src/shared/qbs/doc/reference/items/transformer.qdoc

  • Committer: Timo Jyrinki
  • Date: 2013-11-15 12:25:23 UTC
  • mfrom: (1.1.28)
  • Revision ID: timo.jyrinki@canonical.com-20131115122523-i2kyamsu4gs2mu1m
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
 
4
** Contact: http://www.qt-project.org/legal
 
5
**
 
6
** This file is part of the Qt Build Suite.
 
7
**
 
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.
 
15
**
 
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.
 
23
**
 
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.
 
27
**
 
28
****************************************************************************/
 
29
/*!
 
30
    \contentspage list-of-items.html
 
31
    \previouspage rule-item.html
 
32
    \page transformer-item.html
 
33
    \ingroup list-of-items
 
34
 
 
35
    \title Transformer Item
 
36
    \brief Creates files, typically from other files.
 
37
 
 
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:
 
40
    \code
 
41
    Transformer {
 
42
        inputs: "raw_input.txt"
 
43
        Artifact {
 
44
            fileName: "processed_input.txt"
 
45
            fileTags: "processed_file"
 
46
        }
 
47
        prepare: {
 
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();
 
54
                file.close()
 
55
                content = content.replace(/\r\n/g, "\n");
 
56
                file = new TextFile(output.fileName, TextFile.WriteOnly);
 
57
                file.truncate();
 
58
                file.write(content);
 
59
                file.close();
 
60
            }
 
61
            return cmd;
 
62
        }
 
63
    }
 
64
    \endcode
 
65
    This example exhibits some interesting features of transformers:
 
66
    \list
 
67
        \li If there is only one input file, the property \c input is available as syntactic sugar
 
68
            for \c inputs[0].
 
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.
 
71
    \endlist
 
72
 
 
73
    A \c Transformer is always attached to a \c Product, possibly indirectly via a \c Module.
 
74
 
 
75
    \section1 Transformer Properties
 
76
 
 
77
    \table
 
78
    \header
 
79
        \li Property
 
80
        \li Type
 
81
        \li Default
 
82
        \li Description
 
83
    \row
 
84
        \li inputs
 
85
        \li stringList
 
86
        \li empty list
 
87
        \li The list of inputs to the transformer.
 
88
    \row
 
89
        \li prepare
 
90
        \li list of Javascript commands
 
91
        \li empty list
 
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.
 
94
    \row
 
95
        \li condition
 
96
        \li bool
 
97
        \li true
 
98
        \li If true, the transformer is enabled, otherwise it does nothing.
 
99
    \row
 
100
        \li explicitlyDependsOn
 
101
        \li stringList
 
102
        \li \c{undefined}
 
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.
 
105
    \endtable
 
106
 
 
107
*/