diff options
-rw-r--r-- | .classpath | 16 | ||||
-rw-r--r-- | .externalToolBuilders/jocl-ant.launch | 9 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | .project | 2 | ||||
-rw-r--r-- | build.xml | 2 | ||||
-rw-r--r-- | make/build-test.xml | 411 | ||||
-rw-r--r-- | make/build.xml | 897 | ||||
-rw-r--r-- | make/joclversion | 19 | ||||
-rw-r--r-- | make/joclversion-test | 14 | ||||
-rw-r--r-- | make/joclversion-test-android | 14 | ||||
-rw-r--r-- | make/resources/android/AndroidManifest-jocl.xml (renamed from resources/android/AndroidManifest-jocl.xml) | 0 | ||||
-rw-r--r-- | make/resources/android/res-jocl/drawable-hdpi/icon.png (renamed from resources/android/res-jocl/drawable-hdpi/icon.png) | bin | 2516 -> 2516 bytes | |||
-rw-r--r-- | make/resources/android/res-jocl/drawable-ldpi/icon.png (renamed from resources/android/res-jocl/drawable-ldpi/icon.png) | bin | 1172 -> 1172 bytes | |||
-rw-r--r-- | make/resources/android/res-jocl/drawable-mdpi/icon.png (renamed from resources/android/res-jocl/drawable-mdpi/icon.png) | bin | 1570 -> 1570 bytes | |||
-rw-r--r-- | make/resources/android/res-jocl/layout/main.xml (renamed from resources/android/res-jocl/layout/main.xml) | 0 | ||||
-rw-r--r-- | make/resources/android/res-jocl/values/strings.xml (renamed from resources/android/res-jocl/values/strings.xml) | 0 | ||||
-rw-r--r-- | make/resources/cl-buffer-if.cfg (renamed from resources/cl-buffer-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-common.cfg (renamed from resources/cl-common.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-context-if.cfg (renamed from resources/cl-context-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-device-if.cfg (renamed from resources/cl-device-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-event-if.cfg (renamed from resources/cl-event-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-if.cfg | 42 | ||||
-rw-r--r-- | make/resources/cl-image-if.cfg (renamed from resources/cl-image-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-impl.cfg (renamed from resources/cl-impl.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-kernel-if.cfg (renamed from resources/cl-kernel-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-mem-if.cfg (renamed from resources/cl-mem-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-platform-if.cfg (renamed from resources/cl-platform-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-program-if.cfg (renamed from resources/cl-program-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-queue-if.cfg (renamed from resources/cl-queue-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/cl-sampler-if.cfg (renamed from resources/cl-sampler-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/clImplCustomCode.c (renamed from resources/clImplCustomCode.c) | 0 | ||||
-rw-r--r-- | make/resources/clImplCustomCode.java (renamed from resources/clImplCustomCode.java) | 0 | ||||
-rw-r--r-- | make/resources/clgl-if.cfg (renamed from resources/clgl-if.cfg) | 0 | ||||
-rw-r--r-- | make/resources/createTagletProps.sh (renamed from resources/createTagletProps.sh) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl.h (renamed from resources/includes/CL_orig/cl.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl_ext.h (renamed from resources/includes/CL_orig/cl_ext.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl_gl.h (renamed from resources/includes/CL_orig/cl_gl.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl_gl_ext.h (renamed from resources/includes/CL_orig/cl_gl_ext.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl_platform.h (renamed from resources/includes/CL_orig/cl_platform.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/CL_orig/cl_vendor_ext.h (renamed from resources/includes/CL_orig/cl_vendor_ext.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/GL3/gl3.h (renamed from resources/includes/GL3/gl3.h) | 0 | ||||
-rw-r--r-- | make/resources/includes/GL3/glext.h (renamed from resources/includes/GL3/glext.h) | 0 | ||||
-rw-r--r-- | make/resources/native-taglet.properties (renamed from resources/native-taglet.properties) | 0 | ||||
-rw-r--r-- | make/resources/opencl.h (renamed from resources/opencl.h) | 0 | ||||
-rw-r--r-- | make/resources/stubs_includes/common/stddef.h (renamed from resources/stubs_includes/common/stddef.h) | 0 | ||||
-rw-r--r-- | make/resources/stubs_includes/common/stdint.h (renamed from resources/stubs_includes/common/stdint.h) | 0 | ||||
-rw-r--r-- | make/resources/stubs_includes/gl/gltypes.h (renamed from resources/stubs_includes/gl/gltypes.h) | 0 | ||||
-rw-r--r-- | make/resources/stubs_includes/jvm/jni.h (renamed from resources/stubs_includes/jvm/jni.h) | 0 | ||||
-rw-r--r-- | make/resources/stubs_includes/jvm/jni_md.h (renamed from resources/stubs_includes/jvm/jni_md.h) | 0 | ||||
-rw-r--r-- | resources/cl-if.cfg | 42 | ||||
-rw-r--r-- | test/com/jogamp/opencl/CLCommandQueueTest.java | 4 | ||||
-rw-r--r-- | test/com/jogamp/opencl/util/concurrent/CLMultiContextTest.java | 3 |
52 files changed, 1418 insertions, 61 deletions
@@ -1,11 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src"/> - <classpathentry kind="src" path="gensrc/java"/> - <classpathentry kind="src" path="test"/> + <classpathentry kind="src" path="src"> + <attributes> + <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="jocl/build/obj"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="build/gensrc/java"> + <attributes> + <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="jocl/build/obj"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="build/test/build/classes" path="test"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry combineaccessrules="false" kind="src" path="/gluegen"/> <classpathentry combineaccessrules="false" kind="src" path="/jogl"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> - <classpathentry kind="output" path="build"/> + <classpathentry kind="output" path="build/classes"/> </classpath> diff --git a/.externalToolBuilders/jocl-ant.launch b/.externalToolBuilders/jocl-ant.launch index f6b6cd6f..445d387e 100644 --- a/.externalToolBuilders/jocl-ant.launch +++ b/.externalToolBuilders/jocl-ant.launch @@ -1,15 +1,14 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> -<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="clean,"/> -<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="jar,"/> +<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/> <booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> <booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jocl"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/jocl/build.xml}"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/jocl/make/build.xml}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,clean"/> <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/jocl}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/jocl/make}"/> </launchConfiguration> @@ -1,8 +1,6 @@ build dist -gensrc -resources/includes/CL -resources/includes/OpenCL +make/resources/includes/CL .idea/workspace.xml **~ nbproject/private @@ -7,7 +7,7 @@ <buildSpec> <buildCommand> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> - <triggers>full,incremental,</triggers> + <triggers>clean,full,incremental,</triggers> <arguments> <dictionary> <key>LaunchConfigHandle</key> @@ -39,7 +39,7 @@ <property name="javac.debug" value="${javacdebug}"/> <property name="javac.source" value="${target.sourcelevel}"/> <property name="javac.target" value="${target.targetlevel}"/> - <property name="javac.compilerargs" value="-bootclasspath ${target.rt.jar} -Xlint -g:${javacdebuglevel}"/> + <property name="javac.compilerargs" value="-bootclasspath '${target.rt.jar}' -Xlint -g:${javacdebuglevel}"/> </target> <!-- overwrites default target - watch out when build-impl.xml changes --> diff --git a/make/build-test.xml b/make/build-test.xml new file mode 100644 index 00000000..ae3c93b5 --- /dev/null +++ b/make/build-test.xml @@ -0,0 +1,411 @@ +<?xml version="1.0"?> + +<!-- +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* Neither the name of Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +--> + +<project name="JOCLTest" basedir="." default="all"> + + <description>JUNIT Tests JOCL</description> + + <property name="gluegen.basename" value="gluegen" /> <!-- if differs, ie jenkins jobname, must be set properly first --> + <property name="jocl.basename" value="jocl" /> <!-- if differs, ie jenkins jobname, must be set properly first --> + <echo message="gluegen.basename: ${gluegen.basename}"/> + <echo message="jocl.basename: ${jocl.basename}"/> + + <property name="ant-contrib.jar" value="${gluegen.root}/make/lib/ant-contrib-1.0b3.jar" /> + + <taskdef resource="net/sf/antcontrib/antlib.xml"> + <classpath> <pathelement location="${ant-contrib.jar}"/> </classpath> + </taskdef> + + <import file="${gluegen.root}/make/jogamp-env.xml" /> + <import file="${gluegen.root}/make/gluegen-cpptasks.xml" /> + + <target name="declare.common" depends="jogamp.env.init, gluegen.cpptasks.detect.os"> + <property name="jocl.version" value="${jogamp.version.base}-${version.timestamp}" /> + + <property name="project.root" value=".." /> + <property name="build" value="${project.root}/${rootrel.build}" /> + + <property name="rootrel.src.test" value="test" /> + <property name="src.test" value="${project.root}/${rootrel.src.test}" /> + + <property name="results.test" value="${build}/test/results" /> + <property name="build.test" value="${build}/test/build" /> + <property name="obj.test" value="${build.test}/obj"/> + + <property name="classes.test" value="${build.test}/classes" /> + <property name="classes.test.path" location="${classes.test}"/> <!-- absolute path --> + + <property name="java.dir.test" value="com/jogamp/opencl"/> + <property name="java.part.test.all" value="${java.dir.test}/**"/> + <property name="java.part.test.android" value="${java.dir.test}/android/**"/> + <property name="java.dir.junit" value="${java.dir.test}"/> + <property name="java.dir.manual" value="${java.dir.test}/manual"/> + + <property name="gluegen-rt-android.jar" value="${gluegen.build}/gluegen-rt-android.jar" /> + + <property name="obj.all.paths" value="${gluegen.build}/obj${path.separator}${jogl.build}/lib${path.separator}${obj}${path.separator}lib/${os.and.arch}"/> + <property name="classpath.test" value="${junit.jar}${path.separator}${gluegen-rt.jar}${path.separator}${jogl-all.jar}${path.separator}${build}/jocl.jar${path.separator}${build}/jocl-test.jar"/> + <property name="classpath.test.remote" value="${junit.jar}${path.separator}${env.TARGET_ANT_HOME}/lib/ant.jar${path.separator}${env.TARGET_ANT_HOME}/lib/ant-junit.jar${path.separator}${gluegen-rt.jar}${path.separator}${build}/jocl.jar${path.separator}${build}/jocl-test.jar"/> + + <property name="test.archive.name" value="${archive.name}-test-results-${build.node.name}"/> + + <property name="batchtest.timeout" value="1800000"/> <!-- 30 min --> + + <mkdir dir="${classes.test}"/> + </target> + + <target name="test.compile.javase" depends="declare.common" > + <javac destdir="${classes.test}" + excludes="${java.part.test.android}" + fork="yes" + includeantruntime="false" + srcdir="${src.test}" + classpath="${gluegen-rt.jar};${build}/jocl.jar;${junit.jar};${jogl-all.jar}" + memoryMaximumSize="${javac.memorymax}" + encoding="UTF-8" + source="${target.sourcelevel}" + target="${target.targetlevel}" + bootclasspath="${target.rt.jar}" + debug="${javacdebug}" debuglevel="${javacdebuglevel}"/> + <copy file="joclversion-test" + tofile="${build.test}/manifest-test.mf" + overwrite="true"> + <filterset> + <filter token="VERSION" value="${jogamp.version}"/> + <filter token="BUILD_VERSION" value="${jocl.version}"/> + <filter token="SCM_BRANCH" value="${jocl.build.branch}"/> + <filter token="SCM_COMMIT" value="${jocl.build.commit}"/> + <filter token="BASEVERSION" value="${jogamp.version.base}"/> + </filterset> + </copy> + <jar manifest="${build.test}/manifest-test.mf" destfile="${build}/jocl-test.jar"> + <!-- get all class files, but skip any resource files that external tools + might have copied into the class directory (otherwise, it's possible + to get the same resource file twice in the jar) --> + <fileset dir="${classes.test}" + includes="${java.part.test.all}" + excludes="${java.part.test.android}"/> + </jar> + </target> + + <target name="test.compile.android" depends="declare.common" if="android-jars.available"> + <!-- Perform the junit pass Java Android compile --> + <javac destdir="${classes.test}" + fork="yes" + includeAntRuntime="false" + classpath="${android.jar};${gluegen-rt-android.jar};${build}/jocl.jar;${junit.jar}" + memoryMaximumSize="${javac.memorymax}" + encoding="UTF-8" + source="${target.sourcelevel}" + target="${target.targetlevel}" + bootclasspath="${target.rt.jar}" + debug="${javacdebug}" debuglevel="${javacdebuglevel}"> + <src path="${src.test}" /> + </javac> + <copy file="joclversion-test-android" + tofile="${build.test}/manifest-test-android.mf" + overwrite="true"> + <filterset> + <filter token="VERSION" value="${jogamp.version}"/> + <filter token="BUILD_VERSION" value="${jocl.version}"/> + <filter token="SCM_BRANCH" value="${jocl.build.branch}"/> + <filter token="SCM_COMMIT" value="${jocl.build.commit}"/> + <filter token="BASEVERSION" value="${jogamp.version.base}"/> + </filterset> + </copy> + <jar manifest="${build.test}/manifest-test-android.mf" destfile="${build}/jocl-test-android.jar" filesonly="true"> + <!-- get all class files, but skip any resource files that external tools + might have copied into the class directory (otherwise, it's possible + to get the same resource file twice in the jar) --> + <fileset dir="${classes.test}" + includes="${java.part.test.all}"/> + </jar> + </target> + + <target name="test.package.android" depends="test.compile.android" if="isAndroid"> + <aapt.signed + assetsdir="resources/assets-test" + jarsrcdir="${src.test}" + jarbuilddir="${build}" + jarbasename="jocl-test-android" + nativebuilddir="../${rootrel.build}/obj" + nativebasename="non-existing" + androidmanifest.path="resources/android/AndroidManifest-test.xml" + androidresources.path="resources/android/res-test" + jarmanifest.path="${build.test}/manifest-test-android.mf" + version.code="${jogamp.version.int}" + version.name="${jogamp.version}" /> + </target> + + <target name="test.compile" depends="declare.common" unless="test.compile.skip"> + <!-- include any resource files that tests may require --> + <copy todir="${classes.test}"> + <fileset dir="${src.test}"> + <exclude name="**/*.java"/> + </fileset> + </copy> + <antcall target="test.compile.javase" inheritRefs="true" inheritAll="true"/> + <antcall target="test.package.android" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="clean"> + <delete dir="${build.test}"/> + </target> + + <target name="clean.results"> + <!-- Clean the results --> + <delete quiet="true"> + <fileset dir="${results.test}" includes="**"/> + <fileset file="${build}/${test.archive.name}.7z"/> + </delete> + <mkdir dir="${results.test}"/> + </target> + + <target name="junit.run.local" depends="clean.results, test.compile" unless="isCrosscompilation"> + <junit forkmode="perTest" showoutput="true" fork="true" haltonerror="off" includeAntRuntime="true"> + <env key="${system.env.library.path}" path="${obj.all.paths}"/> + <jvmarg value="${jvmDataModel.arg}"/> + <jvmarg value="-Djava.library.path=${obj.all.paths}"/> + <!-- + <jvmarg value="-Djogamp.debug=all"/> + <jvmarg value="-Djogamp.debug.NativeLibrary=true"/> + <jvmarg value="-Djogamp.debug.NativeLibrary.Lookup=true"/> + <jvmarg value="-Djogamp.debug.ProcAddressHelper=true"/> --> + <jvmarg value="-Djocl.debug.Factory"/> + <batchtest todir="${results.test}"> + <fileset dir="${classes.test}"> + <include name="${java.dir.junit}/**/*Test.class"/> + </fileset> + <formatter usefile="false" type="plain"/> + <formatter usefile="true" type="xml"/> + </batchtest> + <classpath> + <path path="${classpath.test}"/> + </classpath> + </junit> + </target> + + <target name="test.manual.run" depends="clean.results, test.compile"> + <for param="test.class.path.m" keepgoing="true"> + <!-- results in absolute path --> + <fileset dir="${classes.test}"> + <include name="${java.dir.manual}/**/*Test.class"/> + <exclude name="**/*$$*"/> + </fileset> + <sequential> + <var name="test.class.path" unset="true"/> + <property name="test.class.path" basedir="${classes.test}" relative="true" location="@{test.class.path.m}"/> + <var name="test.class.fqn" unset="true"/> + <pathconvert property="test.class.fqn"> + <fileset file="${classes.test}${file.separator}${test.class.path}"/> + <chainedmapper> + <globmapper from="${classes.test.path}${file.separator}*" to="*"/> <!-- rel. --> + <packagemapper from="*.class" to="*"/> <!-- FQCN --> + </chainedmapper> + </pathconvert> + <var name="test.class.result.file" value="${results.test}/TEST-${test.class.fqn}.log"/> + <echo message="Testing ${test.class.fqn} -- ${test.class.result.file}"/> + <apply dir="." executable="${java.home}/bin/java" + parallel="false" + timeout="${batchtest.timeout}" + vmlauncher="false" + relative="true" + failonerror="false" + output="${test.class.result.file}"> + <env key="${system.env.library.path}" path="${obj.all.paths}"/> + <env key="CLASSPATH" value="${classpath.test}"/> + <arg line="${jvmDataModel.arg}"/> + <arg value="-Djava.library.path=${obj.all.paths}"/> + <!-- + <arg line="-Djogamp.debug=all"/> + <arg line="-Djogamp.debug.NativeLibrary=true"/> + <arg line="-Djogamp.debug.NativeLibrary.Lookup=true"/> + <arg line="-Djogamp.debug.ProcAddressHelper=true"/> --> + <arg line="-Djocl.debug.Factory"/> + <srcfile/> + <mappedresources> + <fileset dir="${classes.test}" includes="${test.class.path}"/> + <packagemapper from="*.class" to="*"/> + </mappedresources> + </apply> + </sequential> + </for> + </target> + + <target name="junit.run.remote.ssh" if="isCrosscompilation" unless="isAndroid"> + <echo message="#! /bin/sh${line.separator}" append="false" file="${build.test}/targetcommand.sh" /> + <echo message="${line.separator} +rsync -av --delete --delete-after --delete-excluded \${line.separator} + --exclude 'build-x86*/' --exclude 'build-linux-x*/' --exclude 'build-android*/' --exclude 'build-win*/' --exclude 'build-mac*/' \${line.separator} + --exclude 'classes/' --exclude 'src/' --exclude '.git/' --exclude '*-java-src.zip' \${line.separator} + ${env.HOST_UID}@${env.HOST_IP}::${env.HOST_RSYNC_ROOT}/${jocl.basename} ${env.TARGET_ROOT} ${line.separator} +cd ${env.TARGET_ROOT}/${jocl.basename}/${env.NODE_LABEL}/make ${line.separator} +" append="true" file="${build.test}/targetcommand.sh" /> + + <for param="test.class.path.m" keepgoing="true"> + <!-- results in absolute path --> + <fileset dir="${classes.test}"> + <include name="${java.dir.junit}/**/*Test.class"/> + <exclude name="**/*$$*"/> + </fileset> + <sequential> + <var name="test.class.path" unset="true"/> + <property name="test.class.path" basedir="${classes.test}" relative="true" location="@{test.class.path.m}"/> + <var name="test.class.fqn" unset="true"/> + <pathconvert property="test.class.fqn"> + <fileset file="${classes.test}${file.separator}${test.class.path}"/> + <chainedmapper> + <globmapper from="${classes.test.path}${file.separator}*" to="*"/> <!-- rel. --> + <packagemapper from="*.class" to="*"/> <!-- FQCN --> + </chainedmapper> + </pathconvert> + <var name="test.class.result.file" value="${results.test}/TEST-${test.class.fqn}.xml"/> + <echo message="Testing ${test.class.fqn} -- ${test.class.result.file}"/> + <echo message="${line.separator} +export DISPLAY=:0.0${line.separator} +java \${line.separator} +${junit.run.arg0}\${line.separator} +${junit.run.arg1}\${line.separator} +${jvmDataModel.arg}\${line.separator} +-cp ${classpath.test.remote}\${line.separator} +org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner \${line.separator} +${test.class.fqn} \${line.separator} +filtertrace=true \${line.separator} +haltOnError=false \${line.separator} +haltOnFailure=false \${line.separator} +showoutput=true \${line.separator} +outputtoformatters=true \${line.separator} +logfailedtests=true \${line.separator} +logtestlistenerevents=true \${line.separator} +formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter \${line.separator} +formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.class.result.file} ${line.separator} +${line.separator} +" append="true" file="${build.test}/targetcommand.sh" /> + </sequential> + </for> + <exec dir="." executable="sh" logError="true" failonerror="true" failifexecutionfails="true"> + <arg line='-x -c " + chmod 0755 ${build.test}/targetcommand.sh ; + scp ${build.test}/targetcommand.sh ${env.TARGET_UID}@${env.TARGET_IP}:${env.TARGET_ROOT}/jocl-targetcommand.sh ; + ssh -x ${env.TARGET_UID}@${env.TARGET_IP} ${env.TARGET_ROOT}/jocl-targetcommand.sh ; + scp -pr ${env.TARGET_UID}@${env.TARGET_IP}:${env.TARGET_ROOT}/${jocl.basename}/${env.NODE_LABEL}/make/${results.test}/* ${results.test}/ "'/> + </exec> + </target> + + <target name="junit.run.remote.adb" if="isAndroidARMv7"> + <echo message="#! /system/bin/sh${line.separator}" append="false" file="${build.test}/targetcommand.sh" /> + <echo message="${line.separator} +rsync -av --delete --delete-after --delete-excluded \${line.separator} + --exclude 'build-x86*/' --exclude 'build-linux*/' --exclude 'build-win*/' --exclude 'build-mac*/' \${line.separator} + --exclude 'classes/' --exclude 'src/' --exclude '.git/' --exclude '*-java-src.zip' \${line.separator} + ${env.HOST_UID}@${env.HOST_IP}::${env.HOST_RSYNC_ROOT}/${jocl.basename} ${env.TARGET_ROOT} ${line.separator} +cd ${env.TARGET_ROOT}/${jocl.basename}/${env.NODE_LABEL}/make ${line.separator} +export ${system.env.library.path}=/system/lib:${env.TARGET_ROOT}/${gluegen.basename}/${rootrel.build}/obj:${env.TARGET_ROOT}/${gluegen.basename}/${rootrel.build}/test/build/natives ${line.separator} +export BOOTCLASSPATH=/system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar ${line.separator} +" append="true" file="${build.test}/targetcommand.sh" /> + + <for param="test.class.path.m" keepgoing="true"> + <!-- results in absolute path --> + <fileset dir="${build_t.java}"> + <include name="${test.junit.rel}/**/*Test.class"/> + <exclude name="**/*$$*"/> + </fileset> + <sequential> + <var name="test.class.path" unset="true"/> + <property name="test.class.path" basedir="${build_t.java}" relative="true" location="@{test.class.path.m}"/> + <var name="test.class.fqn" unset="true"/> + <pathconvert property="test.class.fqn"> + <fileset file="${build_t.java}${file.separator}${test.class.path}"/> + <chainedmapper> + <globmapper from="${build_t.java.path}${file.separator}*" to="*"/> <!-- rel. --> + <packagemapper from="*.class" to="*"/> <!-- FQCN --> + </chainedmapper> + </pathconvert> + <var name="test.class.result.file" value="${results}/TEST-${test.class.fqn}.xml"/> + <echo message="Testing ${test.class.fqn} -- ${test.class.result.file}"/> + <echo message="${line.separator} +dalvikvm \${line.separator} +-Xjnigreflimit:2000 \${line.separator} +-cp ${junit.run.remote.apks} \${line.separator} +-Dgluegen.root=${gluegen.root} \${line.separator} +-Drootrel.build=${rootrel.build} \${line.separator} +com.android.internal.util.WithFramework \${line.separator} +org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner \${line.separator} +${test.class.fqn} \${line.separator} +filtertrace=true \${line.separator} +haltOnError=false \${line.separator} +haltOnFailure=false \${line.separator} +showoutput=true \${line.separator} +outputtoformatters=true \${line.separator} +logfailedtests=true \${line.separator} +logtestlistenerevents=true \${line.separator} +formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter \${line.separator} +formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.class.result.file} ${line.separator} +${line.separator} +" append="true" file="${build_t}/targetcommand.sh" /> + </sequential> + </for> + <exec dir="." executable="sh" logError="true" failonerror="true" failifexecutionfails="true"> + <arg line='-x -c " + chmod 0755 ${build_t}/targetcommand.sh ; + adb push ${build_t}/targetcommand.sh ${env.TARGET_ROOT}/jocl-targetcommand.sh ; + adb shell ${env.TARGET_ROOT}/jocl-targetcommand.sh ; + adb pull ${env.TARGET_ROOT}/${jocl.basename}/${env.NODE_LABEL}/make/${results}/ ${results}/ "'/> + </exec> + </target> + + <target name="junit.run.tests" depends="junit.run.local, junit.run.remote.ssh"/> + + <target name="junit.run.if.enabled" unless="junit.is.disabled"> + <antcall target="junit.run.tests" inheritRefs="true" inheritAll="true"/> + </target> + <target name="junit.run.if.disabled" if="junit.is.disabled"> + <copy todir="${results.test}" file="${gluegen.root}/make/lib/TEST-com.jogamp.junit.DisabledTest.xml"/> + </target> + + <target name="junit.run" depends="declare.common, junit.run.if.enabled, junit.run.if.disabled"> + <antcall target="test-zip-archive" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="test.auto.run" depends="junit.run"/> + + <!-- updates / create the test results zip file --> + <target name="test-zip-archive" depends="declare.common"> + <archive.7z destfile="${build}/${test.archive.name}.7z" + basedir="${results.test}" + includes="**" /> + </target> + +</project> diff --git a/make/build.xml b/make/build.xml new file mode 100644 index 00000000..887c257b --- /dev/null +++ b/make/build.xml @@ -0,0 +1,897 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + - Ant build for JOCL. This build has been tested with ANT 1.8.0. The + - optional.jar that contains the optional ANT tasks must be in the ANT + - classpath (typically the ant/lib directory). + - + - A clean download of JOCL is required for this build. + - + - This build has no dependence on environment variables; the needed + - ones (e.g. java.home, ANT_HOME) are all set by the Ant wrapper shell + - script, by the virtual machine, or elsewhere. However, on all platforms, + - the C compiler and linker should be in the path. All other paths that + - need to be set are in host.properties. + - + - NOTE: because the GlueGen config files have their own relative paths + - which cannot be overridden by GlueGen, GlueGen MUST be run from + - the "make" directory. This also means that this build.xml MUST + - be run from the "make" directory. + - + - Public targets: + - all: (default; autodetects OS and chooses C compiler from jocl.properties) + - clean: clean all built + - javadoc: create the standard developer Javadoc + - + - Thanks to Rob Grzywinski and Artur Biesiadowski for the bulk of the + - ANT build, including the GlueGen and StaticGLInfo tasks, the building of + - the Java generated sources, the first and second phase Java compiles, and + - the building of the jar file. Thanks to Alex Radeski for the bulk of the + - port to the ant-contrib CPPTask framework. Thanks to Athomas Goldberg for + - the original OS detection code. + --> +<project name="JOCL" basedir="." default="all"> + + <property name="project.root" value=".." /> + + <condition property="rootrel.build" value="build"> + <not> + <isset property="rootrel.build"/> + </not> + </condition> + <property name="build" value="${project.root}/${rootrel.build}" /> + + <property name="gluegen.root" value="${project.root}/../gluegen" /> + <property name="gluegen.build" value="${gluegen.root}/${rootrel.build}" /> + + <!-- This is the version of JOCL you are building --> + <property name="jocl.build.number" value="manual-build"/> + <mkdir dir="${build}" /> + <exec dir="." executable="git" logError="true" failonerror="false" failifexecutionfails="false" + output="${build}/localbranch.raw"> + <arg line="branch --no-color"/> + </exec> + <exec dir="." executable="sed" logError="true" failonerror="false" failifexecutionfails="false" + outputproperty="jocl.build.branch"> + <arg line="-e '/^[^*]/d' -e 's/* \(.*\)/\1/' ${build}/localbranch.raw"/> + </exec> + <property name="jocl.build.branch" value="manual"/> <!-- fallback --> + <exec dir="${project.root}" executable="git" logError="true" failonerror="false" failifexecutionfails="false" + outputproperty="jocl.build.commit"> + <arg line="rev-parse HEAD"/> + </exec> + <property name="jocl.build.commit" value="manual"/> <!-- fallback --> + + <!-- Pull in GlueGen cpptasks build file --> + <import file="${gluegen.root}/make/gluegen-cpptasks.xml" /> + <import file="${gluegen.root}/make/jogamp-archivetasks.xml" /> + <import file="${gluegen.root}/make/jogamp-androidtasks.xml" /> + <import file="${gluegen.root}/make/jogamp-env.xml" /> + + <!-- ================================================================== --> + <!-- + - Load user properties which override build defaults. + --> + <target name="load.user.properties"> + <property name="user.properties.file" value="${user.home}/jocl.properties" /> + <property file="${user.properties.file}" /> + <echo message="Loaded ${user.properties.file}. (optionally)" /> + + <property file="${user.home}/gluegen.properties" /> + <echo message="Loaded ${user.home}/gluegen.properties." /> + </target> + + <!-- ================================================================== --> + <!-- + - Declare all paths and user defined variables. + --> + <target name="init" depends="jogamp.env.init, gluegen.cpptasks.detect.os"> + + <property name="jocl.build.id" value="${version.timestamp}"/> + <property name="jocl.version" value="${jogamp.version.base}-${version.timestamp}" /> + + <!-- The location and name of the configuration ANT file that will + - validate to ensure that all user-define variables are set. --> + <property name="validate.user.properties" value="${make}/validate-properties.xml" /> + + <!-- GlueGen properties. --> + <!-- NOTE that these require a checked-out GlueGen workspace as a --> + <!-- sibling of the JOCL workspace. --> + <property name="gluegen.make.dir" value="${gluegen.root}/make" /> + <property name="gluegen.build.xml" value="${gluegen.make.dir}/build.xml" /> + <property name="gluegen.jar" value="${gluegen.build}/gluegen.jar" /> + <property name="gluegen-rt.jar" value="${gluegen.build}/gluegen-rt.jar" /> + + <property name="jogl.build" value="${project.root}/../jogl/build" /> + <property name="jogl-all.jar" value="${jogl.build}/jar/jogl-all.jar" /> + + <!-- Create the classpath that includes GlueGen and + - ANTLR. This requires the user-defined "antlr.jar" + - property. --> + <path id="gluegen.classpath"> + <pathelement location="${gluegen.jar}" /> + <pathelement location="${antlr.jar}" /> + </path> + + <path id="javac.classpath"> + <pathelement location="${gluegen.jar}" /> + <pathelement location="${jogl-all.jar}" /> + </path> + + <!-- Names of directories relative to the project root. + Some of these are used in FileMappers later for dependence information + and need exact string matching, which is why they use file.separator + instead of "/". --> + <property name="rootrel.src" value="src" /> + <!--property name="rootrel.src.java" value="${rootrel.src}/java" /--> + <property name="rootrel.src.java" value="${rootrel.src}" /> + <!---property name="rootrel.src.c" value="${rootrel.src}/native" /--> + <property name="rootrel.src.c" value="resources" /> + <property name="rootrel.src.generated" value="${rootrel.build}/gensrc" /> + <property name="rootrel.generated.java" value="${rootrel.src.generated}/classes" /> + <property name="rootrel.generated.c.jocl" value="${rootrel.src.generated}/native" /> + <property name="rootrel.obj" value="${rootrel.build}/obj" /> + <property name="rootrel.obj.jocl" value="${rootrel.obj}/jocl" /> + + <!-- The source directories. --> + <property name="src" value="${project.root}/${rootrel.src}" /> + <property name="src.c" value="${project.root}/${rootrel.src.c}" /> + <property name="src.java" value="${project.root}/${rootrel.src.java}" /> + <property name="build" value="${project.root}/${rootrel.build}" /> + <property name="tempdir" value="${project.root}/build-temp" /> + <mkdir dir="${tempdir}" /> + + <!-- The generated source directories. --> + <property name="src.generated" value="${build}/gensrc" /> + <property name="src.generated.java" value="${src.generated}/java" /> + <property name="src.generated.c" value="${src.generated}/native/jocl" /> + + <!-- The compiler output directories. --> + <property name="classes" value="${build}/classes" /> + <property name="obj" value="${project.root}/${rootrel.obj}" /> + <property name="obj.jocl" value="${project.root}/${rootrel.obj.jocl}" /> + + <!-- Directories used for OpenCL header file preprocessing. --> + <property name="etc.build.dir" value="${build}/etc" /> + <property name="headers.orig" value="${basedir}/resources/includes/CL_orig" /> + <property name="headers.dest" value="${basedir}/resources/includes/CL" /> + + <!-- The headers from which Java files are generated --> + <property name="config" value="${project.root}/make/resources" /> + <property name="stub.includes" value="${config}/includes" /> + <property name="stub.includes.opencl" value="${config}" /> + <property name="stub.includes.dir" value="resources" /> <!-- NOTE: this MUST be relative for FileSet --> + <dirset id="stub.includes.fileset.all" dir="."> + <include name="${stub.includes.dir}/includes"/> + <include name="${stub.includes.dir}/stubs_includes/jvm"/> + <include name="${stub.includes.dir}/stubs_includes/gl"/> + <include name="${stub.includes.dir}/stubs_includes/common"/> + </dirset> + <fileset id="stub.includes.dependencies.fileset.1" dir="${stub.includes.dir}"> + <include name="includes/CL/**" /> + <include name="includes/GL3/**" /> + </fileset> + <fileset id="stub.includes.dependencies.fileset.2" file="${gluegen.jar}" /> + <fileset id="stub.includes.dependencies.fileset.3" dir="."> + <include name="*.cfg" /> + <include name="*.java" /> + <include name="*.c" /> + </fileset> + <!--property name="stub.includes.gluegen.gg" value="${gluegen.root}/make/stub_includes/gluegen" /--> + <property name="stub.includes.gluegen.cc" value="${gluegen.root}/make/stub_includes/platform" /> + + <!-- The resulting jocl.jar. --> + <property name="jocl.jar" value="${build}/jocl.jar" /> + <property name="jocl-android.jar" value="${build}/jocl-android.jar" /> + <property name="jocl-android.apk" value="${build}/jocl-android-${android.abi}.apk" /> + + <path id="jocl_all.classpath"> + <pathelement location="${gluegen-rt.jar}" /> + <pathelement location="${jocl.jar}" /> + </path> + + <!-- Create the required output directories. --> + <mkdir dir="${src.generated.java}" /> + <mkdir dir="${src.generated.c}" /> + <mkdir dir="${classes}" /> + <mkdir dir="${obj}" /> + <mkdir dir="${obj.jocl}" /> + + <property name="archive.name" value="jocl-${jocl.version}-${os.and.arch}" /> + <property name="archive" value="${build}/${archive.name}" /> + + <condition property="useLinuxARMv6SFOptions"> + <and> + <isset property="isLinuxARMv6"/> + <isset property="isAbiEabiGnuArmel"/> + <isset property="isCrosscompilation"/> + </and> + </condition> + <condition property="useLinuxARMv6HFOptions"> + <and> + <isset property="isLinuxARMv6"/> + <isset property="isAbiEabiGnuArmhf"/> + <isset property="isCrosscompilation"/> + </and> + </condition> + <condition property="isCLANG.i386"> + <and> + <isset property="isCLANG"/> + <isset property="isI386"/> + </and> + </condition> + <echo message="useLinuxARMv6SFOptions ${useLinuxARMv6SFOptions}" /> + <echo message="useLinuxARMv6HFOptions ${useLinuxARMv6HFOptions}" /> + <condition property="enable.jdk7.features"> + <or> + <equals arg1="${target.targetlevel}" arg2="1.7"/> + <equals arg1="${target.targetlevel}" arg2="1.8"/> + </or> + </condition> + <echo message="enable.jdk7.features ${enable.jdk7.features}" /> + </target> + + <!-- ================================================================== --> + <!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation --> + <!-- + - Build GlueGen + --> + <target name="build.gluegen" depends="init" unless="common.gluegen.build.done"> + <property name="common.gluegen.build.done" value="true" /> + + <!-- Run the GlueGen build to ensure that the GlueGen ANT task + - has been built. --> + <ant antfile="${gluegen.build.xml}" dir="${gluegen.make.dir}" target="base.compile" inheritAll="false" /> + </target> + + <!-- ================================================================== --> + <!-- Java file generation --> + <!-- + - Check to see whether we need to rebuild the generated sources. + --> + + <target name="java.generate.check"> + <!-- Blow away all target files if any dependencies are violated + (the uptodate task doesn't allow arbitrary source and target filesets but should) --> + <dependset> + <srcfileset refid="stub.includes.dependencies.fileset.1" /> + <srcfileset refid="stub.includes.dependencies.fileset.2" /> + <srcfileset refid="stub.includes.dependencies.fileset.3" /> + <targetfileset dir="."> + <include name="${src.generated.java}/**/*.java" /> + <include name="${src.generated.c}/**/*.c" /> + </targetfileset> + </dependset> + + <!-- Now check for the presence of one well-known file --> + <uptodate property="java.generate.skip" + targetfile="${src.generated.java}/com/jogamp/opencl/llb/CL.java"> + <srcfiles refid="stub.includes.dependencies.fileset.1" /> + <srcfiles refid="stub.includes.dependencies.fileset.2" /> + <srcfiles refid="stub.includes.dependencies.fileset.3" /> + </uptodate> + </target> + + <target name="java.generate.copy2temp"> + <copy todir="${tempdir}"> + <fileset dir="${build}" + includes="gensrc/classes/**" /> + </copy> + </target> + + <target name="generate.jdk7.autocloseable" if="${enable.jdk7.features}"> + <echo message="Generating JDK7+ AutoCloseable"/> + <copy file="${project.root}/src/com/jogamp/common/AutoCloseable.jtemplate" + tofile="${build}/gensrc/java/com/jogamp/common/AutoCloseable.java" overwrite="true"> + <filterchain> + <replaceregex pattern="/\*extends java.lang.AutoCloseable\*/" replace="extends java.lang.AutoCloseable"/> + </filterchain> + </copy> + </target> + + <target name="generate.jdk6.autocloseable" unless="${enable.jdk7.features}"> + <echo message="Generating JDK6 AutoCloseable"/> + <copy file="${project.root}/src/com/jogamp/common/AutoCloseable.jtemplate" + tofile="${build}/gensrc/java/com/jogamp/common/AutoCloseable.java" overwrite="true"> + </copy> + </target> + + <target name="make-build-utilities" depends="init"> + + <!--compile build utilities--> + <mkdir dir="${etc.build.dir}"/> + + <javac destdir="${etc.build.dir}" + classpath="${ant.core.lib}" + fork="yes" + includeAntRuntime="false" + memoryMaximumSize="${javac.memorymax}" + source="${target.sourcelevel}" + target="${target.targetlevel}" + bootclasspath="${target.rt.jar}" + debug="${javacdebug}" debuglevel="${javacdebuglevel}"> + <src path="${basedir}/../etc/src"/> + </javac> + + <taskdef name="update-headers" classname="com.jogamp.ant.HeaderFileDownloader" classpath="${etc.build.dir}"/> + <taskdef name="uncomment-function-params" classname="com.jogamp.ant.FunctionParamUncommenter" classpath="${etc.build.dir}"/> + </target> + + <target name="update-opencl-headers" depends="make-build-utilities"> + <property name="registry.url" value="http://www.khronos.org/registry/cl/api/1.1/"/> + + <!-- download new headers from OpenCL registry if necessary --> + <update-headers header="${headers.orig}/cl.h" url="${registry.url}cl.h"/> + <update-headers header="${headers.orig}/cl_gl.h" url="${registry.url}cl_gl.h"/> + <update-headers header="${headers.orig}/cl_gl_ext.h" url="${registry.url}cl_gl_ext.h"/> + <update-headers header="${headers.orig}/cl_ext.h" url="${registry.url}cl_ext.h"/> + <update-headers header="${headers.orig}/cl_platform.h" url="${registry.url}cl_platform.h"/> + </target> + + <target name="preprocess-opencl-headers" depends="make-build-utilities"> + <mkdir dir="${headers.dest}"/> + + <!--uncomment function names in c headers and copy modified files into include path--> + <uncomment-function-params src="${headers.orig}/cl.h" dest="${headers.dest}/cl.h"/> + <uncomment-function-params src="${headers.orig}/cl_gl.h" dest="${headers.dest}/cl_gl.h"/> + + <!--nothing to uncomment in this headers--> + <copy file="${headers.orig}/cl_platform.h" toDir="${headers.dest}" overwrite="true"/> + <copy file="${headers.orig}/cl_ext.h" toDir="${headers.dest}" overwrite="true"/> + <copy file="${headers.orig}/cl_gl_ext.h" toDir="${headers.dest}" overwrite="true"/> + <copy file="${headers.orig}/cl_vendor_ext.h" toDir="${headers.dest}" overwrite="true"/> + </target> + + <!-- + - Setup the generating ANT tasks and use it to generate the Java files + - from the C OpenCL headers. This involves setting the taskdef and creating + - the classpath reference id then running the task on each header. + --> + <target name="java.generate" depends="build.gluegen, generate.jdk6.autocloseable, generate.jdk7.autocloseable, java.generate.check, preprocess-opencl-headers" unless="java.generate.skip"> + <!-- Add the GlueGen task to ANT --> + <taskdef name="gluegen" classname="com.jogamp.gluegen.ant.GlueGenTask" + classpathref="gluegen.classpath" /> + + <!-- Use the GlueGen task to generate the Java files --> + + <echo message="context..."/> + <echo message="incl path ${toString:stub.includes.fileset.all}"/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-context-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="program..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-program-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="kernel..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-kernel-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="queue..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-queue-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="device..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-device-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="memobj..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-mem-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="image..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-image-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="buffer..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-buffer-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="sampler..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-sampler-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="event..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-event-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="platform..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-platform-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="CL..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + dumpCPP="false" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="CLGL..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/clgl-if.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.JavaEmitter" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <echo message="GLImpl..."/> + <gluegen src="${stub.includes.opencl}/opencl.h" + outputRootDir="${build}" + config="${config}/cl-impl.cfg" + includeRefid="stub.includes.fileset.all" + emitter="com.jogamp.gluegen.procaddress.ProcAddressEmitter" + debug="false"> + <classpath refid="gluegen.classpath" /> + </gluegen> + + <!-- Inform the user that the generators have successfully created + - the necessary Java files --> + <echo message="" /> + <echo message="GlueGen has successfully generated files." /> + + </target> + + <!-- ================================================================== --> + <!-- + - Compile the original and generated source. + --> + <target name="java.compile" depends="java.generate"> + <javac destdir="${classes}" + includeantruntime="false" + memoryMaximumSize="${javac.memorymax}" + encoding="UTF-8" + source="${target.sourcelevel}" + target="${target.targetlevel}" + bootclasspath="${target.rt.jar}" + debug="${javacdebug}" debuglevel="${javacdebuglevel}"> + <classpath refid="javac.classpath"/> + <src path="${src.java}" /> + <src path="${src.generated.java}" /> + </javac> + </target> + + <!-- ================================================================== --> + <!-- + - Compile the native C code for JOCL. + --> + + <target name="rename.mingw.dll" if="isMingW"> + <move file="${src}" tofile="${dest}" /> + </target> + + <target name="rename.dylib" if="isOSX"> + <move file="${src}" tofile="${dest}" /> + </target> + + <macrodef name="c.build"> + <attribute name="compiler.cfg.id" /> + <attribute name="linker.cfg.id" /> + <attribute name="output.lib.name" /> + <attribute name="c.compiler.use-jawt" default="false"/> + <sequential> + <echo message="Output lib name = @{output.lib.name}" /> + + <echo message="compiler.cfg.id.base: @{compiler.cfg.id}"/> + <echo message="linker.cfg.id.base: @{linker.cfg.id}"/> + + <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally --> + <property name="c.compiler.debug" value="false" /> + <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } --> + <property name="c.compiler.optimise" value="none" /> + + <condition property="c.compiler.use-debug"> + <istrue value="${c.compiler.debug}"/> + </condition> + + <patternset id="c.src.files"> + <include name="${rootrel.generated.c.jocl}/*.c"/> + </patternset> + + <echo message="Compiling @{output.lib.name}" /> + + <cc outtype="shared" + objdir="${obj}" + outfile="${obj}/@{output.lib.name}" + optimize="${c.compiler.optimise}" + debug="${c.compiler.debug}" + multithreaded="true" + exceptions="false" + rtti="false"> + + <fileset dir="${project.root}"> + <patternset refid="c.src.files"/> + </fileset> + + <compiler extends="@{compiler.cfg.id}" > + <sysincludepath path="${java.includes.dir}"/> + <sysincludepath path="${java.includes.dir.platform}"/> + <sysincludepath path="${stub.includes.gluegen.cc}"/> + <includepath path="resources/includes"/> + <!-- This is for the generated headers for handwritten C code --> + <includepath path="${src.generated.c}" /> + <includepath path="${src.c}"/> + + <!-- This must come last to not override real include paths --> + <!-- includepath path="stub_includes/macosx" if="isOSX" / --> + </compiler> + + <linker extends="@{linker.cfg.id}" /> + </cc> + + <antcall target="rename.dylib" inheritRefs="true"> + <param name="src" value="${obj}/lib@{output.lib.name}.dylib" /> + <param name="dest" value="${obj}/lib@{output.lib.name}.jnilib" /> + </antcall> + + <antcall target="rename.mingw.dll" inheritRefs="true"> + <param name="src" value="${obj}/lib@{output.lib.name}.so" /> + <param name="dest" value="${obj}/@{output.lib.name}.dll" /> + </antcall> + </sequential> + </macrodef> + + <target name="c.build.jocl" depends="init, gluegen.cpptasks.detect.os, gluegen.cpptasks.setup.compiler"> + <echo message="compiler.cfg.id.base: ${compiler.cfg.id.base}"/> + <echo message="linker.cfg.id.base: ${linker.cfg.id.base}"/> + <c.build compiler.cfg.id="${compiler.cfg.id.base}" + output.lib.name="jocl" + linker.cfg.id="${linker.cfg.id.base}"/> + + <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true"> + <param name="libdir" value="../${rootrel.build}/obj"/> + </antcall> + + <!-- Create Java Web Start jar file from built file --> + <jar destfile="${build}/jocl-natives-${os.and.arch}.jar"> + <fileset dir="../${rootrel.build}/obj"> + <include name="*jocl.${native.library.suffix}" /> + <include name="*soft_oal.${native.library.suffix}" /> + <include name="*openal.${native.library.suffix}" /> + <exclude name="*openal*.1*.${native.library.suffix}" /> + </fileset> + </jar> + </target> + + <!-- ================================================================== --> + <!-- + - Build the jocl.jar file. + --> + <target name="jar" depends="init"> + <!-- Prepare the manifest --> + <copy file="joclversion" + tofile="tempversion" + overwrite="true"> + <filterset> + <filter token="VERSION" value="${jogamp.version}"/> + <filter token="BUILD_VERSION" value="${jocl.version}"/> + <filter token="SCM_BRANCH" value="${jocl.build.branch}"/> + <filter token="SCM_COMMIT" value="${jocl.build.commit}"/> + <filter token="BASEVERSION" value="${jogamp.version.base}" /> + <filter token="JAR_CODEBASE_TAG" value="${jogamp.jar.codebase}"/> + </filterset> + </copy> + + <!-- Build the jar excluding any build specific classes. --> + <jar manifest="tempversion" destfile="${jocl.jar}"> + <fileset dir="${classes}"> + <include name="com/jogamp/common/**" /> + <include name="com/jogamp/opencl/**" /> + </fileset> + </jar> + <copy file="${jocl.jar}" tofile="${jocl-android.jar}"/> + + <antcall target="android.package" inheritRefs="true" /> + + <delete file="tempversion"/> + </target> + + <target name="android.package" depends="init" if="isAndroid"> + <aapt.signed + jarsrcdir="${src.java}" + jarbuilddir="${build}" + jarbasename="jocl-android" + nativebuilddir="../${rootrel.build}/obj" + nativebasename="" + android.abi="${android.abi}" + androidmanifest.path="resources/android/AndroidManifest-jocl.xml" + androidresources.path="resources/android/res-jocl" + jarmanifest.path="tempversion" + version.code="${jogamp.version.int}" + version.name="${jogamp.version}" /> + </target> + + <!-- ================================================================== --> + <!-- + - Build the Javadocs for the sources. + - NOTE: these are not entirely correct as the javadocs targets depend + - on the platform specific build targets. To circumvent any + - errors, ensure that the source is built first. + --> + <target name="javadoc" depends="init, javadoc.init, javadoc.public, javadoc.dev, javadoc.zip"/> + + <!-- copies ${gluegen-javadoc.path}/** to ${javadoc.root.path}/gluegen/ + gluegen-javadoc.path is the parent folder of package-list: + gluegen-javadoc.path := build/javadoc/gluegen + with build/javadoc/gluegen/javadoc/package-list + --> + <target name="javadoc.gluegen" depends="init" if="gluegen-javadoc.path"> + <delete dir="${javadoc.root.path}/gluegen" includeEmptyDirs="true" quiet="true" failonerror="false" /> + <mkdir dir="${javadoc.root.path}/gluegen" /> + + <copy todir="${javadoc.root.path}/gluegen" failonerror="false"> + <fileset dir="${gluegen-javadoc.path}" includes="**" /> + </copy> + </target> + + <target name="javadoc.init" depends="init"> + <!-- property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" /--> + <!-- property name="javadoc.link" value="http://download.oracle.com/javase/1.5.0/docs/api/" /--> + <property name="javadoc.link" value="http://docs.oracle.com/javase/6/docs/api/" /> + + <!-- Link offline with relative URLs does not work. + Link online with relative URLs works, + so we have to assume the same relative online folder structure: + + http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_dev/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_jogl_spec/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_nativewindow_spec/ + + gluegen rel URL: ../../gluegen/javadoc + + build structure: + + jogl.root: build/javadoc/jogl/<javadoc-type> (we have javadoc, javadoc_dev and javadoc_jogl_spec, ..) + gluegen.root: build/javadoc/gluegen/javadoc + + to match the online gluegen rel URL, we need: + + jogl.root: build/javadoc/gluegen/javadoc + --> + <property name="gluegen.link" value="../../gluegen/javadoc" /> + <property name="javadoc.root.path" value="${build}/javadoc" /> + <property name="javadoc.jocl.public.path" value="${javadoc.root.path}/jocl/javadoc" /> + <property name="javadoc.jocl.dev.path" value="${javadoc.root.path}/jocl/javadoc_dev" /> + + <property name="javadoc.packagenames" value="com.jogamp.openal,com.jogamp.openal.util,com.jogamp.openal.sound3d" /> + <property name="javadoc.dev.packagenames" value="${javadoc.packagenames},jogamp.openal" /> + + <!-- if gluegen-javadoc.path is not set, check in default location, + ${gluegen.root}/${rootrel.build}/javadoc/gluegen --> + <available file="${gluegen.build}/javadoc/gluegen/javadoc/package-list" + type="file" + property="gluegen-javadoc.path" + value="${gluegen.build}/javadoc/gluegen" /> + <antcall target="javadoc.gluegen" inheritRefs="true" /> + </target> + + <target name="javadoc.zip" depends="javadoc.init"> + <archive.7z destfile="${build}/javadoc.7z" + basedir="${javadoc.root.path}" + includes="jocl/**" /> + </target> + + <target name="javadoc.public" depends="javadoc.init"> + <javadoc packagenames="${javadoc.packagenames}" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc.jocl.public.path}" windowtitle="JOCL API" + encoding="UTF-8" + source="${target.sourcelevel}" + maxmemory="${javac.memorymax}" + stylesheetfile="${gluegen.make.dir}/doc/javadoc/stylesheet.css"> + <classpath refid="jocl_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + </javadoc> + <copy todir="${javadoc.jocl.public.path}/resources" overwrite="true"> + <fileset dir="${gluegen.make.dir}/doc/javadoc/resources" includes="*" /> + </copy> + </target> + + <target name="javadoc.dev" depends="javadoc.init"> + <!-- Build the internal developer Javadoc --> + <javadoc packagenames="${javadoc.dev.packagenames},${javadoc.dev.packagenames.platform}" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc.jocl.dev.path}" windowtitle="JOCL API" + encoding="UTF-8" + source="${target.sourcelevel}" + maxmemory="${javac.memorymax}" + stylesheetfile="${gluegen.make.dir}/doc/javadoc/stylesheet.css"> + <classpath refid="jocl_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + </javadoc> + <copy todir="${javadoc.jocl.dev.path}/resources" overwrite="true"> + <fileset dir="${gluegen.make.dir}/doc/javadoc/resources" includes="*" /> + </copy> + </target> + + <target name="developer-src-zip" depends="init"> + <!--delete includeEmptyDirs="true" quiet="true" failonerror="false"> + <fileset dir="${build}" includes="jocl-java-src.zip" /> + </delete--> + <zip destfile="${build}/jocl-java-src.zip"> + <fileset dir="${src.java}"/> + <fileset dir="${build}/gensrc"/> + </zip> + </target> + + <!-- Build binary zip archives for developers --> + <target name="developer-zip-archive" depends="init,developer-src-zip" if="build.archiveon"> + <!-- Clean up and create temporary directory --> + <delete includeEmptyDirs="true" quiet="true" dir="${archive}" failonerror="false" /> + <mkdir dir="${archive}" /> + <copy file="${build}/artifact.properties" todir="${archive}"/> + <mkdir dir="${archive}/jar" /> + <copy todir="${archive}/jar"> + <fileset dir="${build}" includes="jocl*.jar"/> + <fileset dir="${build}" includes="jocl*.apk"/> + </copy> + <mkdir dir="${archive}/lib" /> + <copy todir="${archive}/lib"> + <fileset dir="${build}/obj" includes="*.${native.library.suffix}"/> + </copy> + <mkdir dir="${archive}/jnlp-files" /> + <copy todir="${archive}/jnlp-files"> + <fileset dir="${project.root}/jnlp-files" includes="*" /> + </copy> + <mkdir dir="${archive}/www" /> + <copy todir="${archive}/www"> + <fileset dir="${project.root}/www" includes="*" /> + </copy> + <copy file="../README.txt" todir="${archive}"/> + <copy file="../LICENSE.txt" todir="${archive}"/> + <copy todir="${archive}" file="${build}/jocl-java-src.zip"/> + <archive.7z destfile="${build}/${archive.name}.7z" + basedir="${build}" + includes="${archive.name}/**" /> + <!-- Clean up after ourselves --> + <delete includeEmptyDirs="true" quiet="true" dir="${archive}" failonerror="false" /> + </target> + + <!-- ================================================================== --> + <!-- + - Clean up all that is built. + --> + <target name="clean" depends="init"> + <delete includeEmptyDirs="true" quiet="true"> + <fileset dir="${build}" /> + <fileset dir="${tempdir}" /> + <fileset dir="${javadoc}" /> + <fileset dir="${javadoc.dev}" /> + <fileset dir="${headers.dest}" /> + </delete> + <ant antfile="build-test.xml" target="clean"/> + </target> + + <!-- ================================================================== --> + <!-- + - Build everything. + --> + <target name="all" depends="jocl.build, test.compile, tag.build, developer-zip-archive"/> + + <target name="jocl.build" depends="init"> + <!-- Generate and compile the Java sources. --> + <antcall target="java.compile" inheritRefs="true" /> + + <!-- Compile the native C sources . --> + <antcall target="c.build.jocl" inheritRefs="true" /> + + <!-- build the jar/apk --> + <antcall target="jar" inheritRefs="true" /> + </target> + + <target name="tag.build" depends="init"> + <copy file="${gluegen.build}/artifact.properties" todir="${build}" overwrite="true" failonerror="false"/> + <echo message='jocl.build.version=${jogamp.version}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jocl.build.number=${jocl.build.number}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jocl.build.id=${jocl.build.id}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jocl.build.branch=${jocl.build.branch}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jocl.build.commit=${jocl.build.commit}${line.separator}' file="${build}/artifact.properties" append="true"/> + </target> + + <!-- ================================================================== --> + <!-- + - unit tests + --> + + <target name="test.compile" depends="jocl.build"> + <ant antfile="build-test.xml" target="test.compile" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="test.auto.run" depends="test.compile"> + <ant antfile="build-test.xml" target="test.auto.run" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="junit.run" depends="test.compile"> + <ant antfile="build-test.xml" target="junit.run" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="test.manual.run" depends="test.compile"> + <ant antfile="build-test.xml" target="test.manual.run" inheritRefs="true" inheritAll="true"/> + </target> + +</project> diff --git a/make/joclversion b/make/joclversion new file mode 100644 index 00000000..ae7239d1 --- /dev/null +++ b/make/joclversion @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Application-Name: Java Bindings for OpenCL +Specification-Title: Java Bindings for OpenCL API Specification +Specification-Version: @BASEVERSION@ +Specification-Vendor: JogAmp Community +Implementation-Title: Java Bindings for OpenCL Runtime Environment +Implementation-Version: @VERSION@ +Implementation-Build: @BUILD_VERSION@ +Implementation-Branch: @SCM_BRANCH@ +Implementation-Commit: @SCM_COMMIT@ +Implementation-Vendor: JogAmp Community +Implementation-URL: http://jogamp.org/ +Extension-Name: com.jogamp.opencl +Implementation-Vendor-Id: com.jogamp +Trusted-Library: true +Permissions: all-permissions +Name: jogamp/opencl/ +Sealed: true +@JAR_CODEBASE_TAG@ diff --git a/make/joclversion-test b/make/joclversion-test new file mode 100644 index 00000000..ed11ebe6 --- /dev/null +++ b/make/joclversion-test @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Application-Name: Java Bindings for OpenCL Test +Specification-Title: Test Java Bindings for OpenCL API Specification +Specification-Version: @BASEVERSION@ +Specification-Vendor: JogAmp Community +Implementation-Title: Test Java Bindings for OpenCL Runtime Environment on Android +Implementation-Version: @VERSION@ +Implementation-Build: @BUILD_VERSION@ +Implementation-Branch: @SCM_BRANCH@ +Implementation-Commit: @SCM_COMMIT@ +Implementation-Vendor: JogAmp Community +Implementation-URL: http://jogamp.org/ +Extension-Name: com.jogamp.opencl.test +Implementation-Vendor-Id: com.jogamp diff --git a/make/joclversion-test-android b/make/joclversion-test-android new file mode 100644 index 00000000..ed11ebe6 --- /dev/null +++ b/make/joclversion-test-android @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Application-Name: Java Bindings for OpenCL Test +Specification-Title: Test Java Bindings for OpenCL API Specification +Specification-Version: @BASEVERSION@ +Specification-Vendor: JogAmp Community +Implementation-Title: Test Java Bindings for OpenCL Runtime Environment on Android +Implementation-Version: @VERSION@ +Implementation-Build: @BUILD_VERSION@ +Implementation-Branch: @SCM_BRANCH@ +Implementation-Commit: @SCM_COMMIT@ +Implementation-Vendor: JogAmp Community +Implementation-URL: http://jogamp.org/ +Extension-Name: com.jogamp.opencl.test +Implementation-Vendor-Id: com.jogamp diff --git a/resources/android/AndroidManifest-jocl.xml b/make/resources/android/AndroidManifest-jocl.xml index 07fff315..07fff315 100644 --- a/resources/android/AndroidManifest-jocl.xml +++ b/make/resources/android/AndroidManifest-jocl.xml diff --git a/resources/android/res-jocl/drawable-hdpi/icon.png b/make/resources/android/res-jocl/drawable-hdpi/icon.png Binary files differindex 2148232c..2148232c 100644 --- a/resources/android/res-jocl/drawable-hdpi/icon.png +++ b/make/resources/android/res-jocl/drawable-hdpi/icon.png diff --git a/resources/android/res-jocl/drawable-ldpi/icon.png b/make/resources/android/res-jocl/drawable-ldpi/icon.png Binary files differindex c16211f3..c16211f3 100644 --- a/resources/android/res-jocl/drawable-ldpi/icon.png +++ b/make/resources/android/res-jocl/drawable-ldpi/icon.png diff --git a/resources/android/res-jocl/drawable-mdpi/icon.png b/make/resources/android/res-jocl/drawable-mdpi/icon.png Binary files differindex 1c26e3f8..1c26e3f8 100644 --- a/resources/android/res-jocl/drawable-mdpi/icon.png +++ b/make/resources/android/res-jocl/drawable-mdpi/icon.png diff --git a/resources/android/res-jocl/layout/main.xml b/make/resources/android/res-jocl/layout/main.xml index 3a5f117d..3a5f117d 100644 --- a/resources/android/res-jocl/layout/main.xml +++ b/make/resources/android/res-jocl/layout/main.xml diff --git a/resources/android/res-jocl/values/strings.xml b/make/resources/android/res-jocl/values/strings.xml index 24038557..24038557 100644 --- a/resources/android/res-jocl/values/strings.xml +++ b/make/resources/android/res-jocl/values/strings.xml diff --git a/resources/cl-buffer-if.cfg b/make/resources/cl-buffer-if.cfg index 197ef54d..197ef54d 100644 --- a/resources/cl-buffer-if.cfg +++ b/make/resources/cl-buffer-if.cfg diff --git a/resources/cl-common.cfg b/make/resources/cl-common.cfg index d89643b9..d89643b9 100644 --- a/resources/cl-common.cfg +++ b/make/resources/cl-common.cfg diff --git a/resources/cl-context-if.cfg b/make/resources/cl-context-if.cfg index 0e9a5617..0e9a5617 100644 --- a/resources/cl-context-if.cfg +++ b/make/resources/cl-context-if.cfg diff --git a/resources/cl-device-if.cfg b/make/resources/cl-device-if.cfg index a32476ca..a32476ca 100644 --- a/resources/cl-device-if.cfg +++ b/make/resources/cl-device-if.cfg diff --git a/resources/cl-event-if.cfg b/make/resources/cl-event-if.cfg index 87b55bfd..87b55bfd 100644 --- a/resources/cl-event-if.cfg +++ b/make/resources/cl-event-if.cfg diff --git a/make/resources/cl-if.cfg b/make/resources/cl-if.cfg new file mode 100644 index 00000000..2078123a --- /dev/null +++ b/make/resources/cl-if.cfg @@ -0,0 +1,42 @@ +Include cl-common.cfg + +Style InterfaceOnly + +ClassJavadoc CL /** +ClassJavadoc CL * Java bindings to OpenCL, the Open Computing Language. +ClassJavadoc CL * @author Michael Bien, GlueGen, et al. +ClassJavadoc CL */ +JavaClass CL + +Extends CL CLContextBinding +Extends CL CLProgramBinding +Extends CL CLKernelBinding +Extends CL CLCommandQueueBinding +Extends CL CLDeviceBinding +Extends CL CLImageBinding +Extends CL CLBufferBinding +Extends CL CLSamplerBinding +Extends CL CLEventBinding +Extends CL CLPlatformBinding + +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLContextBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLProgramBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLKernelBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLCommandQueueBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLDeviceBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLMemObjBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLImageBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLBufferBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLSamplerBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLEventBinding.java +ExtendedInterfaceSymbolsIgnore ../build/gensrc/java/com/jogamp/opencl/llb/CLPlatformBinding.java + +#ignore cl-gl interoperability functions. Interface 'CL' is pure OpenCL. +Ignore CL_GL_.*|cl.*GL.*|.*_GL_.* + +Ignore clCreateContext +Ignore clCreateContextFromType +Ignore clBuildProgram +Ignore clEnqueueNativeKernel +Ignore clSetEventCallback +Ignore clSetMemObjectDestructorCallback diff --git a/resources/cl-image-if.cfg b/make/resources/cl-image-if.cfg index 611d1bf2..611d1bf2 100644 --- a/resources/cl-image-if.cfg +++ b/make/resources/cl-image-if.cfg diff --git a/resources/cl-impl.cfg b/make/resources/cl-impl.cfg index c2aff892..c2aff892 100644 --- a/resources/cl-impl.cfg +++ b/make/resources/cl-impl.cfg diff --git a/resources/cl-kernel-if.cfg b/make/resources/cl-kernel-if.cfg index be9d6aa2..be9d6aa2 100644 --- a/resources/cl-kernel-if.cfg +++ b/make/resources/cl-kernel-if.cfg diff --git a/resources/cl-mem-if.cfg b/make/resources/cl-mem-if.cfg index 11c51d19..11c51d19 100644 --- a/resources/cl-mem-if.cfg +++ b/make/resources/cl-mem-if.cfg diff --git a/resources/cl-platform-if.cfg b/make/resources/cl-platform-if.cfg index 1a355f34..1a355f34 100644 --- a/resources/cl-platform-if.cfg +++ b/make/resources/cl-platform-if.cfg diff --git a/resources/cl-program-if.cfg b/make/resources/cl-program-if.cfg index 7b72272f..7b72272f 100644 --- a/resources/cl-program-if.cfg +++ b/make/resources/cl-program-if.cfg diff --git a/resources/cl-queue-if.cfg b/make/resources/cl-queue-if.cfg index 171b9332..171b9332 100644 --- a/resources/cl-queue-if.cfg +++ b/make/resources/cl-queue-if.cfg diff --git a/resources/cl-sampler-if.cfg b/make/resources/cl-sampler-if.cfg index 5329b7f5..5329b7f5 100644 --- a/resources/cl-sampler-if.cfg +++ b/make/resources/cl-sampler-if.cfg diff --git a/resources/clImplCustomCode.c b/make/resources/clImplCustomCode.c index 751f819b..751f819b 100644 --- a/resources/clImplCustomCode.c +++ b/make/resources/clImplCustomCode.c diff --git a/resources/clImplCustomCode.java b/make/resources/clImplCustomCode.java index bee53425..bee53425 100644 --- a/resources/clImplCustomCode.java +++ b/make/resources/clImplCustomCode.java diff --git a/resources/clgl-if.cfg b/make/resources/clgl-if.cfg index 1671f76c..1671f76c 100644 --- a/resources/clgl-if.cfg +++ b/make/resources/clgl-if.cfg diff --git a/resources/createTagletProps.sh b/make/resources/createTagletProps.sh index af3312e8..af3312e8 100644 --- a/resources/createTagletProps.sh +++ b/make/resources/createTagletProps.sh diff --git a/resources/includes/CL_orig/cl.h b/make/resources/includes/CL_orig/cl.h index 4f21afe5..4f21afe5 100644 --- a/resources/includes/CL_orig/cl.h +++ b/make/resources/includes/CL_orig/cl.h diff --git a/resources/includes/CL_orig/cl_ext.h b/make/resources/includes/CL_orig/cl_ext.h index 7310fd2b..7310fd2b 100644 --- a/resources/includes/CL_orig/cl_ext.h +++ b/make/resources/includes/CL_orig/cl_ext.h diff --git a/resources/includes/CL_orig/cl_gl.h b/make/resources/includes/CL_orig/cl_gl.h index 3b4fe069..3b4fe069 100644 --- a/resources/includes/CL_orig/cl_gl.h +++ b/make/resources/includes/CL_orig/cl_gl.h diff --git a/resources/includes/CL_orig/cl_gl_ext.h b/make/resources/includes/CL_orig/cl_gl_ext.h index fbf8b326..fbf8b326 100644 --- a/resources/includes/CL_orig/cl_gl_ext.h +++ b/make/resources/includes/CL_orig/cl_gl_ext.h diff --git a/resources/includes/CL_orig/cl_platform.h b/make/resources/includes/CL_orig/cl_platform.h index c8c6d7f6..c8c6d7f6 100644 --- a/resources/includes/CL_orig/cl_platform.h +++ b/make/resources/includes/CL_orig/cl_platform.h diff --git a/resources/includes/CL_orig/cl_vendor_ext.h b/make/resources/includes/CL_orig/cl_vendor_ext.h index a01a3535..a01a3535 100644 --- a/resources/includes/CL_orig/cl_vendor_ext.h +++ b/make/resources/includes/CL_orig/cl_vendor_ext.h diff --git a/resources/includes/GL3/gl3.h b/make/resources/includes/GL3/gl3.h index 176ddb16..176ddb16 100644 --- a/resources/includes/GL3/gl3.h +++ b/make/resources/includes/GL3/gl3.h diff --git a/resources/includes/GL3/glext.h b/make/resources/includes/GL3/glext.h index 8e40956e..8e40956e 100644 --- a/resources/includes/GL3/glext.h +++ b/make/resources/includes/GL3/glext.h diff --git a/resources/native-taglet.properties b/make/resources/native-taglet.properties index 84477786..84477786 100644 --- a/resources/native-taglet.properties +++ b/make/resources/native-taglet.properties diff --git a/resources/opencl.h b/make/resources/opencl.h index 28b874e7..28b874e7 100644 --- a/resources/opencl.h +++ b/make/resources/opencl.h diff --git a/resources/stubs_includes/common/stddef.h b/make/resources/stubs_includes/common/stddef.h index f6c7207b..f6c7207b 100644 --- a/resources/stubs_includes/common/stddef.h +++ b/make/resources/stubs_includes/common/stddef.h diff --git a/resources/stubs_includes/common/stdint.h b/make/resources/stubs_includes/common/stdint.h index 4e456608..4e456608 100644 --- a/resources/stubs_includes/common/stdint.h +++ b/make/resources/stubs_includes/common/stdint.h diff --git a/resources/stubs_includes/gl/gltypes.h b/make/resources/stubs_includes/gl/gltypes.h index 3272b72a..3272b72a 100644 --- a/resources/stubs_includes/gl/gltypes.h +++ b/make/resources/stubs_includes/gl/gltypes.h diff --git a/resources/stubs_includes/jvm/jni.h b/make/resources/stubs_includes/jvm/jni.h index be01d018..be01d018 100644 --- a/resources/stubs_includes/jvm/jni.h +++ b/make/resources/stubs_includes/jvm/jni.h diff --git a/resources/stubs_includes/jvm/jni_md.h b/make/resources/stubs_includes/jvm/jni_md.h index 44978627..44978627 100644 --- a/resources/stubs_includes/jvm/jni_md.h +++ b/make/resources/stubs_includes/jvm/jni_md.h diff --git a/resources/cl-if.cfg b/resources/cl-if.cfg deleted file mode 100644 index d97b3a73..00000000 --- a/resources/cl-if.cfg +++ /dev/null @@ -1,42 +0,0 @@ -Include cl-common.cfg - -Style InterfaceOnly - -ClassJavadoc CL /** -ClassJavadoc CL * Java bindings to OpenCL, the Open Computing Language. -ClassJavadoc CL * @author Michael Bien, GlueGen, et al. -ClassJavadoc CL */ -JavaClass CL - -Extends CL CLContextBinding -Extends CL CLProgramBinding -Extends CL CLKernelBinding -Extends CL CLCommandQueueBinding -Extends CL CLDeviceBinding -Extends CL CLImageBinding -Extends CL CLBufferBinding -Extends CL CLSamplerBinding -Extends CL CLEventBinding -Extends CL CLPlatformBinding - -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLContextBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLProgramBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLKernelBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLCommandQueueBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLDeviceBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLMemObjBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLImageBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLBufferBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLSamplerBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLEventBinding.java -ExtendedInterfaceSymbolsIgnore gensrc/java/com/jogamp/opencl/llb/CLPlatformBinding.java - -#ignore cl-gl interoperability functions. Interface 'CL' is pure OpenCL. -Ignore CL_GL_.*|cl.*GL.*|.*_GL_.* - -Ignore clCreateContext -Ignore clCreateContextFromType -Ignore clBuildProgram -Ignore clEnqueueNativeKernel -Ignore clSetEventCallback -Ignore clSetMemObjectDestructorCallback diff --git a/test/com/jogamp/opencl/CLCommandQueueTest.java b/test/com/jogamp/opencl/CLCommandQueueTest.java index 57689818..a83acda2 100644 --- a/test/com/jogamp/opencl/CLCommandQueueTest.java +++ b/test/com/jogamp/opencl/CLCommandQueueTest.java @@ -29,7 +29,6 @@ package com.jogamp.opencl; import org.junit.Rule; -import org.junit.rules.MethodRule; import org.junit.rules.Timeout; import java.util.concurrent.CountDownLatch; import com.jogamp.opencl.util.MultiQueueBarrier; @@ -59,9 +58,8 @@ import static com.jogamp.opencl.CLCommandQueue.Mode.*; */ public class CLCommandQueueTest { - @SuppressWarnings("deprecation") @Rule - public MethodRule methodTimeout= (MethodRule) new Timeout(20000); + public Timeout methodTimeout = new Timeout(20000); @Test public void enumsTest() { diff --git a/test/com/jogamp/opencl/util/concurrent/CLMultiContextTest.java b/test/com/jogamp/opencl/util/concurrent/CLMultiContextTest.java index 81d34907..818827c6 100644 --- a/test/com/jogamp/opencl/util/concurrent/CLMultiContextTest.java +++ b/test/com/jogamp/opencl/util/concurrent/CLMultiContextTest.java @@ -16,7 +16,6 @@ import java.nio.IntBuffer; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import org.junit.Rule; -import org.junit.rules.MethodRule; import org.junit.rules.Timeout; import com.jogamp.opencl.util.CLMultiContext; import java.nio.Buffer; @@ -34,7 +33,7 @@ import static java.lang.System.*; public class CLMultiContextTest { @Rule - public MethodRule methodTimeout= new Timeout(10000); + public Timeout methodTimeout= new Timeout(10000); @Test public void createMultiContextTest() { |