summaryrefslogtreecommitdiff
path: root/tools/build/v2/tools/fop.jam
blob: c24b8725f9c73c8b0eb0cbf6a3b969149a1086de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#  Copyright (C) 2003-2004 Doug Gregor and Dave Abrahams. Distributed
# under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
#
#  This module defines rules to handle generation of PDF and
#  PostScript files from XSL Formatting Objects via Apache FOP

import generators ;
import common ;
import boostbook ;

generators.register-standard fop.render.pdf : FO : PDF ;
generators.register-standard fop.render.ps : FO : PS ;

# Initializes the fop toolset.
#
rule init ( fop-command ? : java-home ? : java ? )
{
    local has-command = $(.has-command) ;

    if $(fop-command)
    {
        .has-command = true ;
    }

    if $(fop-command) || ! $(has-command)
    {
        fop-command = [ common.get-invocation-command fop : fop : $(fop-command) 
          : [ modules.peek : FOP_DIR ] ] ;
    }
    
    if $(fop-command)
    {
        .FOP_COMMAND = $(fop-command) ;
    }

    if $(java-home) || $(java)
    {
        .FOP_SETUP = ;

    
        # JAVA_HOME is the location that java was installed to.
    
        if $(java-home)
        {
            .FOP_SETUP += [ common.variable-setting-command JAVA_HOME : $(java-home) ] ;
        }

        # JAVACMD is the location that of the java executable, useful for a
        # non-standard java installation, where the executable isn't at
        # $JAVA_HOME/bin/java.
    
        if $(java)
        {
            .FOP_SETUP += [ common.variable-setting-command JAVACMD : $(java) ] ;
        }
    }
}

actions render.pdf
{
    $(.FOP_SETUP) $(.FOP_COMMAND:E=fop) $(>) $(<)
}

actions render.ps
{
    $(.FOP_SETUP) $(.FOP_COMMAND:E=fop) $(>) -ps $(<)
}