summaryrefslogtreecommitdiffstats
path: root/office/ganttproject/build.xml.patch
blob: 379efd1df92214fb37cf27b8e17f9e07616c6e85 (plain)
--- ganttproject-builder/build.xml	2018-02-09 22:19:31.000000000 +0300
+++ build.xml	2018-02-23 16:57:52.533934025 +0300
@@ -1,137 +1,375 @@
-<project name="GanttProject builder">
-    <property file="build-deb.properties"/>
-    <path id="class.path">
-        <pathelement location="build-deb/classes"/>
-        <fileset dir="lib" includes="*.jar"/>
-    </path>
-    <target name="compile-deb-tasks" description="Compile helper code">
-        <mkdir dir="build-deb/classes"/>
-        <javac
-                srcdir="src"
-                destdir="build-deb/classes"
-                classpathref="class.path"
-                target="1.4"
-                source="1.4"
-                debug="yes"
-                includeantruntime="true"
-        />
-        <copy todir="build-deb/classes">
-            <fileset dir="src" includes="**/*.properties"/>
-            <fileset dir="src" includes="**/*.xml"/>
-        </copy>
-        <jar basedir="build-deb/classes" jarfile="lib/ganttproject-build-deb.jar" includes="**/*.class">
-        </jar>
-    </target>
-
-    <taskdef name="desktopEntry" classname="com.googlecode.ant_deb_task.DesktopEntry" classpathref="class.path"/>
-    <taskdef name="deb" classname="com.googlecode.ant_deb_task.Deb" classpathref="class.path"/>
-
-    <target name="distDeb" description="Builds DEB package" depends="distBin,distDebPre">
-        <description>Create a complete GanttProject deb package. Everything included.</description>
-        <desktopEntry
-                toFile="${distDebWork}/usr/share/applications/ganttproject.desktop"
-                name="GanttProject"
-                icon="/usr/share/icons/gnome/scalable/mimetypes/application-x-ganttproject.svg"
-                exec="/usr/bin/ganttproject %U"
-                mimetype="application/x-ganttproject;"
-                categories="Office;"
-                onlyshowin="GNOME;KDE;Unity;LXDE;MATE;Cinnamon;"
-        >
-            <genericname value="GanttProject"/>
-        </desktopEntry>
-        <copy file="ganttproject.svg" tofile="${distDebWork}/usr/share/icons/gnome/scalable/mimetypes/application-x-ganttproject.svg">
-        </copy>
-        <!-- Some docs go into /usr/share/doc/ganttproject -->
-        <mkdir dir="${distDebWork}/usr/share/doc/${package.name}"/>
-        <copy todir="${distDebWork}/usr/share/doc/${package.name}">
-            <fileset dir=".">
-                <include name="LICENSE"/>
-                <include name="README"/>
-                <include name="AUTHORS"/>
-            </fileset>
-        </copy>
-        <deb todir="${distDebPackage}"
-             package="${package.name}"
-             version="${version}"
-             homepage="http://ganttproject.biz/"
-             section="editors"
-             priority="optional"
-             depends="openjdk-7-jre | openjdk-8-jre | openjdk-9-jre | openjdk-7-jdk | openjdk-8-jdk | openjdk-9-jdk | oracle-java7-jre | oracle-java8-jre | oracle-java9-jre | oracle-java7-jdk | oracle-java8-jdk | oracle-java9-jdk | oracle-java7-installer | oracle-java8-installer"
-             conflicts="ganttproject-praha"
-             replaces="ganttproject-praha"
-             postrm="${distDebWork}/postrm"
-             postinst="${distDebWork}/postinst">
-            <version upstream="${version}"/>
-            <maintainer name="GanttProject Team" email="contact@ganttproject.biz"/>
-            <description synopsis="${package.synopsis}">
-                ${package.description}
-            </description>
-            <!-- GanttProject distro goes into /usr/share/ganttproject -->
-            <tarfileset dir="${distBin}" prefix="usr/share/${package.name}">
-                <include name="plugins-${version}/**/"/>
-                <include name="*.jar"/>
-                <include name="*.gan"/>
-                <include name="logging.properties"/>
-            </tarfileset>
-            <tarfileset dir="${distBin}" filemode="755" prefix="usr/share/${package.name}">
-                <include name="ganttproject"/>
-            </tarfileset>
-
-            <!-- Icons, mime types, docs and other stuff -->
-            <tarfileset dir="${distDebWork}/usr" prefix="usr"/>
-        </deb>
-        <rename src="${distDebPackage}/${package.name}_${version}-1_all.deb"
-               dest="${distDebPackage}/${package.name}_${version_build}-1_all.deb"/>
-    </target>
-
-    <taskdef name="bundleapp"
-             classname="com.oracle.appbundler.AppBundlerTask"
-             classpath="lib/appbundler-1.0.jar"/>
-
-    <target name="distMac" depends="distBin">
-        <mkdir dir="${distMacWork}"/>
-
-        <bundleapp outputdirectory="${distMacWork}"
-                   name="GanttProject"
-                   displayname="GanttProject"
-                   identifier="net.sourceforge.ganttproject"
-                   shortversion="${version}"
-                   icon="ganttproject.icns"
-                   copyright="Copyright 2018 BarD Software s.r.o. Distributed under GPL3"
-                   applicationCategory="public.app-category.productivity"
-                   mainclassname="org.bardsoftware.eclipsito.Boot">
-
-            <classpath dir=".">
-              <include name="eclipsito.jar"/>
-            </classpath>
-            <argument value="-app"/>
-            <argument value="net.sourceforge.ganttproject.GanttProject"/>
-            <argument value="-plugins-dir"/>
-            <argument value="$APP_ROOT/Contents/Java/plugins-${version}"/>
-            <argument value="-log"/>
-            <argument value="true"/>
-            <option value="-Dapple.laf.useScreenMenuBar=true"/>
-            <option value="-Dcom.apple.mrj.application.apple.menu.about.name=GanttProject"/>
-            <option value="-Xdock:name=GanttProject"/>
-            <option value="-Xmx512m"/>
-            <option value="-ea"/>
-        </bundleapp>
-        <copy todir="${distMacWork}/GanttProject.app/Contents/Java">
-            <fileset dir="${distBin}">
-                <include name="eclipsito.jar"/>
-                <include name="plugins-${version}/**"/>
-                <include name="logging.properties"/>
-            </fileset>
-        </copy>
-        <copy todir="${distMacWork}" file="HouseBuildingSample.gan"/>
-        <patch patchfile="Info.plist.patch" originalfile="${distMacWork}/GanttProject.app/Contents/Info.plist"/>
-
-        <mkdir dir="${distMacWork}/GanttProject.app/Contents/Java/Classes"/>
-        <copy todir="${distMacWork}/GanttProject.app/Contents/Java/Classes" file="logging.properties"/>
-        <chmod perm="a+rx" file="${distMacWork}/GanttProject.app/Contents/MacOS/JavaAppLauncher"></chmod>
-        <zip destfile="${distMacZip}">
-            <zipfileset dir="${distMacWork}" includes="**">
-            </zipfileset>
-        </zip>
-    </target>
-</project>
+<project name="GanttProject builder" default="build">
+    <property file="build.public.properties"/>
+    <property file="build.private.properties"/>
+
+    <target name="build_biz.ganttproject.core">
+        <ant antfile="../biz.ganttproject.core/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+    <target name="build_net.sourceforge.ganttproject">
+        <ant antfile="../ganttproject/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+    <target name="build_biz.ganttproject.impex.ical">
+        <ant antfile="../biz.ganttproject.impex.ical/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+    <target name="build_org.ganttproject.impex.htmlpdf">
+        <ant antfile="../org.ganttproject.impex.htmlpdf/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+    <target name="build_biz.ganttproject.impex.msproject2">
+        <ant antfile="../biz.ganttproject.impex.msproject2/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+    <target name="build_org.ganttproject.chart.pert">
+        <ant antfile="../org.ganttproject.chart.pert/build.xml" target="install" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="debug" value="${debug}"></property>
+        </ant>
+    </target>
+
+    <target name="clean_biz.ganttproject.core">
+        <ant antfile="../biz.ganttproject.core/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+    <target name="clean_net.sourceforge.ganttproject">
+        <ant antfile="../ganttproject/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+    <target name="clean_biz.ganttproject.impex.ical">
+        <ant antfile="../biz.ganttproject.impex.ical/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+    <target name="clean_org.ganttproject.impex.htmlpdf">
+        <ant antfile="../org.ganttproject.impex.htmlpdf/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+    <target name="clean_biz.ganttproject.impex.msproject2">
+        <ant antfile="../biz.ganttproject.impex.msproject2/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+    <target name="clean_org.ganttproject.chart.pert">
+        <ant antfile="../org.ganttproject.chart.pert/build.xml" target="clean" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+        </ant>
+    </target>
+
+    <target name="welcome-message">
+        <echo>
+=======================================================
+Compiling GanttProject 2.8
+=======================================================
+        </echo>
+    </target>
+
+    <target name="init">
+        <mkdir dir="${install.dir}"/>
+        <mkdir dir="${install.dir}/jre_ext"/>
+    </target>
+
+    <target name="copy-launchers">
+        <copy todir="${install.dir}">
+            <fileset dir=".">
+                <include name="ganttproject"/>
+                <include name="README-install.txt"/>
+                <include name="LICENSE"/>
+                <include name="ganttproject.bat"/>
+                <include name="ganttproject.command"/>
+                <include name="ganttproject.exe"/>
+                <include name="ganttproject_16.ico"/>
+                <include name="ganttproject_32_2.ico"/>
+                <include name="GanttProject.app/**"/>
+                <include name="HouseBuildingSample.gan"/>
+                <include name="lib/javagalician.jar"/>
+                <include name="logging.properties"/>
+            </fileset>
+        </copy>
+        <jar destfile="${install.dir}/eclipsito.jar" update="true">
+            <fileset dir=".">
+                <include name="ganttproject-eclipsito-config.xml"/>
+                <include name="logging.properties"/>
+            </fileset>
+        </jar>
+    </target>
+    <target name="build" depends="welcome-message,
+		build_biz.ganttproject.core,
+		build_net.sourceforge.ganttproject,
+		build_org.ganttproject.impex.htmlpdf,
+		build_biz.ganttproject.impex.ical,
+		build_biz.ganttproject.impex.msproject2,
+		build_org.ganttproject.chart.pert,
+		copy-launchers">
+    </target>
+
+    <target name="make-package-name">
+        <exec dir="${basedir}" executable="./hg-tip-rev.sh" outputproperty="hg.tip.rev">
+        </exec>
+
+        <property name="package.name.suffix" value="${package.name.version}-r${hg.tip.rev}"/>
+        <property name="package.dir" value="${package.name.prefix}-${package.name.suffix}"/>
+        <echo message="${package.dir}" file="VERSION"/>
+    </target>
+
+    <target name="dist-bin" depends="build, make-package-name">
+        <chmod perm="ugo+rx" file="${install.dir}/ganttproject"></chmod>
+        <chmod perm="ugo+rx" file="${install.dir}/ganttproject.command"></chmod>
+
+        <move file="${install.dir}" tofile="${package.dir}"></move>
+        <zip destfile="${package.dir}.zip" basedir="." includes="/**">
+            <zipfileset dir="${package.dir}" excludes="ganttproject" prefix="${package.dir}">
+            </zipfileset>
+            <zipfileset dir="${package.dir}" includes="ganttproject" prefix="${package.dir}" filemode="755">
+            </zipfileset>
+        </zip>
+        <copy file="${package.dir}.zip" tofile="ganttproject-latest.zip"/>
+    </target>
+
+    <target name="dist-src">
+        <property name="src.dir" value="${basedir}/dist-src"/>
+        <ant antfile="../ganttproject/build.xml" target="copy-src" inheritall="false">
+            <property name="install.dir" value="${src.dir}"></property>
+        </ant>
+        <ant antfile="../org.ganttproject.chart.pert/build.xml" target="copy-src" inheritall="false">
+            <property name="install.dir" value="${src.dir}"></property>
+        </ant>
+        <ant antfile="../org.ganttproject.impex.htmlpdf/build.xml" target="copy-src" inheritall="false">
+            <property name="install.dir" value="${src.dir}"></property>
+        </ant>
+        <ant antfile="../biz.ganttproject.impex.msproject2/build.xml" target="copy-src" inheritall="false">
+            <property name="install.dir" value="${src.dir}"></property>
+        </ant>
+        <mkdir dir="${src.dir}/ganttproject-builder"/>
+        <copy todir="${src.dir}/ganttproject-builder">
+            <fileset dir=".">
+                <include name="deb/**"/>
+                <include name="lib/**"/>
+                <include name="src/**"/>
+                <include name="build-deb.xml"/>
+                <include name="build-deb.properties"/>
+                <include name="build.xml"/>
+                <include name="build.public.properties"/>
+                <include name="build.private.properties"/>
+                <include name="formatter.xml"/>
+                <include name="ganttproject_16.ico"/>
+                <include name="ganttproject_32_2.ico"/>
+                <include name="ganttproject"/>
+                <include name="ganttproject.bat"/>
+                <include name="ganttproject.command"/>
+                <include name="ganttproject.desktop"/>
+                <include name="ganttproject-eclipsito-config.xml"/>
+                <include name="ganttproject.exe"/>
+                <include name="ganttproject.jnlp"/>
+                <include name="ganttproject.nsi"/>
+                <include name="ganttproject-webstart-config.xml"/>
+                <include name="HouseBuildingSample.gan"/>
+                <include name="LICENSE"/>
+                <include name=".project"/>
+            </fileset>
+        </copy>
+    </target>
+
+
+    <target name="webstart_net.sourceforge.ganttproject">
+        <fail message="Please set properties keystore and storepass in build.private.properties">
+            <condition>
+                <not>
+                    <and>
+                        <isset property="keystore"/>
+                        <isset property="storepass"/>
+                    </and>
+                </not>
+            </condition>
+        </fail>
+        <ant antfile="../ganttproject/build.xml" target="webstart" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="webstart.dir" value="${webstart.dir}"></property>
+            <property name="keystore" value="${keystore}"/>
+            <property name="storepass" value="${storepass}"/>
+            <property name="alias" value="${alias}"/>
+        </ant>
+    </target>
+
+    <target name="webstart_org.ganttproject.impex.htmlpdf">
+        <fail message="Please set properties keystore and storepass in build.private.properties">
+            <condition>
+                <not>
+                    <and>
+                        <isset property="keystore"/>
+                        <isset property="storepass"/>
+                    </and>
+                </not>
+            </condition>
+        </fail>
+        <ant antfile="../org.ganttproject.impex.htmlpdf/build.xml" target="webstart" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="webstart.dir" value="${webstart.dir}"></property>
+            <property name="keystore" value="${keystore}"/>
+            <property name="storepass" value="${storepass}"/>
+            <property name="alias" value="${alias}"/>
+        </ant>
+    </target>
+
+    <target name="webstart_biz.ganttproject.impex.msproject2">
+        <fail message="Please set properties keystore and storepass in build.private.properties">
+            <condition>
+                <not>
+                    <and>
+                        <isset property="keystore"/>
+                        <isset property="storepass"/>
+                    </and>
+                </not>
+            </condition>
+        </fail>
+        <ant antfile="../biz.ganttproject.impex.msproject2/build.xml" target="webstart" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="webstart.dir" value="${webstart.dir}"></property>
+            <property name="keystore" value="${keystore}"/>
+            <property name="storepass" value="${storepass}"/>
+            <property name="alias" value="${alias}"/>
+        </ant>
+    </target>
+
+    <target name="webstart_org.ganttproject.chart.pert">
+        <fail message="Please set properties keystore and storepass in build.private.properties">
+            <condition>
+                <not>
+                    <and>
+                        <isset property="keystore"/>
+                        <isset property="storepass"/>
+                    </and>
+                </not>
+            </condition>
+        </fail>
+        <ant antfile="../org.ganttproject.chart.pert/build.xml" target="webstart" inheritall="false">
+            <property name="install.dir" value="${install.dir}"></property>
+            <property name="webstart.dir" value="${webstart.dir}"></property>
+            <property name="keystore" value="${keystore}"/>
+            <property name="storepass" value="${storepass}"/>
+            <property name="alias" value="${alias}"/>
+        </ant>
+    </target>
+
+
+    <target name="init-webstart">
+        <fail message="Please set properties keystore and storepass in build.private.properties">
+            <condition>
+                <not>
+                    <and>
+                        <isset property="keystore"/>
+                        <isset property="storepass"/>
+                    </and>
+                </not>
+            </condition>
+        </fail>
+        <mkdir dir="${webstart.dir}"/>
+        <mkdir dir="${webstart.dir}/configuration"/>
+    </target>
+    <!--
+       <target name="dist-webstart" depends="init-webstart, build, webstart_net.sourceforge.ganttproject, webstart_org.ganttproject.impex.htmlpdf, webstart_biz.ganttproject.impex.msproject2, webstart_org.ganttproject.chart.pert">
+    -->
+    <target name="dist-webstart" depends="init-webstart, build, webstart_net.sourceforge.ganttproject">
+        <copy todir="${webstart.dir}" file="ganttproject.jnlp"/>
+        <copy todir="${webstart.dir}/configuration" file="ganttproject-webstart-config.xml"/>
+        <jar destfile="${webstart.dir}/configuration.jar">
+            <fileset dir="${webstart.dir}/configuration" includes="**/*"/>
+        </jar>
+        <signjar jar="${webstart.dir}/configuration.jar" alias="${alias}" keystore="${keystore}"
+                 storepass="${storepass}"/>
+        <delete dir="${webstart.dir}/configuration"/>
+    </target>
+
+    <target name="clean" description="Removes all intermediate building files" depends="clean_biz.ganttproject.core,
+		clean_net.sourceforge.ganttproject,
+		clean_org.ganttproject.impex.htmlpdf,
+		clean_biz.ganttproject.impex.ical,
+		clean_biz.ganttproject.impex.msproject2,
+		clean_org.ganttproject.chart.pert">
+        <delete dir="bin"/>
+        <delete dir="dist-bin"/>
+        <delete dir="build-deb"/>
+    </target>
+
+    <target name="dist-win" description="Builds Windows installer" depends="dist-bin">
+        <copy todir="${package.dir}" file="ganttproject.nsi"/>
+        <exec executable="makensis" dir="${package.dir}">
+            <arg value="ganttproject.nsi"/>
+        </exec>
+        <copy todir="." file="${package.dir}/${package.dir}.exe"/>
+    </target>
+
+    <target name="dist-deb" description="Builds DEB package" depends="make-package-name">
+        <ant antfile="build-deb.xml" inheritall="false">
+            <property name="package-version" value="${package.name.suffix}"></property>
+        </ant>
+        <copy todir="." file="${deb.dir}/${package.name.prefix}_${package.name.suffix}-1_all.deb"></copy>
+    </target>
+
+    <taskdef name="bundleapp"
+             classname="com.oracle.appbundler.AppBundlerTask"
+             classpath="lib/appbundler-1.0.jar"/>
+
+    <target name="dist-mac" depends="init,make-package-name">
+        <property name="package.osx.dir" value="ganttproject.app-${package.name.suffix}"/>
+        <mkdir dir="${package.osx.dir}"/>
+        <bundleapp outputdirectory="${package.osx.dir}"
+                   name="GanttProject"
+                   displayname="GanttProject"
+                   identifier="net.sourceforge.ganttproject"
+                   shortversion="${package.name.version}"
+                   icon="ganttproject.icns"
+                   copyright="Copyright 2016 BarD Software s.r.o. Distributed under GPL3"
+                   applicationCategory="public.app-category.productivity"
+                   mainclassname="org.bardsoftware.eclipsito.Boot">
+
+            <classpath file="eclipsito.jar"/>
+            <argument value="-app"/>
+            <argument value="net.sourceforge.ganttproject.GanttProject"/>
+            <argument value="-plugins-dir"/>
+            <argument value="$APP_ROOT/Contents/Java/plugins"/>
+            <argument value="-log"/>
+            <argument value="true"/>
+            <option value="-Dapple.laf.useScreenMenuBar=true"/>
+            <option value="-Dcom.apple.mrj.application.apple.menu.about.name=GanttProject"/>
+            <option value="-Xdock:name=GanttProject"/>
+            <option value="-Xmx512m"/>
+            <option value="-ea"/>
+        </bundleapp>
+        <copy todir="${package.osx.dir}/GanttProject.app/Contents/Java">
+            <fileset dir="${package.dir}">
+                <include name="eclipsito.jar"/>
+                <include name="plugins/**"/>
+                <include name="logging.properties"/>
+            </fileset>
+        </copy>
+        <patch patchfile="Info.plist.patch" originalfile="${package.osx.dir}/GanttProject.app/Contents/Info.plist"/>
+        <chmod perm="ugo+rx" file="${package.osx.dir}/GanttProject.app/Contents/MacOS/JavaAppLauncher"></chmod>
+        <zip destfile="${package.osx.dir}.zip">
+            <zipfileset dir="${package.osx.dir}" includes="GanttProject.app/**">
+            </zipfileset>
+        </zip>
+    </target>
+
+    <target name="dist-all" depends="dist-bin,dist-win,dist-deb,dist-mac">
+        <echo>
+=======================================================
+All packages build completed
+=======================================================
+        </echo>
+    </target>
+</project>