diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4203d8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +build +bin +.settings +.maven +.classpath +.project +.gradle \ No newline at end of file diff --git a/build.gradle b/build.gradle index e39917a..3ccf5b9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,28 @@ apply plugin: 'cpp' apply plugin: 'java' apply plugin: 'maven' +apply plugin: 'eclipse' -task wrapper(type: Wrapper) { - gradleVersion = '1.12' +repositories { + maven { + url 'https://github.com/Boukefalos/jlibloader/raw/mvn-repo/' + } + mavenCentral() +} + +dependencies { + compile 'java3d:j3d-core:1.3.1' + compile 'com.github.boukefalos:jlibloader:0.2' } group = 'com.github.boukefalos' project.archivesBaseName = 'jlibxinput' version = '1.0' +task wrapper(type: Wrapper) { + gradleVersion = '1.12' +} + model { platforms { windows_i386 { @@ -45,6 +58,20 @@ model { } } +def jniHeadersDir = file("$buildDir/headers") + +task jniHeaders(dependsOn: compileJava) { + def outputFile = file("$jniHeadersDir/de_hardcode_jxinput_directinput_DirectInputDriver.h") + inputs.files sourceSets.main.output + outputs.file outputFile + exec { + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args '-o', outputFile + args '-classpath', sourceSets.main.output.classesDir + args '-classpath', file("$buildDir/../bin") + args 'de.hardcode.jxinput.directinput.DirectInputDriver' + } +} libraries { main { @@ -53,7 +80,8 @@ libraries { all { binaries.withType(SharedLibraryBinary) { binary -> cppCompiler.define 'JXINPUT_EXPORTS' - cppCompiler.args '-Wall' + //cppCompiler.args '-Wall' + cppCompiler.args '-I' + jniHeadersDir if (targetPlatform.operatingSystem.macOsX) { cppCompiler.args '-I', "/System/Library/Frameworks/JavaVM.framework/Headers" linker.args '-framework', "JavaVM" @@ -64,6 +92,9 @@ libraries { cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include" cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32" } + tasks.withType(CppCompile) { task -> + task.dependsOn jniHeaders + } lib library: 'dxguid', linkage: 'static' lib library: 'dinput8', linkage: 'static' lib library: 'user32', linkage: 'static' diff --git a/src/main/headers/de_hardcode_jxinput_directinput_DirectInputDriver.h b/src/main/headers/de_hardcode_jxinput_directinput_DirectInputDriver.h deleted file mode 100644 index bb93548..0000000 --- a/src/main/headers/de_hardcode_jxinput_directinput_DirectInputDriver.h +++ /dev/null @@ -1,183 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include - -/* Header for class de_hardcode_jxinput_directinput_DirectInputDriver */ - -#ifndef _Included_de_hardcode_jxinput_directinput_DirectInputDriver -#define _Included_de_hardcode_jxinput_directinput_DirectInputDriver - -#ifdef __cplusplus -extern "C" { -#endif - -/* Inaccessible static: sIsOperational */ -/* Inaccessible static: sAxisValues */ -/* Inaccessible static: sButtonStates */ -/* Inaccessible static: sDirectionalValues */ -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: nativeinit - * Signature: ()Z - */ -JNIEXPORT jboolean JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_nativeinit - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: nativeexit - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_nativeexit - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: bind - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_bind - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getNumberOfDevices - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getNumberOfDevices - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getName - * Signature: (I)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getName - (JNIEnv *, jclass, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getNumberOfAxes - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getNumberOfAxes - - (JNIEnv *, jclass, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getNumberOfButtons - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getNumberOfButtons - (JNIEnv *, jclass, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getNumberOfDirectionals - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getNumberOfDirectionals - (JNIEnv *, jclass, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getMaxNumberOfAxes - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getMaxNumberOfAxes - (JNIEnv *, jclass); - - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getMaxNumberOfButtons - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getMaxNumberOfButtons - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getMaxNumberOfDirectionals - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getMaxNumberOfDirectionals - (JNIEnv *, jclass); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: isAxisAvailable - * Signature: (II)Z - */ -JNIEXPORT jboolean JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_isAxisAvailable - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getAxisName - * Signature: (II)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getAxisName - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getAxisType - * Signature: (II)I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getAxisType - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: isButtonAvailable - * Signature: (II)Z - */ -JNIEXPORT jboolean JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_isButtonAvailable - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getButtonName - * Signature: (II)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getButtonName - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getButtonType - * Signature: (II)I - */ -JNIEXPORT jint JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getButtonType - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: isDirectionalAvailable - * Signature: (II)Z - */ -JNIEXPORT jboolean JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_isDirectionalAvailable - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: getDirectionalName - * Signature: (II)Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_getDirectionalName - (JNIEnv *, jclass, jint, jint); - -/* - * Class: de_hardcode_jxinput_directinput_DirectInputDriver - * Method: nativeupdate - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_de_hardcode_jxinput_directinput_DirectInputDriver_nativeupdate - (JNIEnv *, jclass); - -#ifdef __cplusplus -} -#endif -#endif -