| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
sizeof(long double) == 8
|
| |
|
|
|
|
| |
of parent if !exist
|
|
|
|
| |
'true' - allowing to disable usage of TempJarCache.
|
|
|
|
| |
Platform static init after loading native library.
|
|
|
|
| |
Certificates if caller has any. Add Convenient JNILibLoaderBase.addNativeJarLibs(..) method.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TempJarCache.bootstrapNativeLib(..) usage
- Moving to Platform solves former interdependencies between GlueGenJNILibLoader/Platform
- TempJarCache is being setup w/ bootstraping the gluegen-rt native lib jar file.
Interesting here is that when using Oracle's JRE w/ Applets/JNLP the
current dbg output is:
gluegen-rt: url-root http://risa/deployment/test/jau02s/jar/
gluegen-rt: nativeJarURL jar:http://risa/deployment/test/jau02s/jar/gluegen-rt-natives-linux-amd64.jar!/
gluegen-rt: nativeJar /home/sven/.java/deployment/cache/6.0/49/3c6d1e31-2c90f42e
IE the JRE implementation already deduces the online link to the Applet/JNLP cache.
This makes the implementation much simpler, ie. same for application and Applets/JNLP.
Have to verify w/ other Java impl. sure - and add same logic for the JOGL part.
|
|
|
|
|
|
|
|
| |
gluegen-rt native lib as well
- removed redundance
- move proper JNLPAppletLauncher custom libloader code into JNILibLoaderBase
- prepares for new JAR temp cache ..
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- NativeLibrary:
- add isValidNativeLibraryName(..)
- generic style
- Platform
- add getOSAndArch(), getOSAndArch(..)
- IOUtil
- add getClassFileName(..)
- add getBasename(..)
- add getDirname(..)
- added doc
- ReflectionUtil
- generic style
|
|
|
|
| |
for int/size() for less temp objects
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
last entry is loaded
aapt build check fix
- exe aapt if source are newer than apk
DynamicLibraryBundle.isGlueLibComplete() == true if last entry is loaded
- fix long standing bug, where GlueLib was not complete if preload dependencies were missing.
this even lead to JOGL specific handling of this case .. duh.
- added debug info
|
|
|
|
|
|
|
| |
GluegenVersionActivity uses ApplicationContext
Hide DynamicLinker impl.:
- com.jogamp.common.os.*DynamicLinkerImpl -> jogamp.common.os
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- build:
- exclude android packages if !isAndroid
- aapt:
- Use individual AndroidManifest xml files
- optional: incl. our JAR manifest file to support detailed version info
- use def. GluegenVersionActivity
- APK VersionName: Retrieve and show
- package/extension names:
- gluegen.jar/apk: com.jogamp.gluegen
- gluegen-rt.jar/apk: com.jogamp.common
|
|
|
|
|
|
|
|
|
|
|
| |
- junit.cross targets:
- use scripting to save time, ie write all target commands to script, xfer, exec
- junit: delete result folder just before junit.run
- Test BuildEnvironment.java: Simplify path config via properties (for android)
- AndroidVersion: No annoying exception dump if Build$VERSION* is not found (not android)
- launch scripts: use absolute TARGET_ROOT path for dynamic linker env.
|
|
|
|
|
|
|
|
|
|
|
| |
- android minor build fix
- started dex'ing (gluegen-rt.apk, more to come for full junit tests)
- android remote dalvikvm launch works (crosstest-java-android-armv7-rel.sh)
- android detection, incl version (reflection)
- Platform:
- Add JAVA_VM_NAME and JAVA_VM_RUNIME
- OSType maybe ANDROID, where the OS name (String) is Linux ! (ok ?)
|
|
|
|
| |
DEBUG and DEBUG_LOOKUP was removed, re-added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fin
MachineDesction == MD
MD.StaticConfig:
- enum for all supported static configs (ID -> MD)
- verified at runtime: test runtime queried-MD versus static-MD,
hard fail if not compatible (size/alignment)
SizeThunk primitive sizes:
- Add notion of fixed native size (eg. int64_t) and otherwise (eg. long)
java struct 'wrappers' code generation:
- single class using size/offset arrays of all MachineDescription configurations
- at runtime the array idx is queried in static block
- type aligment for not fixed-native-size types (SizeThunk, undef long/int) via StructAccessor
junit test:
- add float test
- fix native code
- add java (create, write) -> native (verify) test
works (tested) on: linux 32/64 and windows 32/64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Platform:
- enum CPUFamily is part of CPUType
- DALVIK -> ANDROID
- ARM: ARM + ARMv[567]
MachineDescription
- self contained
- static size/alignment Config (enum) for unix32, unix64, win32, win64 and armeabi
- add 'long double'
- Removed MachineDescription32Bit, MachineDescription64Bit
- createStatic(..) uses OS/CPU to fetch best match if not at runtime
FIXES: JavaEmitter's struct-emit: Proper 32/64 struct sizes
TODO: StructAccessor's mapping to <Type>Buffer w/ index os sizeof(<Type>)
doesn't work, since offset may not be multiple of sizeof(<Type>)!
i.e.
typedef struct {
int8_t bits1; // +1 - 0
// +3 (p32)
int32_t id; // +4 - 4
int8_t bits2; // +1 - 8
// +3 (p32) -
int64_t long0; // +8 - 12
so "longBuffer.get(<type-sized index>)" is invalid,
but "byteBuffer.getLong(<byte index>)" must be done.
The actual impl. doesn't matter, hence dropping the other nio type mappings is good.
|
|
|
|
|
|
|
|
|
|
| |
- SizeThunk
- rename: compute -> computeSize
- add: computeAlignment
- merge types: char -> int8, short -> int16
- 'int' and 'long' may differ
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Preparation.
Currently GlueGen fails for type long (size) and some alignments (see package.html).
- The size and alignment values shall be queried at runtime.
- Compound alignment needs to follow the described natural alignment (also @runtime).
-
- Build
- add Linux Arm7 (EABI)
- junit test
- added compound/struct tests, pointing out the shortcomings of current impl.
- package.html
- Added alignment documentation
- remove intptr.cfg
- add GluGen types int8_t, int16_t, uint8_t, uint16_t
- move MachineDescription* into runtime
- Platform
- has runtime MachineDescription
- moved size, .. to MachineDescription
- use enums for OSType, CPUArch and CPUType defined by os.name/os.arch,
triggering exception if os/arch is not supported.
This avoids Java String comparison and conscious os/arch detection.
- MachineDescription:
- compile time instances MachineDescription32Bits, MachineDescription64Bits
- runtime queried instance MachineDescriptionRuntime
- correct size, alignment, page size, ..
|
|
|
|
| |
IOUtil and Platform's page size
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- Platform is now useable without gluegen-rt libs in library path.
- JogampVersion: fixed equals, added Impl url to manifest.
- VersionUtil: getManifest should be now more relieable and passed all manual tests, e.g java jar lib.jar without specified classpath.
|
| |
|
| |
|
| |
|
|
|
|
| |
changes
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added JogAmp Community and common denominator:
New BSD 3-clause license
- Added note to make/lib binary file (source and license)
Added source and license text for external binaries used
in build process (make/lib folder).
Changed 'Sven Gothel' and 'Michael Bien' New BSD 3-clause license
to 'JogAmp Community' Simplified BSD 2-clause license.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
loading and lookup
Add JNILibLoaderBase.loadLibrary(String libname, boolean ignoreError);
DynamicLibraryBundle provides Tool and JNI native library loading and lookup
New classes:
com.jogamp.common.os.DynamicLibraryBundle
com.jogamp.common.os.DynamicLibraryBundleInfo
com.jogamp.common.util.MiscUtils.java
Change: DEBUG/VERBOSE properties 'gluegen' -> 'jogamp'
|
|
|
|
|
|
|
|
|
|
|
|
| |
Buffers add 'float[] getFloatArray(double[])' conversion,
ready to replace all JOGL InternalBufferUtil's.
NativeLibrary/DynamicLinker add global lookup method
allowing Unices and OSX to lookup a symbol globally.
However, this is not recommended, due to the lookup costs.
Windows is not supported here.
Primitive type HashMap's (IntIntHashMap): Added putAll()
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed junit test: test1
- Create seperate native libraries to reflect a real world example:
test1 - the library to bind to (no more declaring __stdcall @nn functions)
BindingTest1p1 - the dynamic fixed linkage binding test1p1,
references dynamic library test1 at linktime.
BindingTest1p2 - the dynamic runtime linkage binding test1p2,
loads dynamic library test1 at runtime.
Generic:
- gluegen-cpptasks-base.xml
- target 'gluegen.cpptasks.detect.os'
Set new property 'system.env.library.path'
DYLD_LIBRARY_PATH (macosx)
LD_LIBRARY_PATH (unix)
PATH (windows)
- target 'gluegen.cpptasks.striplibs'
Strips the symbols out of the native libraries
in case c.compiler.debug is false.
Maybe configured with the properties:
c.strip.tool, c.strip.args
- Using system.env.library.path in junit call
to find the test1 library in case of runtime linkage and lookup (test1p2).
- Use gluegen.cpptasks.striplibs for all native libs ..
- Added macosx32 in analogy to macosx64, both defaults to true now
- com.jogamp.common.os.WindowsDynamicLinkerImpl:lookupSymbol()
- Added lookup for __stdcall @nn (stepping alignment 4, max-args: 12)
in case no undecorated __cdecl symbol is found.
Fixed Windows platform:
- Use proper path.seperator on Windows.
- test1.dll needs proper soname inside for fixed linkage (test1p1)
hence the output name must be test1.dll, not libtest1.so
+++
http://jogamp.org/bugzilla/show_bug.cgi?id=394
Fix MacOsX platform:
The commit of cpptasks.jar, git hash 129e783741d91e9ee5cd7da5d5c962c32ec96b0b,
broke the universal binary build on MacOSX.
The above change used cpptasks-1.05b with a few patches in regards to crosscompilation,
but missed one, which accepts the '-arch' argument for GccLinker undecorated.
The new cpptasks.jar is vanilla 1.05b + cpptasks-1.0b5-darwin-patch.diff,
the latter a more refined one.
This version accepts the '-arch' argument undecorated on the darwin platform.
+++
|
|
|