Changes the build structure to put the library in its own project.
This cleans up dependencies some.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -23,5 +23,6 @@
|
|||||||
hs_err_pid*
|
hs_err_pid*
|
||||||
/local.properties
|
/local.properties
|
||||||
/build/
|
/build/
|
||||||
|
/library/build/
|
||||||
/.idea/
|
/.idea/
|
||||||
/.gradle/
|
/.gradle/
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ Alternatively, you can [download the zip file](https://github.com/Markil3/JMECon
|
|||||||
|
|
||||||
Once downloaded, point the command line to the directory that the source was downloaded and extracted to and run
|
Once downloaded, point the command line to the directory that the source was downloaded and extracted to and run
|
||||||
|
|
||||||
<code>gradlew build</code>
|
<code>gradlew library:build</code>
|
||||||
|
|
||||||
This will create three .jar files in the build/libs directory, one binary, the second (with the -source suffix) containing the source code, and the final one (with the -javadoc suffix) containing documentation.
|
This will create three .jar files in the library/build/libs directory, one binary, the second (with the -source suffix) containing the source code, and the final one (with the -javadoc suffix) containing documentation.
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
If you want to test this without implementing it in your software, simply download the source as outlined above and run
|
If you want to test this without implementing it in your software, simply download the source as outlined above and run
|
||||||
|
|||||||
62
build.gradle
62
build.gradle
@@ -17,15 +17,14 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "java-library"
|
|
||||||
id "application"
|
id "application"
|
||||||
|
id "distribution"
|
||||||
|
id "com.github.johnrengelman.shadow" version "5.0.0"
|
||||||
|
id "edu.sc.seis.launch4j" version "2.4.5"
|
||||||
|
id "edu.sc.seis.macAppBundle" version "2.3.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
@@ -52,10 +51,9 @@ dependencies {
|
|||||||
implementation "org.slf4j:slf4j-api:1.7.15"
|
implementation "org.slf4j:slf4j-api:1.7.15"
|
||||||
implementation "org.slf4j:slf4j-simple:1.7.5"
|
implementation "org.slf4j:slf4j-simple:1.7.5"
|
||||||
|
|
||||||
|
implementation project(':library')
|
||||||
implementation "${jme3.g}:jme3-core:${jme3.version}"
|
implementation "${jme3.g}:jme3-core:${jme3.version}"
|
||||||
implementation "${jme3.g}:jme3-desktop:${jme3.version}"
|
implementation "${jme3.g}:jme3-desktop:${jme3.version}"
|
||||||
implementation "${jme3.g}:jme3-testdata:${jme3.version}"
|
|
||||||
|
|
||||||
implementation "${jme3.g}:jme3-lwjgl3:${jme3.version}"
|
implementation "${jme3.g}:jme3-lwjgl3:${jme3.version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,19 +62,61 @@ mainClassName = 'markil3.controller.Main'
|
|||||||
version = "1.0"
|
version = "1.0"
|
||||||
versionNumber = 1
|
versionNumber = 1
|
||||||
|
|
||||||
java {
|
processResources {
|
||||||
withSourcesJar()
|
from (".") {
|
||||||
withJavadocJar()
|
include "LICENSE"
|
||||||
|
include "JME3-LICENSE"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO - The default zipped distributions are a bit of a mess.
|
||||||
|
*/
|
||||||
jar {
|
jar {
|
||||||
|
baseName rootProject.name
|
||||||
|
version rootProject.version
|
||||||
manifest {
|
manifest {
|
||||||
attributes "Main-Class": mainClassName,
|
attributes "Main-Class": mainClassName,
|
||||||
"Class-Path": configurations.runtime.files.collect {
|
"Class-Path": configurations.runtime.files.collect {
|
||||||
"lib/$it.name"
|
"lib/$it.name"
|
||||||
}.join(" "),
|
}.join(" "),
|
||||||
"Implementation-Title": rootProject.displayName,
|
"Implementation-Title": rootProject.name,
|
||||||
"Implementation-Version": rootProject.version,
|
"Implementation-Version": rootProject.version,
|
||||||
"Version-Code": versionNumber
|
"Version-Code": versionNumber
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shadowJar {
|
||||||
|
archivesBaseName = rootProject.name
|
||||||
|
archiveClassifier = "universal"
|
||||||
|
version = rootProject.version
|
||||||
|
mainClassName = project.mainClassName
|
||||||
|
}
|
||||||
|
|
||||||
|
launch4j {
|
||||||
|
mainClassName = project.mainClassName
|
||||||
|
outfile = rootProject.name + "-" + project.version + "-windows.exe"
|
||||||
|
copyConfigurable = shadowJar.outputs.files
|
||||||
|
jar = shadowJar.getArchiveFile()
|
||||||
|
bundledJrePath = "jre"
|
||||||
|
//icon = new File(sourceSets.main.resources.srcDirs[0], "icon256.ico")
|
||||||
|
}
|
||||||
|
|
||||||
|
createExe.doLast({
|
||||||
|
println project.tasks.installDist.outputs.files.getClass()
|
||||||
|
for (file in new File(installDist.outputs.files[0], "lib").listFiles()) {
|
||||||
|
println file
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
macAppBundle {
|
||||||
|
mainClassName = project.mainClassName
|
||||||
|
icon = "myIcon.icns"
|
||||||
|
if (Os.isFamily(Os.FAMILY_MAC) && (appStyle == 'Oracle' || appStyle == 'universalJavaApplicationStub')) {
|
||||||
|
bundleJRE = true
|
||||||
|
}
|
||||||
|
javaProperties.put("apple.laf.useScreenMenuBar", "true")
|
||||||
|
backgroundImage = "doc/macbackground.png"
|
||||||
|
jarTask = "shadowJar"
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
93
library/build.gradle
Normal file
93
library/build.gradle
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 Markil 3. All rights reserved.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
|
|
||||||
|
import java.nio.file.Files
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
google()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id "java-library"
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
jcenter()
|
||||||
|
mavenCentral()
|
||||||
|
maven { url 'https://jitpack.io' }
|
||||||
|
maven {
|
||||||
|
url "https://dl.bintray.com/jmonkeyengine/org.jmonkeyengine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceCompatibility = "1.8"
|
||||||
|
targetCompatibility = "1.8"
|
||||||
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// Logging
|
||||||
|
implementation "org.slf4j:slf4j-api:1.7.15"
|
||||||
|
implementation "org.slf4j:slf4j-simple:1.7.5"
|
||||||
|
|
||||||
|
implementation "${jme3.g}:jme3-core:${jme3.version}"
|
||||||
|
implementation "${jme3.g}:jme3-testdata:${jme3.version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
from ("..") {
|
||||||
|
include "LICENSE"
|
||||||
|
include "JME3-LICENSE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO - Why does the shadowjar task in the main project run when we use library:build?
|
||||||
|
*/
|
||||||
|
java {
|
||||||
|
withSourcesJar()
|
||||||
|
withJavadocJar()
|
||||||
|
}
|
||||||
|
|
||||||
|
sourcesJar {
|
||||||
|
baseName rootProject.name
|
||||||
|
version rootProject.version
|
||||||
|
from ("..") {
|
||||||
|
include "LICENSE"
|
||||||
|
include "JME3-LICENSE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
javadocJar {
|
||||||
|
baseName rootProject.name
|
||||||
|
version rootProject.version
|
||||||
|
from ("..") {
|
||||||
|
include "LICENSE"
|
||||||
|
include "JME3-LICENSE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jar {
|
||||||
|
baseName rootProject.name
|
||||||
|
version rootProject.version
|
||||||
|
manifest {
|
||||||
|
attributes "Class-Path": configurations.runtime.files.collect {
|
||||||
|
"lib/$it.name"
|
||||||
|
}.join(" "),
|
||||||
|
"Implementation-Title": rootProject.name,
|
||||||
|
"Implementation-Version": rootProject.version,
|
||||||
|
"Version-Code": rootProject.versionNumber
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -45,23 +45,6 @@ import org.slf4j.LoggerFactory;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static markil3.controller.Main.ACTION_BOTTOM;
|
|
||||||
import static markil3.controller.Main.ACTION_LEFT;
|
|
||||||
import static markil3.controller.Main.ACTION_RIGHT;
|
|
||||||
import static markil3.controller.Main.ACTION_TOP;
|
|
||||||
import static markil3.controller.Main.DPAD_DOWN;
|
|
||||||
import static markil3.controller.Main.DPAD_LEFT;
|
|
||||||
import static markil3.controller.Main.DPAD_RIGHT;
|
|
||||||
import static markil3.controller.Main.DPAD_UP;
|
|
||||||
import static markil3.controller.Main.L1;
|
|
||||||
import static markil3.controller.Main.L2;
|
|
||||||
import static markil3.controller.Main.L3;
|
|
||||||
import static markil3.controller.Main.R1;
|
|
||||||
import static markil3.controller.Main.R2;
|
|
||||||
import static markil3.controller.Main.R3;
|
|
||||||
import static markil3.controller.Main.SELECT;
|
|
||||||
import static markil3.controller.Main.START;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adding this app state will display a GUI screen showing the controllers
|
* Adding this app state will display a GUI screen showing the controllers
|
||||||
* connected and information on what buttons are pressed. It is primarily
|
* connected and information on what buttons are pressed. It is primarily
|
||||||
@@ -85,6 +68,61 @@ public class JoystickPreviewScreen extends BaseAppState
|
|||||||
private static final org.slf4j.Logger logger =
|
private static final org.slf4j.Logger logger =
|
||||||
org.slf4j.LoggerFactory.getLogger(JoystickPreviewScreen.class);
|
org.slf4j.LoggerFactory.getLogger(JoystickPreviewScreen.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triangle on Playstation, Y on Xbox, and X on Nintendo.
|
||||||
|
*/
|
||||||
|
public static final String ACTION_TOP = JoystickButton.BUTTON_0;
|
||||||
|
/**
|
||||||
|
* Circle on Playstation, B on Xbox, and A on Nintendo.
|
||||||
|
*/
|
||||||
|
public static final String ACTION_RIGHT = JoystickButton.BUTTON_1;
|
||||||
|
/**
|
||||||
|
* X on Playstation, A on Xbox, and B on Nintendo.
|
||||||
|
*/
|
||||||
|
public static final String ACTION_BOTTOM = JoystickButton.BUTTON_2;
|
||||||
|
/**
|
||||||
|
* Square on Playstation, X on Xbox, and Y on Nintendo.
|
||||||
|
*/
|
||||||
|
public static final String ACTION_LEFT = JoystickButton.BUTTON_3;
|
||||||
|
public static final String L1 = JoystickButton.BUTTON_4;
|
||||||
|
public static final String R1 = JoystickButton.BUTTON_5;
|
||||||
|
/**
|
||||||
|
* Some gamepads (Xbox controllers notable) will use
|
||||||
|
* {@link JoystickAxis#LEFT_TRIGGER} instead.
|
||||||
|
*/
|
||||||
|
public static final String L2 = JoystickButton.BUTTON_6;
|
||||||
|
/**
|
||||||
|
* Some gamepads (Xbox controllers notable) will use
|
||||||
|
* {@link JoystickAxis#RIGHT_TRIGGER} instead.
|
||||||
|
*/
|
||||||
|
public static final String R2 = JoystickButton.BUTTON_7;
|
||||||
|
public static final String SELECT = JoystickButton.BUTTON_8;
|
||||||
|
public static final String START = JoystickButton.BUTTON_9;
|
||||||
|
/**
|
||||||
|
* Pressing the left analog stick.
|
||||||
|
*/
|
||||||
|
public static final String L3 = JoystickButton.BUTTON_10;
|
||||||
|
/**
|
||||||
|
* Pressing the right analog stick.
|
||||||
|
*/
|
||||||
|
public static final String R3 = JoystickButton.BUTTON_11;
|
||||||
|
/**
|
||||||
|
* Most gamepads may use {@link JoystickAxis#POV_X} instead.
|
||||||
|
*/
|
||||||
|
public static final String DPAD_LEFT = "12";
|
||||||
|
/**
|
||||||
|
* Most gamepads may use {@link JoystickAxis#POV_X} instead.
|
||||||
|
*/
|
||||||
|
public static final String DPAD_RIGHT = "13";
|
||||||
|
/**
|
||||||
|
* Most gamepads may use {@link JoystickAxis#POV_Y} instead.
|
||||||
|
*/
|
||||||
|
public static final String DPAD_UP = "14";
|
||||||
|
/**
|
||||||
|
* Most gamepads may use {@link JoystickAxis#POV_Y} instead.
|
||||||
|
*/
|
||||||
|
public static final String DPAD_DOWN = "15";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This node serves as the center of logic for each gamepad connected to
|
* This node serves as the center of logic for each gamepad connected to
|
||||||
* the computer.
|
* the computer.
|
||||||
@@ -16,3 +16,4 @@ include 'services:webservice'
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
rootProject.name = 'JMEControllerConfig'
|
rootProject.name = 'JMEControllerConfig'
|
||||||
|
include "library"
|
||||||
@@ -28,61 +28,6 @@ public class Main extends SimpleApplication
|
|||||||
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.
|
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.
|
||||||
getLogger(Main.class);
|
getLogger(Main.class);
|
||||||
|
|
||||||
/**
|
|
||||||
* Triangle on Playstation, Y on Xbox, and X on Nintendo.
|
|
||||||
*/
|
|
||||||
public static final String ACTION_TOP = JoystickButton.BUTTON_0;
|
|
||||||
/**
|
|
||||||
* Circle on Playstation, B on Xbox, and A on Nintendo.
|
|
||||||
*/
|
|
||||||
public static final String ACTION_RIGHT = JoystickButton.BUTTON_1;
|
|
||||||
/**
|
|
||||||
* X on Playstation, A on Xbox, and B on Nintendo.
|
|
||||||
*/
|
|
||||||
public static final String ACTION_BOTTOM = JoystickButton.BUTTON_2;
|
|
||||||
/**
|
|
||||||
* Square on Playstation, X on Xbox, and Y on Nintendo.
|
|
||||||
*/
|
|
||||||
public static final String ACTION_LEFT = JoystickButton.BUTTON_3;
|
|
||||||
public static final String L1 = JoystickButton.BUTTON_4;
|
|
||||||
public static final String R1 = JoystickButton.BUTTON_5;
|
|
||||||
/**
|
|
||||||
* Some gamepads (Xbox controllers notable) will use
|
|
||||||
* {@link JoystickAxis#LEFT_TRIGGER} instead.
|
|
||||||
*/
|
|
||||||
public static final String L2 = JoystickButton.BUTTON_6;
|
|
||||||
/**
|
|
||||||
* Some gamepads (Xbox controllers notable) will use
|
|
||||||
* {@link JoystickAxis#RIGHT_TRIGGER} instead.
|
|
||||||
*/
|
|
||||||
public static final String R2 = JoystickButton.BUTTON_7;
|
|
||||||
public static final String SELECT = JoystickButton.BUTTON_8;
|
|
||||||
public static final String START = JoystickButton.BUTTON_9;
|
|
||||||
/**
|
|
||||||
* Pressing the left analog stick.
|
|
||||||
*/
|
|
||||||
public static final String L3 = JoystickButton.BUTTON_10;
|
|
||||||
/**
|
|
||||||
* Pressing the right analog stick.
|
|
||||||
*/
|
|
||||||
public static final String R3 = JoystickButton.BUTTON_11;
|
|
||||||
/**
|
|
||||||
* Most gamepads may use {@link JoystickAxis#POV_X} instead.
|
|
||||||
*/
|
|
||||||
public static final String DPAD_LEFT = "12";
|
|
||||||
/**
|
|
||||||
* Most gamepads may use {@link JoystickAxis#POV_X} instead.
|
|
||||||
*/
|
|
||||||
public static final String DPAD_RIGHT = "13";
|
|
||||||
/**
|
|
||||||
* Most gamepads may use {@link JoystickAxis#POV_Y} instead.
|
|
||||||
*/
|
|
||||||
public static final String DPAD_UP = "14";
|
|
||||||
/**
|
|
||||||
* Most gamepads may use {@link JoystickAxis#POV_Y} instead.
|
|
||||||
*/
|
|
||||||
public static final String DPAD_DOWN = "15";
|
|
||||||
|
|
||||||
public static void main(String[] args)
|
public static void main(String[] args)
|
||||||
{
|
{
|
||||||
Main app = new Main();
|
Main app = new Main();
|
||||||
|
|||||||
Reference in New Issue
Block a user