| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| 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="AWT Build" default="build" basedir="."> |
| <description>Build for AWT component</description> |
| |
| <property name="hy.component" value="classlib" /> |
| <property name="hy.module" value="awt" /> |
| <property name="hy.target" location="${basedir}/../../target" /> |
| <import file="${hy.target}/hdk/build/ant/properties.xml" /> |
| <import file="${hy.hdk}/build/ant/depends.xml" /> |
| |
| <property file="../../make/depends.properties" /> |
| |
| <target name="build" depends="check-depends,-build-no-check"/> |
| <target name="-build-no-check" |
| depends="-copy-resources,-build-jar,-build-native,-test-jar" /> |
| |
| <target name="clean" depends="-clean-java,-clean-native,-clean-test" /> |
| |
| <target name="check-depends" depends="-check-depends,-extract" /> |
| |
| <target name="-check-depends" |
| depends="-check-win-depends,-check-unix-depends"> |
| <check-one-file src="${dejavu-fonts.url}" dest="${dejavu-fonts.zip}" /> |
| </target> |
| |
| <target name="-check-win-depends" if="is.windows"> |
| <check-one-file src="${jpeg.url}" dest="${jpeg.tar}" /> |
| <check-one-file src="${lcms.url}" dest="${lcms.tar}" /> |
| <check-one-file src="${png.url}" dest="${png.tar}" /> |
| </target> |
| |
| <target name="-check-unix-depends" if="is.unix"> |
| <property name="jpeg.msg" |
| value="libjpeg development package not installed |
| ${line.separator}For Debian/Ubuntu try: apt-get install libjpeg62-dev |
| ${line.separator}For Fedora try: yum install libjpeg-devel" /> |
| <check-os-file src="${jpeg.home}/include/jconfig.h" |
| message="${jpeg.msg}" /> |
| |
| <property name="lcms.msg" |
| value="liblcms development package not installed |
| ${line.separator}For Debian/Ubuntu try: apt-get install liblcms1-dev |
| ${line.separator}For Fedora try: yum install lcms-devel" /> |
| <check-os-file src="${lcms.home}/include/lcms.h" |
| message="${lcms.msg}" /> |
| |
| <property name="png.msg" |
| value="libpng development package not installed |
| ${line.separator}For Debian/Ubuntu try: apt-get install libpng12-dev |
| ${line.separator}For Fedora try: yum install libpng-devel" /> |
| <check-os-file src="${png.home}/include/png.h" |
| message="${png.msg}" /> |
| </target> |
| |
| <target name="-extract" |
| depends="-extract-props,-extract-dejavu-fonts,-extract-win" /> |
| |
| <target name="-extract-props"> |
| <uptodate property="dejavu-fonts.uptodate" |
| srcfile="${dejavu-fonts.zip}" |
| targetfile="${dejavu-fonts.fonts.dir}/DejaVuSerif.ttf" /> |
| </target> |
| |
| <target name="-extract-dejavu-fonts" unless="dejavu-fonts.uptodate"> |
| <unzip src="${dejavu-fonts.zip}" dest="${dejavu-fonts.dir}" /> |
| <touch file="${dejavu-fonts.fonts.dir}/DejaVuSerif.ttf" /> |
| </target> |
| |
| <target name="-extract-win" |
| depends="-ext-props,-ext-jpeg,-ext-lcms,-ext-png" /> |
| |
| <target name="-ext-props" if="is.windows"> |
| <uptodate property="jpeg.uptodate" |
| srcfile="${jpeg.tar}" |
| targetfile="${jpeg.testfile}" /> |
| <uptodate property="lcms.uptodate" |
| srcfile="${lcms.tar}" |
| targetfile="${lcms.testfile}" /> |
| <uptodate property="png.uptodate" |
| srcfile="${png.tar}" |
| targetfile="${png.testfile}" /> |
| </target> |
| |
| <target name="-ext-jpeg" if="is.windows" unless="jpeg.uptodate"> |
| <echo>Extracting jpeg dependencies</echo> |
| <untar src="${jpeg.tar}" dest="${depends.lib.dir}" compression="gzip" /> |
| <touch file="${jpeg.testfile}" /> |
| </target> |
| <target name="-ext-lcms" if="is.windows" unless="lcms.uptodate"> |
| <echo>Extracting lcms dependencies</echo> |
| <untar src="${lcms.tar}" dest="${depends.lib.dir}" compression="gzip" /> |
| <touch file="${lcms.testfile}" /> |
| </target> |
| <target name="-ext-png" if="is.windows" unless="png.uptodate"> |
| <echo>Extracting png dependencies</echo> |
| <untar src="${png.tar}" dest="${depends.lib.dir}" compression="gzip" /> |
| <touch file="${png.testfile}" /> |
| </target> |
| |
| <target name="fetch-depends" depends="-fetch-win-depends"> |
| <mkdir dir="${dejavu-fonts.dir}" /> |
| <download-one-file src="${dejavu-fonts.url}" dest="${dejavu-fonts.zip}" |
| md5="${dejavu-fonts.md5}" /> |
| </target> |
| |
| <target name="-fetch-win-depends" if="is.windows"> |
| <mkdir dir="${jpeg.dir}" /> |
| <download-one-file src="${jpeg.url}" |
| dest="${jpeg.tar}" |
| md5="${jpeg.md5}" /> |
| <mkdir dir="${lcms.dir}" /> |
| <download-one-file src="${lcms.url}" |
| dest="${lcms.tar}" |
| md5="${lcms.md5}" /> |
| <mkdir dir="${png.dir}" /> |
| <download-one-file src="${png.url}" |
| dest="${png.tar}" |
| md5="${png.md5}" /> |
| </target> |
| |
| <target name="test" depends="-test-module"> |
| <fail message="Some tests failed"> |
| <condition> |
| <or> |
| <isset property="test.failures" /> |
| <isset property="test.errors" /> |
| </or> |
| </condition> |
| </fail> |
| </target> |
| |
| <!-- internal target for local and global test run sequence --> |
| <target name="-test-module" depends="build,-run-tests" /> |
| |
| <target name="-clean-java" unless="skip.java.build" |
| depends="-class-patternset"> |
| <delete file="${hy.jdk}/jre/lib/boot/${hy.module}.jar" /> |
| <delete file="${hy.jdk}/jre/lib/boot/${hy.module}-src.jar" /> |
| <delete dir="${hy.jdk}/jre/lib/cmm" quiet="true" /> |
| <delete dir="${hy.jdk}/jre/lib/fonts" quiet="true" /> |
| <delete failonerror="false"> |
| <fileset refid="classes" /> |
| </delete> |
| <delete-patternset module="${hy.module}" /> |
| </target> |
| |
| <target name="-clean-test" unless="skip.test.build"> |
| <delete dir="${tests.hdk.dir}" failonerror="false" /> |
| <delete failonerror="false" dir="${hy.build.mod}/test"/> |
| </target> |
| |
| <target name="-compile-java" unless="skip.java.build"> |
| <compile-classes description="${hy.module} classes"> |
| <javac-elements> |
| <src> |
| <pathelement location="src/main/java/common"/> |
| <pathelement location="src/main/java/${hy.os.family}" /> |
| </src> |
| </javac-elements> |
| </compile-classes> |
| </target> |
| |
| <target name="-copy-resources" depends="-copy-win-resources"> |
| |
| <mkdir dir="${hy.jdk}/jre/lib/cmm" /> |
| <copy todir="${hy.jdk}/jre/lib/cmm"> |
| <fileset dir="src/main/resources/cmm"/> |
| </copy> |
| |
| <mkdir dir="${hy.jdk}/jre/lib/fonts" /> |
| <copy todir="${hy.jdk}/jre/lib/fonts"> |
| <fileset dir="${dejavu-fonts.fonts.dir}"> |
| <include name="DejaVuSans.ttf" /> |
| <include name="DejaVuSans-*.ttf" /> |
| <exclude name="DejaVuSans-ExtraLight.ttf" /> |
| <include name="DejaVuSerif.ttf" /> |
| <include name="DejaVuSerif-*.ttf" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="-copy-win-resources" if="is.windows"> |
| <mkdir dir="${hy.jdk}/jre/lib" /> |
| <copy file="src/main/resources/font.properties.xp" |
| tofile="${hy.jdk}/jre/lib/font.properties"/> |
| </target> |
| |
| <target name="findbugs" depends="-build-jar"> |
| <run-findBugs |
| jarFile="${hy.jdk}/jre/lib/boot/${hy.module}.jar" |
| excludeFilter="make/findbugs-exclude-filter.xml" |
| outputFile="${findBugs.report}/${hy.module}.xml"/> |
| </target> |
| |
| <target name="-build-jar" unless="skip.java.build" |
| depends="-svn-info,-compile-java,-class-patternset"> |
| <hy.jar.bin destfile="${hy.jdk}/jre/lib/boot/${hy.module}.jar" |
| manifest="META-INF/MANIFEST.MF"> |
| <fileset refid="classes" /> |
| <fileset refid="common.resources" /> |
| </hy.jar.bin> |
| |
| <hy.jar.src destfile="${hy.jdk}/jre/lib/boot/${hy.module}-src.jar"> |
| <fileset dir="src/main/java/common" /> |
| <fileset dir="src/main/java/${hy.os.family}" /> |
| </hy.jar.src> |
| </target> |
| |
| <target name="-build-native" unless="skip.native.build" |
| depends="-build-native-common, |
| -build-native-unix,-build-native-windows" /> |
| <target name="-build-native-common" unless="skip.native.build"> |
| <make dir="src/main/native/lcmm/${hy.os.family}"> |
| <make-elements> |
| <env key="HY_LCMS_DIR" value="${lcms.dir}" /> |
| </make-elements> |
| </make> |
| |
| <pathconvert targetos="windows" property="jpeg.dir.win"> |
| <path location="${jpeg.dir}" /> |
| </pathconvert> |
| <make dir="src/main/native/jpegdecoder/${hy.os.family}"> |
| <make-elements> |
| <env key="HY_JPEG_DIR" value="${jpeg.dir.win}" /> |
| </make-elements> |
| </make> |
| |
| <make dir="src/main/native/gl/${hy.os.family}"> |
| <make-elements> |
| <env key="HY_PNG_DIR" value="${png.dir}" /> |
| </make-elements> |
| </make> |
| |
| <make dir="src/main/native/oglwrapper/${hy.os.family}" /> |
| <make dir="src/main/native/fontlib/${hy.os.family}" /> |
| </target> |
| |
| <target name="-build-native-unix" if="is.unix" unless="skip.native.build"> |
| <make dir="src/main/native/x11wrapper/${hy.os.family}" /> |
| <make dir="src/main/native/linuxfont/${hy.os.family}" /> |
| </target> |
| |
| <target name="-build-native-windows" unless="skip.native.build" |
| if="is.windows"> |
| <make dir="src/main/native/win32wrapper/${hy.os.family}" /> |
| <make dir="src/main/native/winfont/${hy.os.family}" /> |
| </target> |
| |
| <target name="-clean-native" unless="skip.native.build" |
| depends="-clean-native-unix,-clean-native-windows"> |
| <make dir="src/main/native/lcmm/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/jpegdecoder/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/gl/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/oglwrapper/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/fontlib/${hy.os.family}" |
| target="clean"/> |
| </target> |
| |
| <target name="-clean-native-unix" if="is.unix" unless="skip.native.build"> |
| <make dir="src/main/native/x11wrapper/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/linuxfont/${hy.os.family}" |
| target="clean"/> |
| </target> |
| |
| <target name="-clean-native-windows" unless="skip.native.build" |
| if="is.windows"> |
| <make dir="src/main/native/win32wrapper/${hy.os.family}" |
| target="clean"/> |
| <make dir="src/main/native/winfont/${hy.os.family}" |
| target="clean"/> |
| </target> |
| |
| <target name="-test-jar" unless="skip.test.build" |
| depends="-svn-info,-compile-tests"> |
| <mkdir dir="${tests.hdk.dir}" /> |
| <copy file="make/run-test.xml" tofile="${tests.hdk.dir}/build.xml" /> |
| |
| <hy.jar.bin destfile="${tests.hdk.dir}/${hy.module}_boot_tests.jar"> |
| <fileset dir="${hy.build.mod}/test/boot"> |
| <exclude name="**/*Headless*Test.class" /> |
| </fileset> |
| </hy.jar.bin> |
| <hy.jar.bin destfile="${tests.hdk.dir}/${hy.module}_tests.jar"> |
| <fileset dir="${hy.build.mod}/test/classes" /> |
| </hy.jar.bin> |
| <hy.jar.bin destfile="${tests.hdk.dir}/${hy.module}_headless_tests.jar"> |
| <fileset dir="${hy.build.mod}/test/boot"> |
| <include name="**/*Headless*Test.class" /> |
| </fileset> |
| </hy.jar.bin> |
| |
| <mkdir dir="${tests.excludes.hdk.dir}"/> |
| <copy todir="${tests.excludes.hdk.dir}"> |
| <fileset dir="make" includes="exclude*"/> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="\.java" replace="\.class" flags="g"/> |
| </tokenfilter> |
| </filterchain> |
| </copy> |
| |
| <mkdir dir="${tests.resources.hdk.dir}" /> |
| <copy todir="${tests.resources.hdk.dir}" includeemptydirs="false"> |
| <fileset dir="src/test/api/resources" /> |
| </copy> |
| </target> |
| |
| <target name="-compile-tests" unless="skip.test.build"> |
| <compile-tests description="${hy.module} boot tests" |
| destdir="${hy.build.mod}/test/boot"> |
| <javac-elements> |
| <src> |
| <pathelement location="src/test/impl/boot" /> |
| </src> |
| </javac-elements> |
| </compile-tests> |
| <compile-tests description="${hy.module} tests" |
| destdir="${hy.build.mod}/test/classes"> |
| <javac-elements> |
| <src> |
| <pathelement location="src/test/api/java" /> |
| <pathelement location="src/test/impl/${hy.os.family}" /> |
| </src> |
| </javac-elements> |
| </compile-tests> |
| </target> |
| |
| <target name="-run-tests" depends="-test-jar"> |
| <ant dir="${tests.hdk.dir}" target="test-module" /> |
| </target> |
| |
| <target name="-class-patternset" unless="skip.java.build"> |
| <make-patternset module="${hy.module}" /> |
| </target> |
| |
| </project> |