From 0253aaf391faeed95b45fe92ff76fa71041eb511 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 11 Jul 2014 03:13:08 +0200 Subject: Bug 1024: Add fallback for native-jar-file location via classpath Adapt to GlueGen commit f5c48efcf546ba4e08e197ccced6df83b57e1755 --- make/build.xml | 36 +++++++---- make/joclversion-natives | 18 ++++++ .../llb/impl/CLDynamicLibraryBundleInfo.java | 2 +- src/jogamp/opencl/Debug.java | 75 ++++++++++++++++++++++ 4 files changed, 116 insertions(+), 15 deletions(-) create mode 100644 make/joclversion-natives create mode 100644 src/jogamp/opencl/Debug.java 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 @@ - - - - - - - - + + + + + + + + + + + + @@ -695,7 +705,7 @@ @@ -708,7 +718,7 @@ - + @@ -719,7 +729,7 @@ - + @@ -730,8 +740,6 @@ - - @@ -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}" /> 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-.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() { + @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); + } +} -- cgit v1.2.3