1<?xml version="1.0" encoding="UTF-8"?> 2<!--*********************************************************** 3 * 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 * 21 ***********************************************************--> 22 23 24<project name="idl" xmlns:if="ant:if" xmlns:unless="ant:unless"> 25 26 <dirname property="idl.basedir" file="${ant.file.idl}"/> 27 28 <!-- global properties --> 29 <property file="${idl.basedir}/../../ant.properties"/> 30 31 32 33 <property name="idl.build.dir" location="${build.base.dir}/idl"/> 34 <property name="idl.urd.build.dir" location="${idl.build.dir}/urd"/> 35 <property name="idl.rdb.build.dir" location="${idl.build.dir}/rdb"/> 36 <property name="idl.classes.build.dir" location="${idl.build.dir}/classes"/> 37 <property name="idl.javamaker.flag" location="${idl.build.dir}/idl.javamaker.flag"/> 38 39 <target name="idl"> 40 <check-idl/> 41 <build-idl unless:set="idl.uptodate"/> 42 </target> 43 44 <target name="unoprivateapi-cppumaker"> 45 <property name="idl.cppumaker.flag" location="${unoprivateapi.outdir}/idl.cppumaker.flag"/> 46 <check-idl-cppumaker/> 47 <build-idl-cppumaker unless:set="idl.cppumaker.uptodate"/> 48 </target> 49 50 <macrodef name="check-idl"> 51 <sequential> 52 <local name="idl.files.exist"/> 53 <condition property="idl.files.exist"> 54 <resourcecount refid="idl.files" when="greater" count="0"/> 55 </condition> 56 57 <uptodate property="idl.uptodate" targetfile="${idl.javamaker.flag}" if:set="idl.files.exist"> 58 <srcresources> 59 <resources refid="idl.files"/> 60 </srcresources> 61 </uptodate> 62 <property name="idl.uptodate" value="true" unless:set="idl.files.exist"/> 63 </sequential> 64 </macrodef> 65 66 <macrodef name="check-idl-cppumaker"> 67 <sequential> 68 <uptodate property="idl.cppumaker.uptodate" targetfile="${idl.cppumaker.flag}"> 69 <srcresources> 70 <file name="${unoprivateapi.idl}"/> 71 </srcresources> 72 </uptodate> 73 </sequential> 74 </macrodef> 75 76 <macrodef name="build-idl"> 77 <sequential> 78 <idlc urdDirectory="${idl.urd.build.dir}"> 79 <idlFiles> 80 <resources refid="idl.files"/> 81 </idlFiles> 82 </idlc> 83 <regmerge 84 urdDirectory="${idl.urd.build.dir}" 85 rdbDirectory="${idl.rdb.build.dir}"/> 86 <javamaker 87 inputRdb="${idl.rdb.build.dir}/registry.rdb" 88 outputDirectory="${idl.classes.build.dir}" 89 noDependentTypes="true" 90 excludes="${OUTDIR}/bin/types.rdb"/> 91 <touch file="${idl.javamaker.flag}"/> 92 </sequential> 93 </macrodef> 94 95 <macrodef name="build-idl-cppumaker"> 96 <sequential> 97 <idlc urdDirectory="${unoprivateapi.outdir}/urd"> 98 <idlFiles> 99 <file name="${unoprivateapi.idl}"/> 100 </idlFiles> 101 </idlc> 102 <regmerge 103 urdDirectory="${unoprivateapi.outdir}/urd" 104 rdbDirectory="${unoprivateapi.outdir}/rdb"/> 105 <cppumaker 106 inputRdb="${unoprivateapi.outdir}/rdb/registry.rdb" 107 outputDirectory="${unoprivateapi.outdir}/inc"/> 108 <touch file="${idl.cppumaker.flag}"/> 109 </sequential> 110 </macrodef> 111 112 <macrodef name="idlc"> 113 <element name="idlFiles"/> 114 <attribute name="urdDirectory"/> 115 <sequential> 116 <mkdir dir="@{urdDirectory}"/> 117 <apply executable="${OUTDIR}/bin/idlc" failonerror="true"> 118 <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 119 <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 120 <arg value="-I${OUTDIR}/idl"/> 121 <arg value="-O"/> 122 <arg value="@{urdDirectory}"/> 123 <arg value="-verbose"/> 124 <arg value="-cid"/> 125 <arg value="-we"/> 126 <resources> 127 <idlFiles/> 128 </resources> 129 </apply> 130 </sequential> 131 </macrodef> 132 133 <macrodef name="regmerge"> 134 <attribute name="urdDirectory"/> 135 <attribute name="rdbDirectory"/> 136 <sequential> 137 <mkdir dir="@{rdbDirectory}"/> 138 <delete file="@{rdbDirectory}/registry.rdb"/> 139 <apply executable="${OUTDIR}/bin/regmerge" failonerror="true"> 140 <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 141 <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 142 <arg value="@{rdbDirectory}/registry.rdb"/> 143 <arg value="/UCR"/> 144 <fileset dir="@{urdDirectory}" includes="**/*.urd"/> 145 </apply> 146 </sequential> 147 </macrodef> 148 149 <macrodef name="javamaker"> 150 <attribute name="inputRdb"/> 151 <attribute name="outputDirectory"/> 152 <attribute name="noDependentTypes" default="false"/> 153 <attribute name="excludes" default=""/> 154 <sequential> 155 <mkdir dir="@{outputDirectory}"/> 156 <exec executable="${OUTDIR}/bin/javamaker" failonerror="true"> 157 <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 158 <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 159 <arg value="-O@{outputDirectory}"/> 160 <arg value="-BUCR"/> 161 <arg value="-nD" 162 if:true="@{noDependentTypes}"/> 163 <arg value="@{inputRdb}"/> 164 <arg value="-X@{excludes}" 165 unless:blank="@{excludes}"/> 166 </exec> 167 </sequential> 168 </macrodef> 169 170 <macrodef name="cppumaker"> 171 <attribute name="inputRdb"/> 172 <attribute name="outputDirectory"/> 173 <sequential> 174 <mkdir dir="@{outputDirectory}"/> 175 <exec executable="${OUTDIR}/bin/cppumaker" failonerror="true"> 176 <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 177 <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 178 <arg value="-O@{outputDirectory}"/> 179 <arg value="-BUCR"/> 180 <arg value="-C"/> 181 <arg value="@{inputRdb}"/> 182 <arg value="${OUTDIR}/bin/udkapi.rdb"/> 183 </exec> 184 </sequential> 185 </macrodef> 186</project> 187 188