summaryrefslogtreecommitdiffstats
path: root/make/build-test.xml
Commit message (Collapse)AuthorAgeFilesLines
* Implement Bug #598 - JOGL ALL JAR File Change incl. it's Native Jar URL ↵Sven Gothel2012-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Derivation +++ JNILibLoaderBase.addNativeJarLibs(..): Add API doc JNILibLoaderBase: "addNativeJarLibs(Class<?> classFromJavaJar, String allNativeJarBaseName, String[] atomicNativeJarBaseNames)" -> "addNativeJarLibs(Class<?>[] classesFromJavaJars, String singleJarMarker, String[] stripBasenameSuffixes)" Derive the 'all' (1st choice) native JAR URL solely on the given class's JAR URL. Examples: JOCL: // only: jocl.jar -> jocl-natives-'os.and.arch'.jar addNativeJarLibs(new Class<?>[] { JOCLJNILibLoader.class }, null, null ); JOGL: final ClassLoader cl = GLProfile.class.getClassLoader(); // either: [jogl-all.jar, jogl-all-noawt.jar, jogl-all-mobile.jar] -> jogl-all-natives-<os.and.arch>.jar // or: nativewindow-core.jar -> nativewindow-natives-<os.and.arch>.jar, // jogl-core.jar -> jogl-natives-<os.and.arch>.jar, // (newt-core.jar -> newt-natives-<os.and.arch>.jar)? (if available) final String newtFactoryClassName = "com.jogamp.newt.NewtFactory"; final Class<?>[] classesFromJavaJars = new Class<?>[] { NWJNILibLoader.class, GLProfile.class, null }; if( ReflectionUtil.isClassAvailable(newtFactoryClassName, cl) ) { classesFromJavaJars[2] = ReflectionUtil.getClass(newtFactoryClassName, false, cl); } JNILibLoaderBase.addNativeJarLibs(classesFromJavaJars, "-all", new String[] { "-noawt", "-mobile", "-core" } ); Efficiency / Performance: - Reduced JAR URL lookup calls JarUtil.getJarURL(..) - JNILibLoaderBase, Platform, JarUtil - Attempt loading Jar files (native, class, ..) only once - TempJarCache Code Cleanup (IOUtil, JarUtil, : - IOException if not found - IllegalArgumentException if null argument +++ jogamp.android-launcher.jar -> jogamp-android-launcher.jar +++
* Fix Android Remote Test: gluegen-rt.apk -> gluegen-rt-android-${android.abi}.apkSven Gothel2012-06-151-1/+1
|
* Fix Bug 583 (2): Remove Android compile-time dependencies and exclude ↵Sven Gothel2012-06-151-1/+1
| | | | | | | | | | | | | | Android specific classes for non Android platforms Ensure same Java JAR content regardless of build target (fix). Separate Android compilation results to gluegen-rt-android.jar, avoiding generating different content of gluegen-rt.jar w/ non android builds. aapt.signed: @{android.abi} argument is 'generic' by default. Adding ${android.abi} to APK target name (gluegen-rt-android-armeabi-v7a.apk) if not generic.
* Dump Local Info on build machine during junit.compileSven Gothel2012-03-281-1/+7
|
* Add 'asset' URLConnection; IOUtil uses URLConnection / incr. effeciency; ↵Sven Gothel2012-03-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Android ClassLoaderUtil cleanup; - Add 'asset' URLConnection - Please read API doc 'PiggybackURLConnection' and 'AssetURLConnection' - Solves generic resource handling where platform locations may differ, ie ClassLoader lookup on Android in the 'assets/' subfolder. - New Android 'AssetDexClassLoader' uses 'assets/' folder for findResource(..) - aapt.signed (our APK ant task) - uses 'assets/' folder - adds the 'assetsdir' attribute allowing to copy other assets into the APK - IOUtil uses URLConnection / incr. effeciency - using URLConnection on all getResource(..) since URL is connected anyways for validation and URLConnection can be used by caller right away - String getRelativeOf(URL, String) -> URL getRelativeOf(URL, String) - preserves scheme, authority, etc - simple parentOf handling, more efficient - reusing new 'asset' protocol impl. - Android ClassLoaderUtil cleanup; - Use createClassLoader(..) impl for build-in static jogamp and user APKs, which removes code redundancy Tests: New code path, especially 'assets' are covered by new unit tests, no regressions on Linux.
* Android: New ActivityLauncher (jogamp.android-launcher.apk)Sven Gothel2012-03-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActivityLauncher provides delegating Activities, allowing the user to: - daisy chain custom APK classes and native libraries to the classpath - name one custom activity which gets delegated to, the downstream activity Overview: [User:a1] -- (usr-data) --> [Launcher] -> [User:a2] + using [other packages..] [User APK] - The user provided APK [JogAmp APK] - JogAmp APKs [User:a1] - The initial user activity, which starts the [Launcher]. Providing data to [Launcher]: [User:a2], [User APK] Resides in [User APK] [User:a2] - The actual downstream 'real' activity, spoiled w/ full fledged ClassLoader having access to all packages as requested, ie. [User APK], .. Resides in [User APK] [Launcher] - The launcher activity. Gets called by [User:a1]. Creates a new ClassLoader, daisy chainging all requested APKs. Instantiates [User:a2] w/ new ClassLoader. Delegates all calls to [User:a2]. Resides in [JogAmp APK].
* android remote adb test fixes: (1) Add connect; (2) Remove overriding ↵Sven Gothel2012-03-101-1/+3
| | | | | | | | | | explicit BOOTCLASSPATH, use default. (2) Android 4.0.3 LEB 12.02 / Pandaboard requires the original BOOTCLASSPATH, otherwise dependencies are broken and dalvikvm crashes. Adding 'our' ant-junit-all.apk to 'complete' the set of our required junit/ant classes seems to work well on V. 2.3.6 (Samsung Galaxy S) and V. 4.0.3.
* Don't build and use gluegen.apk (compile time only) ; Don't test classloader ↵Sven Gothel2012-03-071-1/+1
| | | | | | -> JarURL on Android All [remaining] tests passed on Android!
* android test: Specify 'java.io.tempdir' and add TestJarsInJar.apk / Disable ↵Sven Gothel2012-03-071-1/+3
| | | | most of tests in TestJarUtil
* android build/test fixes and refinementSven Gothel2012-03-071-4/+18
| | | | | | | | | | | | | | | | | | | | | remote test fix: - run targetcommand w/ explicit root via 'su' - rsync: more excludes, only use '-rt' - explicit chmod 644 on results - adb commands include naming of remote machine: -s ${env.TARGET_IP}:${env.TARGET_ADB_PORT} GlueGen-cpptasks-android-armv7: - use unique project name (warning) - gcc + -fpic -D__unix__ - ld + -fpic -nostdlib -Bdynamic -Wl,-dynamic-linker,/system/bin/linker -Wl,-z,nocopyreloc explicit add 'dl' to list of libs
* Changes to make gluegen build with NDK r7Edwin Vane2012-02-281-1/+3
| | | | | | | | | | | | | | | | | | | | - A bug in cpptasks was getting in the way of a working build with NDK r7. A local patch to cpptasks fixed the bug. - The patch is added as make/lib/cpptasks_gcclinker.patch and applies cleanly to cpptasts @ revision 177. - The result of building cpptasks r177 with this patch is part of the commit as well. - Cleaned up and simplified the android cross-compile script in make/scripts. - Cleaned up arguments passed to gcc for compiling and linking to look more like the command lines used for building NDK samples. - Some differences are necessary as cpptasks won't let us specify any binary other than 'gcc' for building. See gluegen-cpptasks-android-armv7.xml for comments on the matter. - Thinking forward to x86 support, generalized jogamp-androidtasks.xml to install the gluegen shared library in a subdirectory of image/lib named for the targetted ABI for packaging with aapt. This file is no-longer ARM-specific.
* If junit.is.disabled, copy a dummy TEST xml file, otherwisa Jenkins claims ↵Sven Gothel2012-02-241-1/+4
| | | | failure.
* Even if 'junit.is.disabled', we need to produce the test archive (7z), ↵Sven Gothel2012-02-241-1/+4
| | | | otherwise the jenkins build fails.
* Introduce environment-var/property to disable unit tests (per node)Sven Gothel2012-02-241-4/+5
| | | | JUNIT_DISABLED -> junit.is.disabled
* minor: verbose outputSven Gothel2012-02-241-2/+2
|
* Add gluegen.basename property, allowing to pass the JOB_NAME to the find ↵Sven Gothel2012-02-241-9/+15
| | | | location
* Add required NODE_LABEL, ie label/linux-armv7-img, allowing to find the ↵Sven Gothel2012-02-241-7/+7
| | | | proper path for jenkins builds
* fix targetcommand.sh name on targetSven Gothel2012-02-241-4/+4
|
* Exposing custom gluegen-cpptask.file for crosscompilation presets, adding ↵Sven Gothel2012-02-241-4/+4
| | | | | | gluegen-cpptasks-linux-armv7.xml Env: GLUEGEN_CPPTASKS_FILE -> property: gluegen-cpptasks.file
* Passing environment-vars and ant-properties to junit tests, enabling fine ↵Sven Gothel2012-02-231-1/+6
| | | | | | | | | | | grained controll of test behavior. Environment vars, mapped to properties: JUNIT_RUN_ARG0 -> junit.run.arg0 JUNIT_RUN_ARG1 -> junit.run.arg1 This allows us to disable ScreenMode on Linux-ARM-Omap4 for example, where XRandR calls consume up to 3s per test.
* Fix crosstests (TestJarUtil and PCPP)Sven Gothel2012-02-191-2/+2
|
* Fix linux-armv7 crosscompilationSven Gothel2012-02-191-1/+0
|
* javac - setup encoding to UTF-8Sven Gothel2012-01-231-0/+1
|
* Fix Bug 516 (Determine Java Version); Minor fixes (jogamp/common/** ..)Sven Gothel2012-01-221-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current minimum requirements are: - Java 1.6 (Level 6.0) - Android SDK API Level 9 (Version 2.3 Gingerbread) Official production builds are performed w/ Java 1.6. - Java 1.6 (Level 6.0) - Android SDK API Level 9 (Version 2.3 Gingerbread) Android supports Java language level 6.0. Nevertheless, it cannot be guaranteed whether the Android API supports all classes and methods of Java 1.6. It is required for JogAmp developers to validate Android compatibility by an Android crosscompilation build. Current GlueGen code utilizes some minor Java 1.6 features which could be replaced, however it's not desired at this point since we have no mode hard Java 1.5 constraints. Notes: - On OS X 10.5.8, only the 64bit version of Java6 is available and hence the only supported one on Leopard. +++ Pushing determination of host (compiletime) and target (runtime) Java version to 'jogamp-env.xml'. jogamp-env.xml uses: env: SOURCE_LEVEL -> propery: target.sourcelevel def.: ${ant.java.version} >=1.6 (!) env: TARGET_LEVEL -> propery: target.targetlevel def.: ${ant.java.version} >=1.6 (!) env: TARGET_RT_JAR -> propery: target.rt.jar def.: ${java.home}/lib/rt.jar Either all above values are set, or none at all (default), otherwise a build error is being thrown. Further more we have the compiletime properties: host.sourcelevel def.: ${ant.java.version} >= 1.6 (!) host.targetlevel def.: ${ant.java.version} >= 1.6 (!) host.rt.jar def.: ${java.home}/lib/rt.jar +++ - 'javac.memorymax' defaults to 1024m now.
* junit.run: Add 32bit tests for OSX (fat binaries)v2.0-rc5Sven Gothel2011-12-181-4/+24
|
* Add 'TestJarsInJar.jar' test JAR file for upcoming JarUtil tests (Jar in Jar).Sven Gothel2011-11-291-2/+4
|
* Generalize jvm-data-model-arg 'jvmDataModel.arg', set do -d64, -d32 or ↵Sven Gothel2011-10-181-6/+2
| | | | dummy-value properly
* Fix Solaris gcc args ; Adding JVM arch flags (-d32/-d64)Sven Gothel2011-10-181-0/+5
|
* crosstest rsync, drop src zipSven Gothel2011-08-051-2/+2
|
* crosstest: exclude .git as wellSven Gothel2011-08-051-2/+2
|
* crosstest: add rsync excludesSven Gothel2011-08-051-2/+8
|
* aapt.signed: add androidresources.path argument ; sdk >= 9 ; test ↵Sven Gothel2011-08-051-0/+1
| | | | uses-library com.jogamp.common
* Android: Drop android.jar ; Simplify 'aapt.signed' ; Move our android ↵Sven Gothel2011-08-021-1/+1
| | | | | | | | | | | | | | | | resources -> make/resources Drop android.jar - version 8 and 9 - license: apache v2 (NOTICE.txt included) - allows compilation using Android API on all platforms Simplify 'aapt.signed' - removed 'jarclasspathrefid', seems to be not needed (commented out) Move our android resources make/lib/android -> make/resources/android - make/lib is for 3rd party stuff only
* Fix Android apk activity; Add apk VersionName; Add jar manifest to apkSven Gothel2011-07-281-1/+1
| | | | | | | | | | | | | | | | - 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
* Fix android build/unit-test ; Generalize aapt packaging (macro) ; Use jogamp ↵Sven Gothel2011-07-281-6/+9
| | | | | | | | | | | | | | | | icons make/scripts/make.gluegen.all.android-armv7-cross.sh - make Rami and me happy :) - 3 default locations plus recognize user provided android toolkit path - fixes using ant targets as arguments make/jogamp-androidtasks.xml - macro aapt.signed: create signed apk file from jar - incl. adding native libraries - see macro doc. adding generic jogamp icons/images
* Cross JUnit Tests - All Passed: Android+Linux armv7Sven Gothel2011-07-251-79/+74
| | | | | | | | | | | - 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.
* Complete android apk creation and cont. unit test launch. Need to write unit ↵Sven Gothel2011-07-241-32/+24
| | | | test commands to file - too long for single adb shell command
* Android integration / cross-test ; Enhance PlatformSven Gothel2011-07-241-0/+59
| | | | | | | | | | | - 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 ?)
* fix cross test: Test* -> *Test* ; Reduce iterations further for ARM to ↵Sven Gothel2011-07-231-1/+1
| | | | speedup test
* Enable cross-testing on linux-armv7Sven Gothel2011-07-231-4/+92
|
* GlueGen proper size / alignment of primitive and compound types usage [1/2] ↵Sven Gothel2011-07-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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, ..
* test ant: using target.sourcelevel, host.sourcelevel, javacdebug and ↵Sven Gothel2011-04-201-2/+11
| | | | javacdebuglevel for compilation
* Fix archive.7z: unset property destfile.path. gluegen-archivetasks.xml -> ↵Sven Gothel2011-02-241-1/+1
| | | | jogamp-archivetasks.xml
* fix jogamp-env.xml ; uses env vars BUILD_ARCHIVE=true|yes and NODE_NAME if setSven Gothel2011-02-231-1/+2
|
* Intro jogamp-env.xml to parse common env properties ; Fix archive.7z: use ↵Sven Gothel2011-02-231-1/+1
| | | | abs path
* Provide task 'archive.7z' and use it instead of zipSven Gothel2011-02-231-4/+5
|
* Use NODE_NAME env var to determine test archiveSven Gothel2011-02-231-1/+1
|
* archive test resultsSven Gothel2010-12-151-0/+374