xref: /trunk/main/solenv/ant/idl.xml (revision a622bb93)
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
39*a622bb93SDamjan Jovanovic    <target name="idl">
40*a622bb93SDamjan Jovanovic        <check-idl/>
41*a622bb93SDamjan Jovanovic        <build-idl unless:set="idl.uptodate"/>
42*a622bb93SDamjan Jovanovic    </target>
4341f03cd9SDamjan Jovanovic
44*a622bb93SDamjan Jovanovic    <macrodef name="check-idl">
45*a622bb93SDamjan Jovanovic        <sequential>
46*a622bb93SDamjan Jovanovic            <local name="idl.files.exist"/>
47*a622bb93SDamjan Jovanovic            <condition property="idl.files.exist">
48*a622bb93SDamjan Jovanovic                <resourcecount refid="idl.files" when="greater" count="0"/>
49*a622bb93SDamjan Jovanovic            </condition>
50*a622bb93SDamjan Jovanovic
51*a622bb93SDamjan Jovanovic            <local name="idl.files.union"/>
52*a622bb93SDamjan Jovanovic            <union id="idl.files.union" if:set="idl.files.exist">
53*a622bb93SDamjan Jovanovic                <filelist refid="idl.files"/>
54*a622bb93SDamjan Jovanovic            </union>
55*a622bb93SDamjan Jovanovic            <uptodate property="idl.uptodate" targetfile="${idl.javamaker.flag}" if:set="idl.files.exist">
56*a622bb93SDamjan Jovanovic                <srcresources refid="idl.files.union"/>
57*a622bb93SDamjan Jovanovic            </uptodate>
58*a622bb93SDamjan Jovanovic            <property name="idl.uptodate" value="true" unless:set="idl.files.exist"/>
59*a622bb93SDamjan Jovanovic        </sequential>
60*a622bb93SDamjan Jovanovic    </macrodef>
6141f03cd9SDamjan Jovanovic
62*a622bb93SDamjan Jovanovic    <macrodef name="build-idl">
63*a622bb93SDamjan Jovanovic        <sequential>
64*a622bb93SDamjan Jovanovic            <idlc/>
65*a622bb93SDamjan Jovanovic            <regmerge/>
66*a622bb93SDamjan Jovanovic            <javamaker
67*a622bb93SDamjan Jovanovic                inputRdb="${idl.rdb.build.dir}/registry.rdb"
68*a622bb93SDamjan Jovanovic                outputDirectory="${idl.classes.build.dir}"
69*a622bb93SDamjan Jovanovic                noDependentTypes="true"
70*a622bb93SDamjan Jovanovic                excludes="${OUTDIR}/bin/types.rdb"/>
71*a622bb93SDamjan Jovanovic            <touch file="${idl.javamaker.flag}"/>
72*a622bb93SDamjan Jovanovic        </sequential>
73*a622bb93SDamjan Jovanovic    </macrodef>
74*a622bb93SDamjan Jovanovic
75*a622bb93SDamjan Jovanovic    <macrodef name="idlc">
76*a622bb93SDamjan Jovanovic        <sequential>
77*a622bb93SDamjan Jovanovic            <mkdir dir="${idl.urd.build.dir}"/>
78*a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/idlc" failonerror="true">
79*a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
80*a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
81*a622bb93SDamjan Jovanovic                <arg value="-I${OUTDIR}/idl"/>
82*a622bb93SDamjan Jovanovic                <arg value="-O"/>
83*a622bb93SDamjan Jovanovic                <arg value="${idl.urd.build.dir}"/>
84*a622bb93SDamjan Jovanovic                <arg value="-verbose"/>
85*a622bb93SDamjan Jovanovic                <arg value="-cid"/>
86*a622bb93SDamjan Jovanovic                <arg value="-we"/>
87*a622bb93SDamjan Jovanovic                <filelist refid="idl.files"/>
88*a622bb93SDamjan Jovanovic            </apply>
89*a622bb93SDamjan Jovanovic        </sequential>
90*a622bb93SDamjan Jovanovic    </macrodef>
91*a622bb93SDamjan Jovanovic
92*a622bb93SDamjan Jovanovic    <macrodef name="regmerge">
93*a622bb93SDamjan Jovanovic        <sequential>
94*a622bb93SDamjan Jovanovic            <mkdir dir="${idl.rdb.build.dir}"/>
95*a622bb93SDamjan Jovanovic            <delete file="${idl.rdb.build.dir}/registry.rdb"/>
96*a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/regmerge" failonerror="true">
97*a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
98*a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
99*a622bb93SDamjan Jovanovic                <arg value="${idl.rdb.build.dir}/registry.rdb"/>
100*a622bb93SDamjan Jovanovic                <arg value="/UCR"/>
101*a622bb93SDamjan Jovanovic                <fileset dir="${idl.urd.build.dir}" includes="**/*.urd"/>
102*a622bb93SDamjan Jovanovic            </apply>
103*a622bb93SDamjan Jovanovic        </sequential>
104*a622bb93SDamjan Jovanovic    </macrodef>
10541f03cd9SDamjan Jovanovic
106bee6bcb9SDamjan Jovanovic    <macrodef name="javamaker">
107*a622bb93SDamjan Jovanovic        <attribute name="inputRdb"/>
108*a622bb93SDamjan Jovanovic        <attribute name="outputDirectory"/>
109*a622bb93SDamjan Jovanovic        <attribute name="noDependentTypes" default="false"/>
110bee6bcb9SDamjan Jovanovic        <attribute name="excludes" default=""/>
111bee6bcb9SDamjan Jovanovic        <sequential>
112*a622bb93SDamjan Jovanovic            <mkdir dir="@{outputDirectory}"/>
113bee6bcb9SDamjan Jovanovic            <exec executable="${OUTDIR}/bin/javamaker" failonerror="true">
114bee6bcb9SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
115bee6bcb9SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
116*a622bb93SDamjan Jovanovic                <arg value="-O@{outputDirectory}"/>
117bee6bcb9SDamjan Jovanovic                <arg value="-BUCR"/>
118bee6bcb9SDamjan Jovanovic                <arg value="-nD"
119*a622bb93SDamjan Jovanovic                    if:true="@{noDependentTypes}"/>
120*a622bb93SDamjan Jovanovic                <arg value="@{inputRdb}"/>
121bee6bcb9SDamjan Jovanovic                <arg value="-X@{excludes}"
122bee6bcb9SDamjan Jovanovic                    unless:blank="@{excludes}"/>
123bee6bcb9SDamjan Jovanovic            </exec>
124bee6bcb9SDamjan Jovanovic        </sequential>
125bee6bcb9SDamjan Jovanovic    </macrodef>
12641f03cd9SDamjan Jovanovic</project>
12741f03cd9SDamjan Jovanovic
128