SDK: Add build support for Android implementation of OpenAL Soft

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10610 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
iwg..om 12 years ago
parent 785d50f516
commit c1402b30e9
  1. 4
      engine/build.xml
  2. 3239
      engine/nbproject/build-impl.xml
  3. 105
      engine/nbproject/build-openal-soft-natives.xml
  4. 2
      engine/nbproject/configs/Native_OpenAL_Soft.properties
  5. 23
      engine/nbproject/openal-soft-native.properties
  6. 265
      engine/nbproject/project.properties
  7. 91
      engine/nbproject/project.xml

@ -19,6 +19,10 @@
</exec> </exec>
</target> </target>
<target name="build-openal-soft-natives" description="uses native build tools to build the openalsoftjme shared library for Android" depends="jar">
<ant antfile="nbproject/build-openal-soft-natives.xml" target="build-openal-soft-natives"/>
</target>
<target name="-do-compile" description="Overrides default compile target to separate the build into folders" depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources"> <target name="-do-compile" description="Overrides default compile target to separate the build into folders" depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources">
<mkdir dir="${build.dir}/core"/> <mkdir dir="${build.dir}/core"/>
<mkdir dir="${build.dir}/effects"/> <mkdir dir="${build.dir}/effects"/>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="build openal-soft natives" default="all" basedir="../">
<!-- load cpp compiler ant task -->
<taskdef resource="cpptasks.tasks" classpath="lib/antlibs/cpptasks.jar"/>
<!-- load properties -->
<property file="nbproject/openal-soft-native.properties"/>
<condition property="ndk-build-name" value="ndk-build.cmd" else="ndk-build">
<os family="windows" />
</condition>
<fileset id="lib.jars" dir="${openal-soft.lib.dir}">
<include name="**/*.jar"/>
</fileset>
<fileset id="lib.jme.jars" dir="${openal-soft.jme.dir}">
<include name="**/*.jar"/>
</fileset>
<pathconvert property="lib.importpath">
<fileset refid="lib.jars"/>
<fileset refid="lib.jme.jars"/>
</pathconvert>
<target name="build-openal-soft-natives" description="builds the native openal-soft library for android" depends="create-native-headers, -create-folders, compile-android">
<echo message="Updating native jME3-openal-soft-natives.jar"/>
<zip basedir="${openal-soft.output.dir}" file="${openal-soft.output.base}/jME3-openal-soft-natives-android.jar" compress="true"/>
<copy file="${openal-soft.output.base}/jME3-openal-soft-natives-android.jar" todir="dist/opt/native-openal-soft/"/>
</target>
<target name="create-native-headers" description="creates the native C++ headers for the java native methods">
<javah destdir="${openal-soft.source.dir}" classpath="${openal-soft.build.dir}${path.separator}${lib.importpath}">
<class name="com.jme3.audio.android.AndroidOpenALSoftAudioRenderer"/>
</javah>
</target>
<target name="-create-folders" description="creates the needed folders">
<mkdir dir="${openal-soft.build.dir}"/>
<mkdir dir="${openal-soft.build.dir}/jni"/>
<mkdir dir="${openal-soft.output.base}"/>
<mkdir dir="${openal-soft.output.dir}"/>
</target>
<target name="compile-android" description="compiles libopenalsoftjme using the Android NDK" depends="-check-android-ndk" if="haveAndoidNdk">
<!-- copy OpenAL Soft files into jni directory -->
<echo>Copying OpenAL Soft source files to build directory from ${openal-soft.include}</echo>
<copy todir="${openal-soft.build.dir}/jni" verbose="true" flatten="false" overwrite="true">
<fileset dir="${openal-soft.include}">
<include name="**/*.*"/>
<!--
<include name="**/*.cpp"/>
<include name="**/*.h"/>
<include name="**/*.cl"/>
<include name="**/*.c"/>
<include name="**/*.inc"/>
<exclude name="/android/*.*"/>
<include name="**/*.*" />
-->
</fileset>
</copy>
<!-- copy jME3 Native OpenAL Soft files into jni directory -->
<!--
<echo>Copying jME3 JNI files for OpenAL Soft to build directory from ${openal-soft.source.dir}</echo>
<copy todir="build/openal-soft-android/jni" verbose="true" flatten="false" overwrite="true">
<fileset dir="${openal-soft.source.dir}">
<include name="*.cpp" />
<include name="*.h" />
<include name="**/*.*" />
</fileset>
</copy>
-->
<!-- copy Android.mk and Application.mk files into jni directory -->
<echo>Copying Android Make and JNI files for OpenAL Soft to build directory from ${openal-soft.source.dir}</echo>
<copy todir="${openal-soft.build.dir}/jni" verbose="true" flatten="false" overwrite="true">
<fileset dir="${openal-soft.source.dir}">
<include name="*.*" />
</fileset>
</copy>
<!--
<copy file="${openal-soft.source.dir}/Android.mk" todir="build/openal-soft-android/jni" verbose="true"/>
<copy file="${openal-soft.source.dir}/Application.mk" todir="build/openal-soft-android/jni" verbose="true"/>
-->
<exec executable="${ndk.dir}/${ndk-build-name}" failonerror="true" >
<!--<arg line="NDK_DEBUG=1"/>-->
<arg line="TARGET_PLATFORM=android-9"/>
<arg line="-C ${openal-soft.build.dir}/"/>
</exec>
<!-- copy resulting library directories to jarcontent directory -->
<copy todir="${openal-soft.output.dir}" verbose="true" flatten="false">
<fileset dir="${openal-soft.build.dir}/libs">
<include name="**/*.*"/>
<!--exclude name="**/x86/*.*"/-->
</fileset>
</copy>
</target>
<target name="-check-android-ndk">
<available file="${ndk.dir}/${ndk-build-name}" property="haveAndoidNdk"/>
</target>
</project>

@ -0,0 +1,2 @@
$label=Native OpenAL Soft
$target.build=build-openal-soft-natives

@ -0,0 +1,23 @@
##########################################################
# these are the ant build properties for openal-soft-jme #
##########################################################
# location of Android NDK if available
ndk.dir=D:/android/android-ndk-r7
# directory of OpenAL Soft download
openal-soft.folder=../openalsoft_1_15_1/openal-soft
# compile options
openal-soft.compile.debug=false
# native header include directories
openal-soft.java.include=${java.home}/../include
# dont change these..
openal-soft.include=${openal-soft.folder}
openal-soft.source.dir=src/openal-soft-native/android
openal-soft.build.dir=build/openal-soft/
openal-soft.output.base=lib/openal-soft
openal-soft.output.dir=${openal-soft.output.base}/jarcontent
openal-soft.jme.dir=dist
openal-soft.lib.dir=dist/lib

@ -1,132 +1,133 @@
annotation.processing.enabled=false annotation.processing.enabled=false
annotation.processing.enabled.in.editor=false annotation.processing.enabled.in.editor=false
annotation.processing.processors.list= annotation.processing.processors.list=
annotation.processing.run.all.processors=true annotation.processing.run.all.processors=true
ant.customtasks.libs=JWSAntTasks ant.customtasks.libs=JWSAntTasks
application.homepage=http://www.jmonkeyengine.com/ application.homepage=http://www.jmonkeyengine.com/
application.title=jMonkeyEngine 3.0 application.title=jMonkeyEngine 3.0
application.vendor=jMonkeyEngine application.vendor=jMonkeyEngine
build.classes.dir=${build.dir}/classes build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form,**/*.m build.classes.excludes=**/*.java,**/*.form,**/*.m
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
build.dir=build build.dir=build
build.generated.dir=${build.dir}/generated build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here: # Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport: # Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket #debug.transport=dt_socket
debug.classpath=\ debug.classpath=\
${run.classpath} ${run.classpath}
debug.test.classpath=\ debug.test.classpath=\
${run.test.classpath} ${run.test.classpath}
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
dist.dir=dist dist.dir=dist
dist.jar=${dist.dir}/jMonkeyEngine3.jar dist.jar=${dist.dir}/jMonkeyEngine3.jar
dist.javadoc.dir=${dist.dir}/javadoc dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath= endorsed.classpath=
excludes= excludes=
file.reference.src-test-data=src/test-data file.reference.src-test-data=src/test-data
includes=** includes=**
jar.archive.disabled=${jnlp.enabled} jar.archive.disabled=${jnlp.enabled}
jar.compress=true jar.compress=true
jar.index=${jnlp.enabled} jar.index=${jnlp.enabled}
javac.classpath=\ javac.classpath=\
${libs.jogg.classpath}:\ ${libs.jogg.classpath}:\
${libs.jbullet.classpath}:\ ${libs.jbullet.classpath}:\
${libs.lwjgl.classpath}:\ ${libs.lwjgl.classpath}:\
${libs.niftygui1.3.classpath}:\ ${libs.niftygui1.3.classpath}:\
${libs.jme3-test-data.classpath}:\ ${libs.jme3-test-data.classpath}:\
${libs.android.classpath}:\ ${libs.android.classpath}:\
${libs.bullet.classpath}:\ ${libs.bullet.classpath}:\
${libs.jogl2.classpath} ${libs.jogl2.classpath}
# Space-separated list of extra javac options # Space-separated list of extra javac options
javac.compilerargs= javac.compilerargs=
javac.deprecation=false javac.deprecation=false
javac.processorpath=\ javac.processorpath=\
${javac.classpath} ${javac.classpath}
javac.source=1.5 javac.source=1.5
javac.target=1.5 javac.target=1.5
javac.test.classpath=\ javac.test.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir}:\ ${build.classes.dir}:\
${libs.junit_4.classpath} ${libs.junit_4.classpath}
javadoc.additionalparam=-protected javadoc.additionalparam=-protected
javadoc.author=false javadoc.author=false
javadoc.encoding=${source.encoding} javadoc.encoding=${source.encoding}
javadoc.noindex=false javadoc.noindex=false
javadoc.nonavbar=false javadoc.nonavbar=false
javadoc.notree=false javadoc.notree=false
javadoc.private=false javadoc.private=false
javadoc.splitindex=true javadoc.splitindex=true
javadoc.use=true javadoc.use=true
javadoc.version=false javadoc.version=false
javadoc.windowtitle=jMonkeyEngine3 javadoc.windowtitle=jMonkeyEngine3
jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api" jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api"
jnlp.applet.class=jme3test.awt.AppHarness jnlp.applet.class=jme3test.awt.AppHarness
jnlp.applet.height=300 jnlp.applet.height=300
jnlp.applet.width=300 jnlp.applet.width=300
jnlp.codebase.type=user jnlp.codebase.type=user
jnlp.codebase.user=http://jmonkeyengine.com/javawebstart/ jnlp.codebase.user=http://jmonkeyengine.com/javawebstart/
jnlp.descriptor=application jnlp.descriptor=application
jnlp.enabled=false jnlp.enabled=false
jnlp.icon=/Users/normenhansen/Pictures/jme/icons/jme-logo48.png jnlp.icon=/Users/normenhansen/Pictures/jme/icons/jme-logo48.png
jnlp.mixed.code=default jnlp.mixed.code=default
jnlp.offline-allowed=true jnlp.offline-allowed=true
jnlp.signed=true jnlp.signed=true
jnlp.signing=generated jnlp.signing=generated
jnlp.signing.alias=engine jnlp.signing.alias=engine
jnlp.signing.keystore= jnlp.signing.keystore=
main.class=jme3test.TestChooser main.class=jme3test.TestChooser
manifest.file=MANIFEST.MF manifest.file=MANIFEST.MF
meta.inf.dir=${src.dir}/META-INF meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false mkdist.disabled=false
platform.active=default_platform platform.active=default_platform
run.classpath=\ run.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir}:\ ${build.classes.dir}:\
${build.dir}/core:\ ${build.dir}/core:\
${build.dir}/effects:\ ${build.dir}/effects:\
${build.dir}/networking:\ ${build.dir}/networking:\
${build.dir}/plugins:\ ${build.dir}/plugins:\
${build.dir}/jogg:\ ${build.dir}/jogg:\
${build.dir}/desktop:\ ${build.dir}/desktop:\
${build.dir}/blender:\ ${build.dir}/blender:\
${build.dir}/terrain:\ ${build.dir}/terrain:\
${build.dir}/jbullet:\ ${build.dir}/jbullet:\
${build.dir}/bullet:\ ${build.dir}/bullet:\
${build.dir}/niftygui:\ ${build.dir}/niftygui:\
${build.dir}/lwjgl:\ ${build.dir}/lwjgl:\
${build.dir}/jogl:\ ${build.dir}/jogl:\
${build.dir}/android:\ ${build.dir}/android:\
${build.dir}/ios ${build.dir}/ios
run.jvmargs=-Xms128m -Xmx128m -XX:MaxDirectMemorySize=256M run.jvmargs=-Xms128m -Xmx128m -XX:MaxDirectMemorySize=256M
run.test.classpath=\ run.test.classpath=\
${javac.test.classpath}:\ ${javac.test.classpath}:\
${build.test.classes.dir} ${build.test.classes.dir}
source.encoding=UTF-8 source.encoding=UTF-8
src.android.dir=src/android src.android.dir=src/android
src.blender.dir=src/blender src.blender.dir=src/blender
src.bullet-common.dir=src/bullet-common src.bullet-common.dir=src/bullet-common
src.bullet-native.dir=src/bullet-native src.bullet-native.dir=src/bullet-native
src.bullet.dir=src/bullet src.bullet.dir=src/bullet
src.core-data.dir=src/core-data src.core-data.dir=src/core-data
src.core-effects.dir=src/core-effects src.core-effects.dir=src/core-effects
src.core-plugins.dir=src/core-plugins src.core-plugins.dir=src/core-plugins
src.core.dir=src/core src.core.dir=src/core
src.desktop.dir=src/desktop src.desktop.dir=src/desktop
src.ios.dir=src/ios src.ios.dir=src/ios
src.jbullet.dir=src/jbullet src.jbullet.dir=src/jbullet
src.jogg.dir=src/jogg src.jogg.dir=src/jogg
src.jogl.dir=src/jogl src.jogl.dir=src/jogl
src.lwjgl.dir=src/lwjgl src.lwjgl.dir=src/lwjgl
src.networking.dir=src/networking src.networking.dir=src/networking
src.niftygui.dir=src/niftygui src.niftygui.dir=src/niftygui
src.ogre.dir=src/ogre src.ogre.dir=src/ogre
src.terrain.dir=src/terrain src.openal-soft-native.dir=src\\openal-soft-native
src.test.dir=src/test src.terrain.dir=src/terrain
src.tools.dir=src/tools src.test.dir=src/test
src.xml.dir=src/xml src.tools.dir=src/tools
test.test.dir=test src.xml.dir=src/xml
test.test.dir=test

@ -1,45 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1"> <project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type> <type>org.netbeans.modules.java.j2seproject</type>
<configuration> <configuration>
<buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1"> <buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1">
<extension file="jnlp-impl.xml" id="jws"> <extension file="jnlp-impl.xml" id="jws">
<dependency dependsOn="jnlp" target="jar"/> <dependency dependsOn="jnlp" target="jar"/>
</extension> </extension>
</buildExtensions> </buildExtensions>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>jMonkeyEngine3</name> <name>jMonkeyEngine3</name>
<minimum-ant-version>1.6.5</minimum-ant-version> <minimum-ant-version>1.6.5</minimum-ant-version>
<source-roots> <source-roots>
<root id="src.core.dir" name="Core"/> <root id="src.core.dir" name="Core"/>
<root id="src.core-data.dir" name="Core-Data"/> <root id="src.core-data.dir" name="Core-Data"/>
<root id="src.core-effects.dir" name="Core-Effects"/> <root id="src.core-effects.dir" name="Core-Effects"/>
<root id="src.core-plugins.dir" name="Core-Plugins"/> <root id="src.core-plugins.dir" name="Core-Plugins"/>
<root id="src.desktop.dir" name="Desktop"/> <root id="src.desktop.dir" name="Desktop"/>
<root id="src.terrain.dir" name="Terrain"/> <root id="src.terrain.dir" name="Terrain"/>
<root id="src.jbullet.dir" name="Java Bullet"/> <root id="src.jbullet.dir" name="Java Bullet"/>
<root id="src.bullet.dir" name="Native Bullet"/> <root id="src.bullet.dir" name="Native Bullet"/>
<root id="src.bullet-native.dir" name="Native Bullet C++"/> <root id="src.bullet-native.dir" name="Native Bullet C++"/>
<root id="src.bullet-common.dir" name="Bullet Common"/> <root id="src.bullet-common.dir" name="Bullet Common"/>
<root id="src.networking.dir" name="Networking"/> <root id="src.networking.dir" name="Networking"/>
<root id="src.niftygui.dir" name="NiftyGUI"/> <root id="src.niftygui.dir" name="NiftyGUI"/>
<root id="src.jogg.dir" name="JOGG"/> <root id="src.jogg.dir" name="JOGG"/>
<root id="src.ogre.dir" name="Ogre"/> <root id="src.ogre.dir" name="Ogre"/>
<root id="src.blender.dir" name="Blender"/> <root id="src.blender.dir" name="Blender"/>
<root id="src.xml.dir" name="XML"/> <root id="src.xml.dir" name="XML"/>
<root id="src.tools.dir" name="Tools"/> <root id="src.tools.dir" name="Tools"/>
<root id="src.test.dir" name="Test"/> <root id="src.test.dir" name="Test"/>
<root id="src.lwjgl.dir" name="LWJGL Renderer"/> <root id="src.lwjgl.dir" name="LWJGL Renderer"/>
<root id="src.jogl.dir" name="JOGL Renderer"/> <root id="src.jogl.dir" name="JOGL Renderer"/>
<root id="src.android.dir" name="Android Renderer"/> <root id="src.android.dir" name="Android Renderer"/>
<root id="src.ios.dir" name="iOS Renderer"/> <root id="src.openal-soft-native.dir" name="OpenAL Soft C++"/>
</source-roots> <root id="src.ios.dir" name="iOS Renderer"/>
<test-roots> </source-roots>
<root id="test.test.dir" name="Unit Test"/> <test-roots>
</test-roots> <root id="test.test.dir" name="Unit Test"/>
</data> </test-roots>
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1"> </data>
<definitions>./lib/nblibraries.properties</definitions> <libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
</libraries> <definitions>./lib/nblibraries.properties</definitions>
</configuration> </libraries>
</project> </configuration>
</project>

Loading…
Cancel
Save