diff options
author | Sven Gothel <[email protected]> | 2010-04-08 02:22:12 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2010-04-08 02:22:12 +0200 |
commit | 7cc4bb2a8bcc4c16b6a12826abbd874bf38f9dc1 (patch) | |
tree | eb932553d0f9b36dbe6d703356502bf352cc6eca /make/build.xml | |
parent | 82ac66ba1e7494b0a76a2063f0d56d3b785c6c31 (diff) |
http://jogamp.org/bugzilla/show_bug.cgi?id=393
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.
+++
Diffstat (limited to 'make/build.xml')
-rwxr-xr-x | make/build.xml | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/make/build.xml b/make/build.xml index 6b51f7e..c41f21c 100755 --- a/make/build.xml +++ b/make/build.xml @@ -51,6 +51,9 @@ <property name="src.java" value="../src/java" /> <property name="build" value="../${rootrel.build}" /> + <property name="gluegen.lib.dir" value="${build}/obj"/> + + <!-- The generated source directories. --> <property name="src.generated" value="${build}/gensrc" /> <property name="src.generated.java" value="${src.generated}/java" /> @@ -341,10 +344,7 @@ <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition> - <!--namespace can be overwritten from outside--> - <property name="namespace" value=""/> - - <mkdir dir="${build}/obj/${namespace}" /> + <mkdir dir="${gluegen.lib.dir}"/> <property name="c.compiler.src.files.common" value="src/native/common/*.c" /> @@ -352,8 +352,8 @@ <echo message="user.dir=${user.dir}" /> <cc outtype="shared" - objdir="${build}/obj/${namespace}" - outfile="${build}/obj/${namespace}/${output.lib.name}" + objdir="${gluegen.lib.dir}" + outfile="${gluegen.lib.dir}/${output.lib.name}" optimize="${c.compiler.optimise}" debug="${c.compiler.debug}" multithreaded="true" @@ -385,6 +385,11 @@ <antcall target="c.rename.lib.mingw" inheritRefs="true" /> <antcall target="c.rename.lib.macosx" inheritRefs="true" /> + + <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true"> + <param name="libdir" value="${gluegen.lib.dir}"/> + </antcall> + <antcall target="c.manifest" inheritRefs="true" /> <!-- Create Java Web Start jar file from built file --> <jar destfile="${build}/gluegen-rt-natives-${os.and.arch}.jar"> @@ -572,7 +577,7 @@ </delete> </target> - <target name="test" depends="init, junit.run"> + <target name="test" depends="init, gluegen.cpptasks.detect.os, junit.run"> <mkdir dir="${build}/test/build/classes"/> <mkdir dir="${build}/test/results"/> @@ -583,7 +588,8 @@ </javac> <junit forkmode="once" showoutput="true" fork="true"> - <jvmarg value="-Djava.library.path=${build}/test/build/natives"/> + <env key="${system.env.library.path}" path="${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/> + <jvmarg value="-Djava.library.path=${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/> <jvmarg value="-Drootrel.build=${rootrel.build}"/> <jvmarg value="-Dos.arch=${os.arch}"/> <jvmarg value="-Dgluegen.user.compiler.file=${gluegen.user.compiler.file}"/> |