- Binding to Libusb 1.0

- Adding version information to the library

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@281 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
uniederer
2012-03-30 12:08:45 +00:00
parent 2f5eb043e5
commit cc65dbfa74
16 changed files with 4589 additions and 2082 deletions

View File

@@ -1,97 +1,125 @@
<?xml version="1.0"?>
<!-- ======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project name="LibusbJava" basedir=".">
<!-- ======================================================================
Build file for LibusbJava Shared Library
REQUIREMENTS:
winres (only on windows)
g++
http://libusbJava.sourceforge.net
====================================================================== -->
<project name="LibusbJava" basedir=".">
<description>
Build file for LibusbJava Shared Library
</description>
<property file="project.properties" />
Build file for libusbJava Shared Library
REQUIREMENTS:
g++
http://libusbJava.sourceforge.net
====================================================================== -->
<description>
Build file for libusbJava Shared Library
</description>
<property file="version.properties" />
<property name="version.win.rc" value="${version.major},${version.minor},${version.micro},${version.nano}" />
<property name="version" value="${version.major}.${version.minor}.${version.micro}.${version.nano}" />
<property name="abi" value="0" />
<property name="version" value="${abi}.0.0" />
<property name="ver_info" value="${basedir}/out/LibusbJava.res" />
<patternset id="buildfiles">
<include name="**/*.o" />
<include name="**/*.dll" />
<include name="**/*.so.*" />
</patternset>
<patternset id="buildfiles">
<include name="**/*.o" />
<include name="**/*.dll" />
<exclude name="lib/*.dll" />
<include name="**/*.so.*" />
</patternset>
<target name="clean" description="--> Clean build files">
<delete>
<fileset dir=".">
<patternset refid="buildfiles" />
</fileset>
</delete>
</target>
<target name="windows" description="--> Build ${build.shlib.win.shlibname}">
<!-- The RC_VERSION_STR string is not recognized by windres as command line argument.
I think this is a bug. The only (nasty) workaround I found is to write it directly to the file. -->
<!--
<exec dir="." executable="${build.win.windres}">
<arg value="-o${build.win.resource.obj}" />
<arg value="${build.win.resource.rc}" />
<arg value="-DRC_VERSION=${version.rc}" />
<arg value="-DRC_VERSION_STR=&apos;\&quot;${version.str}\&quot;&apos;" />
</exec>
-->
<echo level="warning" message="WARNING: If the version has changed -> change the RC_VERSION_STR define in resource.rc to &quot;${version}&quot;" />
<exec dir="." executable="${build.win.windres}">
<arg value="-o${build.win.resource.obj}" />
<arg value="${build.win.resource.rc}" />
<arg value="-DRC_VERSION=${version.win.rc}" />
</exec>
<exec dir="." executable="${build.win.compiler}">
<arg value="-Wall" />
<arg value="-D_JNI_IMPLEMENTATION_" />
<arg value="-Wl,--kill-at" />
<arg value="-mwindows" />
<arg value="-shared" />
<arg value="-I${basedir}" />
<arg value="${build.shlib.srcname}" />
<arg value="-o${build.shlib.win.shlibname}" />
<arg value="${build.win.resource.obj}" />
<arg value="${build.lib.libusb}" />
</exec>
</target>
<target name="clean" description="--> Clean build files">
<delete>
<fileset dir=".">
<patternset refid="buildfiles" />
</fileset>
</delete>
</target>
<target name="linux" depends="clean" description="--> Build ${build.shlib.linux.shlibname}">
<exec dir="." executable="${build.linux.compiler}">
<target name="linux" depends="clean" description="--> Build libusbJava-1.0.so">
<echo level="info" message="Building Library" />
<exec dir="." executable="g++">
<arg value="-Wno-write-strings" />
<arg value="-shared" />
<arg value="-fPIC" />
<arg value="-Wl,-soname,${build.shlib.linux.shlibname}" />
<arg value="-I${build.linux.includes}" />
<arg value="-I${build.linux.includes2}" />
<arg value="-I${build.linux.includes3}" />
<arg value="${build.shlib.srcname}" />
<arg value="-o${build.shlib.linux.shlibname}.${version}" />
<arg value="${build.linux.includes}/${build.linux.lib.libusb}" />
<arg value="${build.linux.includes}/${build.linux.lib.libusbpp}" />
<arg value="-Wl,-soname,libusbJava-1.0.so" />
<arg value="-I/usr/lib" />
<arg value="-I/usr/lib/jvm/java-6-openjdk/include/" />
<arg value="${basedir}/LibusbJava.cpp" />
<arg value="-o${basedir}/out/libusbJava-1.0.so.${version}" />
<arg value="/usr/lib/libusb-1.0.so" />
</exec>
</target>
</target>
<target name="Windows 32Bit" depends="clean, Windows Resource" description="--> Build LibusbJava-1_0.dll">
<echo level="info" message="Building Library" />
<exec dir="." executable="g++">
<arg value="-Wno-write-strings" />
<arg value="-D_JNI_IMPLEMENTATION_" />
<arg value="-Wl,--kill-at" />
<arg value="-mwindows" />
<arg value="-static" />
<arg value="-shared" />
<arg value="-IC:/Program Files/Java/jdk${java.version}/include" />
<arg value="-IC:/Program Files/Java/jdk${java.version}/include/win32" />
<arg value="-I${basedir}" />
<arg value="${basedir}/LibusbJava.cpp" />
<arg value="${ver_info}" />
<arg value="-o" />
<arg value="${basedir}/out/x86/LibusbJava-1_0.dll" />
<arg value="-L${basedir}/MinGW32/static" />
<arg value="-lusb-1.0" />
</exec>
</target>
<target name="Windows 64Bit" depends="clean, Windows Resource" description="--> Build LibusbJava-1_0.dll">
<echo level="info" message="Building Library" />
<exec dir="." executable="g++">
<arg value="-Wno-write-strings" />
<arg value="-D_JNI_IMPLEMENTATION_" />
<arg value="-Wl,--kill-at" />
<arg value="-mwindows" />
<arg value="-static" />
<arg value="-shared" />
<arg value="-IC:/Program Files/Java/jdk${java.version}/include" />
<arg value="-IC:/Program Files/Java/jdk${java.version}/include/win32" />
<arg value="-I${basedir}" />
<arg value="${basedir}/LibusbJava.cpp" />
<arg value="${ver_info}" />
<arg value="-o" />
<arg value="${basedir}/out/LibusbJava-1_0.dll" />
<arg value="-L${basedir}/MinGW64/static" />
<arg value="-lusb-1.0" />
</exec>
</target>
<target name="mac" depends="clean" description="--> Build ${build.shlib.mac.shlibname}">
<exec dir="." executable="${build.mac.compiler}">
<!-- arguments to pass to gcc -->
<arg value="-v" />
<arg value="-dynamiclib" />
<arg line="-I ${build.mac.jni}" />
<arg value="${build.shlib.srcname}" />
<arg line="-o ${build.shlib.mac.shlibname}" />
<arg line="-current_version ${version}" />
<arg line="-l ${build.mac.stdclib}" />
<arg value="${build.mac.includes}/${build.mac.lib.libusb}" />
<arg value="${build.mac.includes}/${build.mac.lib.libusbpp}" />
</exec>
</target>
</project>
<target name="Windows Resource" description="--> Build Version resource">
<property name="rc_file" value="${basedir}/out/LibusbJava.rc" />
<basename property="filename" file="${rc_file}"/>
<echo level="info" message="Generating rc-File: ${filename}" />
<exec dir="." executable="build_rc.cmd">
<arg value="${rc_file}" />
<arg value="${version.major}" />
<arg value="${version.minor}" />
<arg value="${version.micro}" />
<arg value="${version.nano}" />
</exec>
<basename property="target_file" file="${ver_info}"/>
<echo level="info" message="Compiling res-File: ${target_file}" />
<exec dir="." executable="windres">
<arg value="-Ocoff" />
<arg value="-o${ver_info}" />
<arg value="${rc_file}" />
</exec>
</target>
<target name="mac" depends="clean" description="--> Build LibusbJava-1.0.jnilib">
<exec dir="." executable="g++">
<arg value="-v" />
<arg value="-dynamiclib" />
<arg line="-I /System/Library/Frameworks/JavaVM.framework/Headers/" />
<arg value="ch_ntb_inf_libusbJava_LibusbJava.cpp" />
<arg line="-o LibusbJava-1_0.jnilib" />
<arg line="-l stdc++" />
<arg value="/usr/local/lib/libusb.dylib" />
<arg value="/usr/local/lib/libusbpp.dylib" />
</exec>
</target>
</project>