xref: /trunk/main/solenv/ant/idl.xml (revision 4aa87146)
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
31*4aa87146SDamjan Jovanovic    <macrodef name="idl-javamaker">
32*4aa87146SDamjan Jovanovic        <attribute name="idlFiles"/>
33*4aa87146SDamjan Jovanovic        <attribute name="idlBuildDir"/>
34a622bb93SDamjan Jovanovic        <sequential>
35*4aa87146SDamjan Jovanovic            <local name="idl.javamaker.flag"/>
36*4aa87146SDamjan Jovanovic            <property name="idl.javamaker.flag" location="@{idlBuildDir}/idl.javamaker.flag"/>
37*4aa87146SDamjan Jovanovic
38*4aa87146SDamjan Jovanovic            <local name="idl.uptodate"/>
39*4aa87146SDamjan Jovanovic            <condition property="idl.uptodate">
40*4aa87146SDamjan Jovanovic                <resourcecount property="idl.uptodate" when="equal" count="0">
41*4aa87146SDamjan Jovanovic                    <resources refid="@{idlFiles}"/>
42*4aa87146SDamjan Jovanovic                </resourcecount>
43a622bb93SDamjan Jovanovic            </condition>
44a622bb93SDamjan Jovanovic
45*4aa87146SDamjan Jovanovic            <uptodate property="idl.uptodate" targetfile="${idl.javamaker.flag}" unless:set="idl.uptodate">
46*4aa87146SDamjan Jovanovic                <srcfiles refid="@{idlFiles}"/>
478f71f2daSDamjan Jovanovic            </uptodate>
48*4aa87146SDamjan Jovanovic            <build-idl
49*4aa87146SDamjan Jovanovic                idlFiles="@{idlFiles}"
50*4aa87146SDamjan Jovanovic                idlBuildDir="@{idlBuildDir}"
51*4aa87146SDamjan Jovanovic                targetFlagFile="${idl.javamaker.flag}"
52*4aa87146SDamjan Jovanovic                unless:set="idl.uptodate"/>
538f71f2daSDamjan Jovanovic        </sequential>
548f71f2daSDamjan Jovanovic    </macrodef>
558f71f2daSDamjan Jovanovic
56a622bb93SDamjan Jovanovic    <macrodef name="build-idl">
57*4aa87146SDamjan Jovanovic        <attribute name="idlFiles"/>
58*4aa87146SDamjan Jovanovic        <attribute name="idlBuildDir"/>
59*4aa87146SDamjan Jovanovic        <attribute name="targetFlagFile"/>
60a622bb93SDamjan Jovanovic        <sequential>
61*4aa87146SDamjan Jovanovic            <idlc
62*4aa87146SDamjan Jovanovic                idlFiles="@{idlFiles}"
63*4aa87146SDamjan Jovanovic                urdDir="@{idlBuildDir}/urd"/>
648f71f2daSDamjan Jovanovic            <regmerge
65*4aa87146SDamjan Jovanovic                urdDir="@{idlBuildDir}/urd"
66*4aa87146SDamjan Jovanovic                rdbFile="@{idlBuildDir}/registry.rdb"/>
67a622bb93SDamjan Jovanovic            <javamaker
68*4aa87146SDamjan Jovanovic                rdbFile="@{idlBuildDir}/registry.rdb"
69*4aa87146SDamjan Jovanovic                outputDir="@{idlBuildDir}/classes"
70a622bb93SDamjan Jovanovic                noDependentTypes="true"
71a622bb93SDamjan Jovanovic                excludes="${OUTDIR}/bin/types.rdb"/>
72*4aa87146SDamjan Jovanovic            <touch file="@{targetFlagFile}"/>
738f71f2daSDamjan Jovanovic        </sequential>
748f71f2daSDamjan Jovanovic    </macrodef>
758f71f2daSDamjan Jovanovic
76a622bb93SDamjan Jovanovic    <macrodef name="idlc">
77*4aa87146SDamjan Jovanovic        <attribute name="idlFiles"/>
78*4aa87146SDamjan Jovanovic        <attribute name="urdDir"/>
79a622bb93SDamjan Jovanovic        <sequential>
80*4aa87146SDamjan Jovanovic            <mkdir dir="@{urdDir}"/>
81a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/idlc" failonerror="true">
82a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
83a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
84a622bb93SDamjan Jovanovic                <arg value="-I${OUTDIR}/idl"/>
85a622bb93SDamjan Jovanovic                <arg value="-O"/>
86*4aa87146SDamjan Jovanovic                <arg value="@{urdDir}"/>
87a622bb93SDamjan Jovanovic                <arg value="-verbose"/>
88a622bb93SDamjan Jovanovic                <arg value="-cid"/>
89a622bb93SDamjan Jovanovic                <arg value="-we"/>
90*4aa87146SDamjan Jovanovic                <fileset refid="@{idlFiles}"/>
91a622bb93SDamjan Jovanovic            </apply>
92a622bb93SDamjan Jovanovic        </sequential>
93a622bb93SDamjan Jovanovic    </macrodef>
94a622bb93SDamjan Jovanovic
95a622bb93SDamjan Jovanovic    <macrodef name="regmerge">
96*4aa87146SDamjan Jovanovic        <attribute name="urdDir"/>
97*4aa87146SDamjan Jovanovic        <attribute name="rdbFile"/>
98a622bb93SDamjan Jovanovic        <sequential>
99*4aa87146SDamjan Jovanovic            <delete file="@{rdbFile}"/>
100a622bb93SDamjan Jovanovic            <apply executable="${OUTDIR}/bin/regmerge" failonerror="true">
101a622bb93SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
102a622bb93SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
103*4aa87146SDamjan Jovanovic                <arg value="@{rdbFile}"/>
104a622bb93SDamjan Jovanovic                <arg value="/UCR"/>
105*4aa87146SDamjan Jovanovic                <fileset dir="@{urdDir}" includes="**/*.urd"/>
106a622bb93SDamjan Jovanovic            </apply>
107a622bb93SDamjan Jovanovic        </sequential>
108a622bb93SDamjan Jovanovic    </macrodef>
10941f03cd9SDamjan Jovanovic
110bee6bcb9SDamjan Jovanovic    <macrodef name="javamaker">
111*4aa87146SDamjan Jovanovic        <attribute name="rdbFile"/>
112*4aa87146SDamjan Jovanovic        <attribute name="outputDir"/>
113a622bb93SDamjan Jovanovic        <attribute name="noDependentTypes" default="false"/>
114bee6bcb9SDamjan Jovanovic        <attribute name="excludes" default=""/>
115bee6bcb9SDamjan Jovanovic        <sequential>
116*4aa87146SDamjan Jovanovic            <mkdir dir="@{outputDir}"/>
117bee6bcb9SDamjan Jovanovic            <exec executable="${OUTDIR}/bin/javamaker" failonerror="true">
118bee6bcb9SDamjan Jovanovic                <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
119bee6bcb9SDamjan Jovanovic                <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/>
120*4aa87146SDamjan Jovanovic                <arg value="-O@{outputDir}"/>
121bee6bcb9SDamjan Jovanovic                <arg value="-BUCR"/>
122bee6bcb9SDamjan Jovanovic                <arg value="-nD"
123a622bb93SDamjan Jovanovic                    if:true="@{noDependentTypes}"/>
124*4aa87146SDamjan Jovanovic                <arg value="@{rdbFile}"/>
125bee6bcb9SDamjan Jovanovic                <arg value="-X@{excludes}"
126bee6bcb9SDamjan Jovanovic                    unless:blank="@{excludes}"/>
127bee6bcb9SDamjan Jovanovic            </exec>
128bee6bcb9SDamjan Jovanovic        </sequential>
129bee6bcb9SDamjan Jovanovic    </macrodef>
1308f71f2daSDamjan Jovanovic
13141f03cd9SDamjan Jovanovic</project>
13241f03cd9SDamjan Jovanovic
133