blob: 666e5cb3fcd7ff9ef25670a682e3e4f39b809c4e [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project name="ldapstudio-complete" default="bundle">
<property name="project.name" value="ldapstudio-complete" />
<property name="project.version" value="1.0.0" />
<property name="ldapstudio-complete.output" value="${basedir}/target" />
<property name="ldapstudio-complete.build" value="${ldapstudio-complete.output}/LDAP Studio" />
<!-- Setting up OS Name-->
<condition property="ldapstudio-rcp.os.name" value="macosx" >
<os name="Mac OS X"/>
</condition>
<condition property="ldapstudio-rcp.os.name" value="linux" >
<os family="unix" />
</condition>
<condition property="ldapstudio-rcp.os.name" value="win32">
<os family="windows" />
</condition>
<!-- Setting up OS Extension-->
<condition property="ldapstudio-rcp.os.extension" value=".app" >
<equals arg1="${ldapstudio-rcp.os.name}" arg2="macosx"/>
</condition>
<condition property="ldapstudio-rcp.os.extension" value="" >
<equals arg1="${ldapstudio-rcp.os.name}" arg2="linux"/>
</condition>
<condition property="ldapstudio-rcp.os.extension" value=".exe">
<equals arg1="${ldapstudio-rcp.os.name}" arg2="win32"/>
</condition>
<!-- Setting up a special property if target OS is Mac OS X-->
<condition property="isTargetMacOSX" value="true" >
<equals arg1="${ldapstudio-rcp.os.name}" arg2="macosx"/>
</condition>
<!-- ================================== -->
<!-- HELP -->
<!-- ================================== -->
<target name="help" description="Shows help">
<echo>Available commands:</echo>
<echo> bundle - Generate and bundles a complete version of LDAP Studio</echo>
<echo> When bundling you can specify the target operating system using this option:</echo>
<echo> o -Dldapstudio-rcp.os.name=macosx for Mac OS X</echo>
<echo> o -Dldapstudio-rcp.os.name=linux for Linux</echo>
<echo> o -Dldapstudio-rcp.os.name=win32 for Windows</echo>
<echo> and the target architecture using this option:</echo>
<echo> o -Dldapstudio-rcp.os.arch=i386 for i386 architecture (Linux and Mac OS X)</echo>
<echo> o -Dldapstudio-rcp.os.arch=x86 for x86 architecture (Windows only)</echo>
<echo> o -Dldapstudio-rcp.os.arch=ppc for PowerPC architecture</echo>
<echo> clean - Delete any generated file (javadoc, classes, jars, distribution)</echo>
<echo> javadoc - Generate Javadoc files</echo>
<echo> resolve - Resolves the library dependencies using Ivy</echo>
</target>
<!-- ================================== -->
<!-- BUNDLE -->
<!-- ================================== -->
<target name="bundle" description="Bundles the complete application">
<!-- Creation of the folders -->
<mkdir dir="${ldapstudio-complete.build}" />
<!-- Creation of the LDAP Studio RCP application -->
<ant dir="ldapstudio-rcp" inheritAll="no" />
<!-- Copy of the RCP app -->
<copy todir="${ldapstudio-complete.build}">
<fileset dir="${basedir}/ldapstudio-rcp/target/LDAP Studio">
<include name="**" />
</fileset>
</copy>
<!-- Creation of the LDAP Studio RCP Help application -->
<ant dir="ldapstudio-rcp-help" inheritAll="no" />
<!-- Copy of the LDAP Studio RCP Help Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-rcp-help/target/">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Schemas Editor Plugin -->
<ant dir="ldapstudio-schemas-plugin" inheritAll="no" />
<!-- Copy of the Schemas Editor Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-schemas-plugin/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Schemas Editor Help Plugin -->
<ant dir="ldapstudio-schemas-help" inheritAll="no" />
<!-- Copy of the Schemas Editor Help Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-schemas-help/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Browser Core Plugin -->
<ant dir="ldapstudio-browser-core" inheritAll="no" />
<!-- Copy of the Browser Core Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-browser-core/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Browser UI Plugin -->
<ant dir="ldapstudio-browser-ui" inheritAll="no" />
<!-- Copy of the Browser UI Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-browser-ui/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Browser Help Plugin -->
<ant dir="ldapstudio-browser-help" inheritAll="no" />
<!-- Copy of the Browser Help Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-browser-help/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Creation of the Jars Plugin -->
<ant dir="ldapstudio-jars" inheritAll="no" />
<!-- Copy of the Jars Plugin in the "plugins" folder of the RCP app -->
<copy todir="${ldapstudio-complete.build}/plugins">
<fileset dir="${basedir}/ldapstudio-jars/target">
<include name="*.jar" />
</fileset>
</copy>
<!-- Property for the features -->
<property name="project.features" value="${ldapstudio-complete.build}/features" />
<!-- Copy of the LDAP Studio RCP Feature in the "features" folder -->
<property name="ldapstudio-rcp-feature.project" value="${basedir}/ldapstudio-rcp-feature" />
<property name="ldapstudio-rcp-feature.name" value="org.apache.directory.ldapstudio.rcp.feature" />
<property name="ldapstudio-rcp-feature.version" value="0.6.0" />
<mkdir dir="${project.features}/${ldapstudio-rcp-feature.name}_${ldapstudio-rcp-feature.version}" />
<copy todir="${project.features}/${ldapstudio-rcp-feature.name}_${ldapstudio-rcp-feature.version}">
<fileset dir="${ldapstudio-rcp-feature.project}">
<include name="feature.xml" />
<include name="ldapstudio.png" />
<include name="META-INF/**" />
</fileset>
</copy>
<!-- Copy of the Schemas Editor Feature in the "features" folder -->
<property name="ldapstudio-schemas-feature.project" value="${basedir}/ldapstudio-schemas-feature" />
<property name="ldapstudio-schemas-feature.name" value="org.apache.directory.ldapstudio.schemas.feature" />
<property name="ldapstudio-schemas-feature.version" value="0.6.0" />
<mkdir dir="${project.features}/${ldapstudio-schemas-feature.name}_${ldapstudio-schemas-feature.version}" />
<copy todir="${project.features}/${ldapstudio-schemas-feature.name}_${ldapstudio-schemas-feature.version}">
<fileset dir="${ldapstudio-schemas-feature.project}">
<include name="feature.xml" />
<include name="ldapstudio.png" />
<include name="META-INF/**" />
</fileset>
</copy>
<!-- Copy of the Browser Feature in the "features" folder -->
<property name="ldapstudio-browser-feature.project" value="${basedir}/ldapstudio-browser-feature" />
<property name="ldapstudio-browser-feature.name" value="org.apache.directory.ldapstudio.browser.feature" />
<property name="ldapstudio-browser-feature.version" value="0.6.0" />
<mkdir dir="${project.features}/${ldapstudio-browser-feature.name}_${ldapstudio-browser-feature.version}" />
<copy todir="${project.features}/${ldapstudio-browser-feature.name}_${ldapstudio-browser-feature.version}">
<fileset dir="${ldapstudio-browser-feature.project}">
<include name="feature.xml" />
<include name="ldapstudio.png" />
<include name="META-INF/**" />
</fileset>
</copy>
<!-- Setting Permissions -->
<antcall target="setPermission_${ldapstudio-rcp.os.name}" />
<!-- Special repackaging for Mac OS X -->
<antcall target="repackage_MacOSX" />
</target>
<!-- ================================== -->
<!-- Set Right Permissions -->
<!-- ================================== -->
<target name="setPermission_macosx" description="Sets the right permissions on Mac OS X">
<chmod file="${ldapstudio-complete.build}/LDAP Studio.app/Contents/MacOS/LDAPStudio" perm="755"/>
</target>
<target name="setPermission_linux" description="Sets the right permissions on Linux">
<chmod file="${ldapstudio-complete.build}/LDAP Studio" perm="755"/>
</target>
<target name="setPermission_win32" description="Sets the right permissions on Windows">
<chmod file="${ldapstudio-complete.build}/LDAP Studio.exe" perm="755" />
</target>
<!-- ================================== -->
<!-- Repackage Mac OS X -->
<!-- ================================== -->
<target name="repackage_MacOSX" description="Special repackage for Mac OS X" if="isTargetMacOSX"> <property name="app.dir" location="${ldapstudio-complete.build}/LDAP Studio.app" /> <property name="java.dir" location="${app.dir}/Contents/Resources/Java" />
<mkdir dir="${java.dir}"/> <move todir="${java.dir}"> <fileset dir="${ldapstudio-complete.build}"> <exclude name="LDAP Studio.app/**"/> </fileset> </move>
</target>
<!-- ================================== -->
<!-- JAVADOC -->
<!-- ================================== -->
<target name="javadoc" description="Generate Javadoc files">
<ant dir="ldapstudio-rcp" inheritAll="no" target="javadoc" />
<ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="javadoc" />
<ant dir="ldapstudio-dsml-parser" inheritAll="no" target="javadoc" />
<ant dir="ldapstudio-browser-core" inheritAll="no" target="javadoc" />
<ant dir="ldapstudio-browser-ui" inheritAll="no" target="javadoc" />
<ant dir="ldapstudio-aciitemeditor" inheritAll="no" target="javadoc" />
</target>
<!-- ================================== -->
<!-- RESOLVE -->
<!-- ================================== -->
<target name="resolve" description="Resolves the library dependencies using Ivy">
<ant dir="ldapstudio-rcp" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-rcp-help" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-schemas-help" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-dsml-parser" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-browser-core" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-browser-ui" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-browser-help" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-aciitemeditor" inheritAll="no" target="resolve" />
<ant dir="ldapstudio-jars" inheritAll="no" target="resolve" />
</target>
<!-- ================================== -->
<!-- CLEAN -->
<!-- ================================== -->
<target name="clean" description="Deletes any generated file (javadoc, classes, jars, distribution)">
<ant dir="ldapstudio-rcp" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-rcp-feature" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-rcp-help" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-schemas-help" inheritAll="no" target="clean" />
<ant dir="ldapstudio-schemas-feature" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-browser-core" inheritAll="no" target="clean" />
<ant dir="ldapstudio-browser-ui" inheritAll="no" target="clean" />
<ant dir="ldapstudio-browser-help" inheritAll="no" target="clean" />
<ant dir="ldapstudio-browser-feature" inheritAll="no" target="clean"/>
<ant dir="ldapstudio-jars" inheritAll="no" target="clean" />
<ant dir="ldapstudio-updatesite" inheritAll="no" target="clean" />
<delete dir="${ldapstudio-complete.output}" />
</target>
</project>