Compare commits
5 Commits
master
...
v3.3.0-bet
Author | SHA1 | Date | |
---|---|---|---|
|
bd1b6d284c | ||
|
8a04afd7a1 | ||
|
f9d2e03362 | ||
|
8905b3d8f8 | ||
|
a2169999e5 |
@ -8,6 +8,10 @@ jmeVersionName =
|
|||||||
# If true, the version name will contain the commit hash
|
# If true, the version name will contain the commit hash
|
||||||
useCommitHashAsVersionName = false
|
useCommitHashAsVersionName = false
|
||||||
|
|
||||||
|
# Set to true if a non-master branch name should be included in the automatically
|
||||||
|
# generated version.
|
||||||
|
includeBranchInVersion = false
|
||||||
|
|
||||||
# specify if JavaDoc should be built
|
# specify if JavaDoc should be built
|
||||||
buildJavaDoc = true
|
buildJavaDoc = true
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009-2018 jMonkeyEngine
|
* Copyright (c) 2009-2019 jMonkeyEngine
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -102,7 +102,9 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialization only. Do not use.
|
* Instantiate an animation control with no skeleton, suitable only for
|
||||||
|
* animations that don't contain any bone tracks. Also used for
|
||||||
|
* serialization.
|
||||||
*/
|
*/
|
||||||
public AnimControl() {
|
public AnimControl() {
|
||||||
}
|
}
|
||||||
@ -144,6 +146,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve an animation from the list of animations.
|
* Retrieve an animation from the list of animations.
|
||||||
|
*
|
||||||
* @param name The name of the animation to retrieve.
|
* @param name The name of the animation to retrieve.
|
||||||
* @return The animation corresponding to the given name, or null, if no
|
* @return The animation corresponding to the given name, or null, if no
|
||||||
* such named animation exists.
|
* such named animation exists.
|
||||||
@ -155,6 +158,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
/**
|
/**
|
||||||
* Adds an animation to be available for playing to this
|
* Adds an animation to be available for playing to this
|
||||||
* <code>AnimControl</code>.
|
* <code>AnimControl</code>.
|
||||||
|
*
|
||||||
* @param anim The animation to add.
|
* @param anim The animation to add.
|
||||||
*/
|
*/
|
||||||
public void addAnim(Animation anim) {
|
public void addAnim(Animation anim) {
|
||||||
@ -163,6 +167,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an animation so that it is no longer available for playing.
|
* Remove an animation so that it is no longer available for playing.
|
||||||
|
*
|
||||||
* @param anim The animation to remove.
|
* @param anim The animation to remove.
|
||||||
*/
|
*/
|
||||||
public void removeAnim(Animation anim) {
|
public void removeAnim(Animation anim) {
|
||||||
@ -231,6 +236,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new listener to receive animation related events.
|
* Adds a new listener to receive animation related events.
|
||||||
|
*
|
||||||
* @param listener The listener to add.
|
* @param listener The listener to add.
|
||||||
*/
|
*/
|
||||||
public void addListener(AnimEventListener listener) {
|
public void addListener(AnimEventListener listener) {
|
||||||
@ -244,6 +250,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the given listener from listening to events.
|
* Removes the given listener from listening to events.
|
||||||
|
*
|
||||||
* @param listener
|
* @param listener
|
||||||
* @see AnimControl#addListener(com.jme3.animation.AnimEventListener)
|
* @see AnimControl#addListener(com.jme3.animation.AnimEventListener)
|
||||||
*/
|
*/
|
||||||
@ -308,6 +315,7 @@ public final class AnimControl extends AbstractControl implements Cloneable, Jme
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the length of the given named animation.
|
* Returns the length of the given named animation.
|
||||||
|
*
|
||||||
* @param name The name of the animation
|
* @param name The name of the animation
|
||||||
* @return The length of time, in seconds, of the named animation.
|
* @return The length of time, in seconds, of the named animation.
|
||||||
*/
|
*/
|
||||||
|
@ -1527,7 +1527,11 @@ public class Mesh implements Savable, Cloneable, JmeCloneable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MorphTarget[] getMorphTargets() {
|
public MorphTarget[] getMorphTargets() {
|
||||||
return morphTargets.getArray();
|
if (morphTargets == null) {
|
||||||
|
return new MorphTarget[0];
|
||||||
|
} else {
|
||||||
|
return morphTargets.getArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,7 +55,7 @@ public class Line extends Mesh {
|
|||||||
/**
|
/**
|
||||||
* No-argument constructor needed by SavableClassUtil.
|
* No-argument constructor needed by SavableClassUtil.
|
||||||
*/
|
*/
|
||||||
public Line() { // TODO protected
|
protected Line() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Line(Vector3f start, Vector3f end) {
|
public Line(Vector3f start, Vector3f end) {
|
||||||
@ -69,7 +69,6 @@ public class Line extends Mesh {
|
|||||||
setBuffer(Type.Position, 3, new float[]{start.x, start.y, start.z,
|
setBuffer(Type.Position, 3, new float[]{start.x, start.y, start.z,
|
||||||
end.x, end.y, end.z,});
|
end.x, end.y, end.z,});
|
||||||
|
|
||||||
|
|
||||||
setBuffer(Type.TexCoord, 2, new float[]{0, 0,
|
setBuffer(Type.TexCoord, 2, new float[]{0, 0,
|
||||||
1, 1});
|
1, 1});
|
||||||
|
|
||||||
|
115
version.gradle
115
version.gradle
@ -24,35 +24,107 @@ ext {
|
|||||||
|
|
||||||
task configureVersionInfo {
|
task configureVersionInfo {
|
||||||
try {
|
try {
|
||||||
|
// Users can configure behavior by setting properties on the command
|
||||||
|
// line:
|
||||||
|
//
|
||||||
|
// jmeVersionName:
|
||||||
|
// If set this will override all automatic version detection.
|
||||||
|
//
|
||||||
|
// useCommitHashAsVersionName:
|
||||||
|
// If there is no jmeVersionName set and the current commit has no
|
||||||
|
// specific tag then setting this to 'true' will cause the version to
|
||||||
|
// be the full commit ID.
|
||||||
|
//
|
||||||
|
// includeBranchInVersion:
|
||||||
|
// Set to true if a non-master branch name should be included in the automatically
|
||||||
|
// generated version.
|
||||||
|
|
||||||
def grgit = Grgit.open(project.file('.'))
|
def grgit = Grgit.open(project.file('.'))
|
||||||
def head = grgit.head()
|
def head = grgit.head()
|
||||||
jmeRevision = grgit.log(includes: [head]).size()
|
jmeRevision = grgit.log(includes: [head]).size()
|
||||||
jmeGitHash = head.id
|
jmeGitHash = head.id
|
||||||
jmeShortGitHash = head.abbreviatedId
|
jmeShortGitHash = head.abbreviatedId
|
||||||
jmeBranchName = grgit.branch.current.name
|
jmeBranchName = grgit.branch.current.name
|
||||||
jmeGitTag = grgit.tag.list().find { it.commit == head }
|
|
||||||
|
|
||||||
if(jmeVersionName==""){
|
// This code will find an exact-match tag if the current
|
||||||
if (jmeGitTag != null) {
|
// commit is the same as the tag commit.
|
||||||
jmeGitTag = jmeGitTag.name
|
jmeGitTag = grgit.tag.list().find { it.commit == head }
|
||||||
jmeFullVersion = jmeGitTag
|
def latestTag;
|
||||||
jmeVersionTag = ""
|
if( jmeGitTag ) {
|
||||||
} else {
|
// Just use the name. We keep jmeGitTag separate because there
|
||||||
if(useCommitHashAsVersionName=="true"&&jmeGitHash!=null&&!jmeGitHash.equals("")){
|
// is some logic that wants to know if this specific commit has
|
||||||
jmeFullVersion = jmeGitHash
|
// a tag versus 'whatever tag we are a child of'... which is what
|
||||||
jmeVersionTag = ""
|
// 'latestTag' will be.
|
||||||
}else{
|
jmeGitTag = jmeGitTag.name
|
||||||
jmeFullVersion="${jmeVersion}-";
|
latestTag = jmeGitTag;
|
||||||
if(jmeBranchName!="master")jmeFullVersion+="${jmeBranchName}-";
|
} else {
|
||||||
jmeFullVersion+="SNAPSHOT"
|
// Use describe to find the most recent tag. Unfortunately,
|
||||||
jmeVersionTag="SNAPSHOT"
|
// in this version of grgit, we don't have the 'always' options
|
||||||
}
|
// so we can't make as many assumptions about the format of the
|
||||||
}
|
// string.
|
||||||
}else{
|
// If the commit is an exact match then it will return just the
|
||||||
jmeVersionTag=""
|
// tag name... else it will be tagName-commitCount-abbreviatedId
|
||||||
jmeFullVersion=jmeVersionName
|
// We'll use some groovy regex magic to get the tag either way.
|
||||||
|
def describe = grgit.describe()
|
||||||
|
def fullDescribe = (describe =~/(.*?)-(\d+)-g$jmeShortGitHash/)
|
||||||
|
latestTag = fullDescribe ? fullDescribe[0][1] : describe
|
||||||
|
println "Latest tag:" + latestTag
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We could enhance this with some more regex if we wanted to sanity
|
||||||
|
// check that it was formatted like our versions.
|
||||||
|
def tagVersion = (latestTag =~/v?(.*)/)[0][1];
|
||||||
|
// If the branch is not master then use the tag.
|
||||||
|
if( jmeBranchName != "master" ) {
|
||||||
|
jmeVersion = tagVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse out just the base version part. -SNAPSHOT versions
|
||||||
|
// shouldn't really include our release suffixes
|
||||||
|
def baseVersion = (tagVersion =~/(\d+\.\d+.\d+)/)
|
||||||
|
baseVersion = baseVersion.size() > 0 ? baseVersion[0][0] : tagVersion
|
||||||
|
|
||||||
|
if( !jmeVersionName ) {
|
||||||
|
// If there is a specific tag for the top commit then we always
|
||||||
|
// use that.
|
||||||
|
if( jmeGitTag ) {
|
||||||
|
println "Using GIT tag as version"
|
||||||
|
jmeFullVersion = tagVersion; // already cleaned up
|
||||||
|
jmeVersionTag = "" // and no SNAPSHOT suffix for an exact version tag
|
||||||
|
|
||||||
|
// Note: this will not automatically add SNAPSHOT if the user has
|
||||||
|
// local changes that they haven't committed. Technically, only
|
||||||
|
// real CI builds should be using non-SNAPSHOT versions so we may
|
||||||
|
// eventually want to change the script to always use -SNAPSHOT with
|
||||||
|
// a CI option to turn it off.
|
||||||
|
// We could also check the grgit.status for unstaged modified/removed files.
|
||||||
|
// def unstaged = grgit.status().unstaged;
|
||||||
|
// def modCount = unstaged.modified.size() + unstaged.removed.size()
|
||||||
|
// ...but that seems like a wasteful check considering only official
|
||||||
|
// version builds should not have a -SNAPSHOT.
|
||||||
|
|
||||||
|
} else if( useCommitHashAsVersionName == "true" && jmeGitHash ) {
|
||||||
|
// The user has opted to use the hash... and we actually have
|
||||||
|
// a hash.
|
||||||
|
println "Using commit ID as version"
|
||||||
|
jmeFullVersion = jmeGitHash;
|
||||||
|
jmeVersionTag = ""
|
||||||
|
} else {
|
||||||
|
println "Auto-detecting version"
|
||||||
|
jmeVersionTag = "SNAPSHOT"
|
||||||
|
|
||||||
|
if( includeBranchInVersion == "true" && jmeBranchName != "master" ) {
|
||||||
|
jmeFullVersion = baseVersion + "-" + jmeBranchName + "-" + jmeVersionTag;
|
||||||
|
} else {
|
||||||
|
jmeFullVersion = baseVersion + "-" + jmeVersionTag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Just use defaults
|
||||||
|
println "Using user-defined version"
|
||||||
|
jmeFullVersion=jmeVersionName
|
||||||
|
jmeVersionTag = "SNAPSHOT"
|
||||||
|
}
|
||||||
|
|
||||||
println("Revision: ${jmeRevision}")
|
println("Revision: ${jmeRevision}")
|
||||||
println("Hash: ${jmeGitHash}")
|
println("Hash: ${jmeGitHash}")
|
||||||
@ -61,7 +133,8 @@ task configureVersionInfo {
|
|||||||
println("Build Date: ${jmeBuildDate}")
|
println("Build Date: ${jmeBuildDate}")
|
||||||
println("Build Branch: ${jmeBranchName}")
|
println("Build Branch: ${jmeBranchName}")
|
||||||
println("Use commit hash as version ${useCommitHashAsVersionName}")
|
println("Use commit hash as version ${useCommitHashAsVersionName}")
|
||||||
println("Build Tag: ${jmeVersionTag}")
|
println("Base Version: ${baseVersion}")
|
||||||
|
println("Build Suffix: ${jmeVersionTag}")
|
||||||
println("Build Version: ${jmeFullVersion}")
|
println("Build Version: ${jmeFullVersion}")
|
||||||
|
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user