aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-07-11 03:13:08 +0200
committerSven Gothel <[email protected]>2014-07-11 03:13:08 +0200
commit0253aaf391faeed95b45fe92ff76fa71041eb511 (patch)
tree64f76a6904e01b9e60617a34428f681197aa41cb
parent76f64660f4bf9532ea5c9e00d3eac2ad4c9d998b (diff)
Bug 1024: Add fallback for native-jar-file location via classpathv2.2.0
Adapt to GlueGen commit f5c48efcf546ba4e08e197ccced6df83b57e1755
-rw-r--r--make/build.xml36
-rw-r--r--make/joclversion-natives18
-rw-r--r--src/com/jogamp/opencl/llb/impl/CLDynamicLibraryBundleInfo.java2
-rw-r--r--src/jogamp/opencl/Debug.java75
4 files changed, 116 insertions, 15 deletions
diff --git a/make/build.xml b/make/build.xml
index 60f80030..0136199e 100644
--- a/make/build.xml
+++ b/make/build.xml
@@ -676,14 +676,24 @@
</antcall>
<!-- Create Java Web Start jar file from built file -->
- <jar destfile="${build}/jar/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>
+ <copy file="joclversion-natives"
+ tofile="${build}/tempversion-natives"
+ 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>
+ <native.tag.jar objdir="${build}/obj"
+ nativejarfile="${build}/jar/jocl-natives-${os.and.arch}.jar"
+ manifestfile="${build}/tempversion-natives"
+ module="opencl"
+ includelibs="*jocl.${native.library.suffix}" />
+
<!-- Produce duplicates for different configurations, since non-native-jar aliasing (Bug 1023/Bug 1024) -->
<copy file="${build}/jar/jocl-natives-${os.and.arch}.jar" tofile="${build}/jar/jocl-android-natives-${os.and.arch}.jar"/>
</target>
@@ -695,7 +705,7 @@
<target name="jar" depends="init">
<!-- Prepare the manifest -->
<copy file="joclversion"
- tofile="tempversion"
+ tofile="${build}/tempversion"
overwrite="true">
<filterset>
<filter token="VERSION" value="${jogamp.version}"/>
@@ -708,7 +718,7 @@
</copy>
<!-- Build the jar excluding any build specific classes. -->
- <jar manifest="tempversion" destfile="${jocl.jar}">
+ <jar manifest="${build}/tempversion" destfile="${jocl.jar}" filesonly="true">
<fileset dir="${classes}">
<include name="com/jogamp/opencl/**" />
<include name="jogamp/opencl/**" />
@@ -719,7 +729,7 @@
</fileset>
</jar>
- <jar manifest="tempversion" destfile="${jocl-android.jar}">
+ <jar manifest="${build}/tempversion" destfile="${jocl-android.jar}" filesonly="true">
<fileset dir="${classes}">
<include name="com/jogamp/opencl/**" />
<include name="jogamp/opencl/**" />
@@ -730,8 +740,6 @@
</jar>
<antcall target="android.package" inheritRefs="true" />
-
- <delete file="tempversion"/>
</target>
<target name="jocl.build.check.aapt" depends="init">
@@ -754,7 +762,7 @@
android.abi="${android.abi}"
androidmanifest.path="resources/android/AndroidManifest-jocl.xml"
androidresources.path="resources/android/res-jocl"
- jarmanifest.path="tempversion"
+ jarmanifest.path="${build}/tempversion"
version.code="${jogamp.version.int}"
version.name="${jogamp.version}" />
</target>
diff --git a/make/joclversion-natives b/make/joclversion-natives
new file mode 100644
index 00000000..d32e89b6
--- /dev/null
+++ b/make/joclversion-natives
@@ -0,0 +1,18 @@
+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: jogamp.nativetag.opencl
+Implementation-Vendor-Id: com.jogamp
+Trusted-Library: true
+Permissions: all-permissions
+@JAR_CODEBASE_TAG@
+
diff --git a/src/com/jogamp/opencl/llb/impl/CLDynamicLibraryBundleInfo.java b/src/com/jogamp/opencl/llb/impl/CLDynamicLibraryBundleInfo.java
index 8c4dcc60..59bb0723 100644
--- a/src/com/jogamp/opencl/llb/impl/CLDynamicLibraryBundleInfo.java
+++ b/src/com/jogamp/opencl/llb/impl/CLDynamicLibraryBundleInfo.java
@@ -52,7 +52,7 @@ public final class CLDynamicLibraryBundleInfo implements DynamicLibraryBundleInf
if( TempJarCache.isInitialized() ) {
// only: jocl.jar -> jocl-natives-<os.and.arch>.jar
- JNILibLoaderBase.addNativeJarLibs(new Class<?>[] { CLDynamicLibraryBundleInfo.class }, null );
+ JNILibLoaderBase.addNativeJarLibs(new Class<?>[] { jogamp.opencl.Debug.class }, null );
}
return null;
}
diff --git a/src/jogamp/opencl/Debug.java b/src/jogamp/opencl/Debug.java
new file mode 100644
index 00000000..edc04c2f
--- /dev/null
+++ b/src/jogamp/opencl/Debug.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright 2014 JogAmp Community. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of JogAmp Community.
+ */
+
+package jogamp.opencl;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import com.jogamp.common.util.PropertyAccess;
+
+/** Helper routines for logging and debugging. */
+
+public class Debug extends PropertyAccess {
+ // Some common properties
+ private static final boolean verbose;
+ private static final boolean debugAll;
+
+ static {
+ AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
+ PropertyAccess.addTrustedPrefix("jocl.");
+ return null;
+ } } );
+
+ verbose = isPropertyDefined("jocl.verbose", true);
+ debugAll = isPropertyDefined("jocl.debug", true);
+ if (verbose) {
+ final Package p = Package.getPackage("com.jogamp.opencl");
+ System.err.println("JOCL specification version " + p.getSpecificationVersion());
+ System.err.println("JOCL implementation version " + p.getImplementationVersion());
+ System.err.println("JOCL implementation vendor " + p.getImplementationVendor());
+ }
+ }
+
+ /** Ensures static init block has been issues, i.e. if calling through to {@link PropertyAccess#isPropertyDefined(String, boolean)}. */
+ public static final void initSingleton() {}
+
+ public static final boolean verbose() {
+ return verbose;
+ }
+
+ public static final boolean debugAll() {
+ return debugAll;
+ }
+
+ public static final boolean debug(final String subcomponent) {
+ return debugAll() || isPropertyDefined("jocl.debug." + subcomponent, true);
+ }
+}