xref: /trunk/main/solenv/ant/idl.xml (revision 8f71f2da)
141f03cd9SDamjan Jovanovic<?xml version="1.0" encoding="UTF-8"?>
241f03cd9SDamjan Jovanovic<!--***********************************************************
341f03cd9SDamjan Jovanovic *
441f03cd9SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one
541f03cd9SDamjan Jovanovic * or more contributor license agreements.  See the NOTICE file
641f03cd9SDamjan Jovanovic * distributed with this work for additional information
741f03cd9SDamjan Jovanovic * regarding copyright ownership.  The ASF licenses this file
841f03cd9SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the
941f03cd9SDamjan Jovanovic * "License"); you may not use this file except in compliance
1041f03cd9SDamjan Jovanovic * with the License.  You may obtain a copy of the License at
1141f03cd9SDamjan Jovanovic *
1241f03cd9SDamjan Jovanovic *   http://www.apache.org/licenses/LICENSE-2.0
1341f03cd9SDamjan Jovanovic *
1441f03cd9SDamjan Jovanovic * Unless required by applicable law or agreed to in writing,
1541f03cd9SDamjan Jovanovic * software distributed under the License is distributed on an
1641f03cd9SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1741f03cd9SDamjan Jovanovic * KIND, either express or implied.  See the License for the
1841f03cd9SDamjan Jovanovic * specific language governing permissions and limitations
1941f03cd9SDamjan Jovanovic * under the License.
2041f03cd9SDamjan Jovanovic *
2141f03cd9SDamjan Jovanovic ***********************************************************-->
2241f03cd9SDamjan Jovanovic
2341f03cd9SDamjan Jovanovic
2441f03cd9SDamjan Jovanovic<project name="idl" xmlns:if="ant:if" xmlns:unless="ant:unless">
2541f03cd9SDamjan Jovanovic
2641f03cd9SDamjan Jovanovic    <dirname property="idl.basedir" file="${ant.file.idl}"/>
2741f03cd9SDamjan Jovanovic
2841f03cd9SDamjan Jovanovic    <!-- global properties -->
2941f03cd9SDamjan Jovanovic    <property file="${idl.basedir}/../../ant.properties"/>
3041f03cd9SDamjan Jovanovic
3141f03cd9SDamjan Jovanovic
3241f03cd9SDamjan Jovanovic
3341f03cd9SDamjan Jovanovic    <property name="idl.build.dir" location="${build.base.dir}/idl"/>
3441f03cd9SDamjan Jovanovic    <property name="idl.urd.build.dir" location="${idl.build.dir}/urd"/>
3541f03cd9SDamjan Jovanovic    <property name="idl.rdb.build.dir" location="${idl.build.dir}/rdb"/>
3641f03cd9SDamjan Jovanovic    <property name="idl.classes.build.dir" location="${idl.build.dir}/classes"/>
3741f03cd9SDamjan Jovanovic    <property name="idl.javamaker.flag" location="${idl.build.dir}/idl.javamaker.flag"/>
3841f03cd9SDamjan Jovanovic
39a622bb93SDamjan Jovanovic    <target name="idl">
40a622bb93SDamjan Jovanovic        <check-idl/>
41a622bb93SDamjan Jovanovic        <build-idl unless:set="idl.uptodate"/>
42a622bb93SDamjan Jovanovic    </target>
4341f03cd9SDamjan Jovanovic
44*8f71f2daSDamjan Jovanovic    <target name="unoprivateapi-cppumaker">
45*8f71f2daSDamjan Jovanovic        <property name="idl.cppumaker.flag" location="${unoprivateapi.outdir}/idl.cppumaker.flag"/>
46*8f71f2daSDamjan Jovanovic        <check-idl-cppumaker/>
47*8f71f2daSDamjan Jovanovic        <build-idl-cppumaker unless:set="idl.cppumaker.uptodate"/>
48*8f71f2daSDamjan Jovanovic    </target>
49*8f71f2daSDamjan Jovanovic
50a622bb93SDamjan Jovanovic    <macrodef name="check-idl">
51a622bb93SDamjan Jovanovic        <sequential>
52a622bb93SDamjan Jovanovic            <local name="idl.files.exist"/>
53a622bb93SDamjan Jovanovic            <condition property="idl.files.exist">
54a622bb93SDamjan Jovanovic                <resourcecount refid="idl.files" when="greater" count="0"/>
55a622bb93SDamjan Jovanovic            </condition>
56a622bb93SDamjan Jovanovic
57a622bb93SDamjan Jovanovic            <uptodate property="idl.uptodate" targetfile="${idl.javamaker.flag}" if:set="idl.files.exist">
58*8f71f2daSDamjan Jovanovic                <srcresources>
59*8f71f2daSDamjan Jovanovic                    <resources refid="idl.files"/>
60*8f71f2daSDamjan Jovanovic                </srcresources>
61a622bb93SDamjan Jovanovic            </uptodate>
62a622bb93SDamjan Jovanovic            <property name="idl.uptodate" value="true" unless:set="idl.files.exist"/>
63a622bb93SDamjan Jovanovic        </sequential>
64a622bb93SDamjan Jovanovic    </macrodef>
6541f03cd9SDamjan Jovanovic
66*8f71f2daSDamjan Jovanovic    <macrodef name="check-idl-cppumaker">
67*8f71f2daSDamjan Jovanovic        <sequential>
68*8f71f2daSDamjan Jovanovic            <uptodate property="idl.cppumaker.uptodate" targetfile="${idl.cppumaker.flag}">
69*8f71f2daSDamjan Jovanovic                <srcresources>
70*8f71f2daSDamjan Jovanovic                    <file name="${unoprivateapi.idl}"/>
71*8f71f2daSDamjan Jovanovic                </srcresources>
72*8f71f2daSDamjan Jovanovic            </uptodate>
73*8f71f2daSDamjan Jovanovic        </sequential>
74*8f71f2daSDamjan Jovanovic    </macrodef>
75*8f71f2daSDamjan Jovanovic
76a622bb93SDamjan Jovanovic    <macrodef name="build-idl">
77a622bb93SDamjan Jovanovic        <sequential>
78*8f71f2daSDamjan Jovanovic            <idlc urdDirectory="${idl.urd.build.dir}">
79*8f71f2daSDamjan Jovanovic                <idlFiles>
80*8f71f2daSDamjan Jovanovic                    <resources refid="idl.files"/>
81*8f71f2daSDamjan Jovanovic                </idlFiles>
82*8f71f2daSDamjan Jovanovic            </idlc>
83*8f71f2daSDamjan Jovanovic            <regmerge
84*8f71f2daSDamjan Jovanovic                urdDirectory="${idl.urd.build.dir}"
85*8f71f2daSDamjan Jovanovic                rdbDirectory="${idl.rdb.build.dir}"/>
86a622bb93SDamjan Jovanovic            <javamaker
87a622bb93SDamjan Jovanovic                inputRdb="${idl.rdb.build.dir}/registry.rdb"
88a622bb93SDamjan Jovanovic                outputDirectory="${idl.classes.build.dir}"
89a622bb93SDamjan Jovanovic                noDependentTypes="true"
90a622bb93SDamjan Jovanovic                excludes="${OUTDIR}/bin/types.rdb"/>
91a622bb93SDamjan Jovanovic            <touch file="${idl.javamaker.flag}"/>
92a622bb93SDamjan Jovanovic        </sequential>
93a622bb93SDamjan Jovanovic    </macrodef>
94a622bb93SDamjan Jovanovic
95*8f71f2daSDamjan Jovanovic    <macrodef name="build-idl-cppumaker">
96*8f71f2daSDamjan Jovanovic        <sequential>
97*8f71f2daSDamjan Jovanovic            <idlc urdDirectory="${unoprivateapi.outdir}/urd">
98*8f71f2daSDamjan Jovanovic                <idlFiles>
99*8f71f2daSDamjan Jovanovic                    <file name="${unoprivateapi.idl}"/>
100*8f71f2daSDamjan Jovanovic                </idlFiles>
101*8f71f2daSDamjan Jovanovic            </idlc>
102*8f71f2daSDamjan Jovanovic            <regmerge
103*8f71f2daSDamjan Jovanovic                urdDirectory="${unoprivateapi.outdir}/urd"
104*8f71f2daSDamjan Jovanovic                rdbDirectory="${unoprivateapi.outdir}/rdb"/>
105*8f71f2daSDamjan Jovanovic            <cppumaker
106*8f71f2daSDamjan Jovanovic                inputRdb="${unoprivateapi.outdir}/rdb/registry.rdb"
107*8f71f2daSDamjan Jovanovic                outputDirectory="${unoprivateapi.outdir}/inc"/>
108*8f71f2daSDamjan Jovanovic            <touch file="${idl.cppumaker.flag}"/>
109*8f71f2daSDamjan Jovanovic        </sequential>
110*8f71f2daSDamjan Jovanovic    </macrodef>
111*8f71f2daSDamjan Jovanovic
112a622bb93SDamjan Jovanovic    <macrodef name="idlc">
113*8f71f2daSDamjan Jovanovic        <element name="idlFiles"/>
114*8f71f2daSDamjan Jovanovic        <attribute name="urdDirectory"/>
115a622bb93SDamjan Jovanovic        <sequential>
116*8f71f2daSDamjan Jovanovic            <mkdir dir="@{urdDirectory}"/>
117a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/idlc" failonerror="true">
118a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
119a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
120a622bb93SDamjan Jovanovic                <arg value="-I${OUTDIR}/idl"/>
121a622bb93SDamjan Jovanovic                <arg value="-O"/>
122*8f71f2daSDamjan Jovanovic                <arg value="@{urdDirectory}"/>
123a622bb93SDamjan Jovanovic                <arg value="-verbose"/>
124a622bb93SDamjan Jovanovic                <arg value="-cid"/>
125a622bb93SDamjan Jovanovic                <arg value="-we"/>
126*8f71f2daSDamjan Jovanovic                <resources>
127*8f71f2daSDamjan Jovanovic                    <idlFiles/>
128*8f71f2daSDamjan Jovanovic                </resources>
129a622bb93SDamjan Jovanovic            </apply>
130a622bb93SDamjan Jovanovic        </sequential>
131a622bb93SDamjan Jovanovic    </macrodef>
132a622bb93SDamjan Jovanovic
133a622bb93SDamjan Jovanovic    <macrodef name="regmerge">
134*8f71f2daSDamjan Jovanovic        <attribute name="urdDirectory"/>
135*8f71f2daSDamjan Jovanovic        <attribute name="rdbDirectory"/>
136a622bb93SDamjan Jovanovic        <sequential>
137*8f71f2daSDamjan Jovanovic            <mkdir dir="@{rdbDirectory}"/>
138*8f71f2daSDamjan Jovanovic            <delete file="@{rdbDirectory}/registry.rdb"/>
139a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/regmerge" failonerror="true">
140a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
141a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
142*8f71f2daSDamjan Jovanovic                <arg value="@{rdbDirectory}/registry.rdb"/>
143a622bb93SDamjan Jovanovic                <arg value="/UCR"/>
144*8f71f2daSDamjan Jovanovic                <fileset dir="@{urdDirectory}" includes="**/*.urd"/>
145a622bb93SDamjan Jovanovic            </apply>
146a622bb93SDamjan Jovanovic        </sequential>
147a622bb93SDamjan Jovanovic    </macrodef>
14841f03cd9SDamjan Jovanovic
149bee6bcb9SDamjan Jovanovic    <macrodef name="javamaker">
150a622bb93SDamjan Jovanovic        <attribute name="inputRdb"/>
151a622bb93SDamjan Jovanovic        <attribute name="outputDirectory"/>
152a622bb93SDamjan Jovanovic        <attribute name="noDependentTypes" default="false"/>
153bee6bcb9SDamjan Jovanovic        <attribute name="excludes" default=""/>
154bee6bcb9SDamjan Jovanovic        <sequential>
155a622bb93SDamjan Jovanovic            <mkdir dir="@{outputDirectory}"/>
156bee6bcb9SDamjan Jovanovic            <exec executable="${OUTDIR}/bin/javamaker" failonerror="true">
157bee6bcb9SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
158bee6bcb9SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
159a622bb93SDamjan Jovanovic                <arg value="-O@{outputDirectory}"/>
160bee6bcb9SDamjan Jovanovic                <arg value="-BUCR"/>
161bee6bcb9SDamjan Jovanovic                <arg value="-nD"
162a622bb93SDamjan Jovanovic                    if:true="@{noDependentTypes}"/>
163a622bb93SDamjan Jovanovic                <arg value="@{inputRdb}"/>
164bee6bcb9SDamjan Jovanovic                <arg value="-X@{excludes}"
165bee6bcb9SDamjan Jovanovic                    unless:blank="@{excludes}"/>
166bee6bcb9SDamjan Jovanovic            </exec>
167bee6bcb9SDamjan Jovanovic        </sequential>
168bee6bcb9SDamjan Jovanovic    </macrodef>
169*8f71f2daSDamjan Jovanovic
170*8f71f2daSDamjan Jovanovic    <macrodef name="cppumaker">
171*8f71f2daSDamjan Jovanovic        <attribute name="inputRdb"/>
172*8f71f2daSDamjan Jovanovic        <attribute name="outputDirectory"/>
173*8f71f2daSDamjan Jovanovic        <sequential>
174*8f71f2daSDamjan Jovanovic            <mkdir dir="@{outputDirectory}"/>
175*8f71f2daSDamjan Jovanovic            <exec executable="${OUTDIR}/bin/cppumaker" failonerror="true">
176*8f71f2daSDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
177*8f71f2daSDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
178*8f71f2daSDamjan Jovanovic                <arg value="-O@{outputDirectory}"/>
179*8f71f2daSDamjan Jovanovic                <arg value="-BUCR"/>
180*8f71f2daSDamjan Jovanovic                <arg value="-C"/>
181*8f71f2daSDamjan Jovanovic                <arg value="@{inputRdb}"/>
182*8f71f2daSDamjan Jovanovic                <arg value="${OUTDIR}/bin/udkapi.rdb"/>
183*8f71f2daSDamjan Jovanovic            </exec>
184*8f71f2daSDamjan Jovanovic        </sequential>
185*8f71f2daSDamjan Jovanovic    </macrodef>
18641f03cd9SDamjan Jovanovic</project>
18741f03cd9SDamjan Jovanovic
188