mirror of https://github.com/axmolengine/axmol.git
Remove gradle compile lua to fix compile error, needs tools to compile and encrypt lua later
This commit is contained in:
parent
9019cb0d0f
commit
fdf2d5f668
|
@ -72,64 +72,6 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def getCocosCommandPath() {
|
|
||||||
if (OperatingSystem.current().isWindows()) {
|
|
||||||
return 'cocos.bat'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
def env_console_path = System.getenv("COCOS_CONSOLE_ROOT")
|
|
||||||
|
|
||||||
if (env_console_path != null && !env_console_path.trim().isEmpty()) {
|
|
||||||
return new File(env_console_path.trim() + '/cocos').absolutePath
|
|
||||||
}
|
|
||||||
|
|
||||||
// on unix like system, can not get environments variables easily
|
|
||||||
// so run a shell script to get environment variable sets by cocos2d-x setup.py
|
|
||||||
new ByteArrayOutputStream().withStream { os ->
|
|
||||||
def result = exec {
|
|
||||||
executable = "/bin/bash"
|
|
||||||
args = [ "-i", project.file('get_environment.sh')]
|
|
||||||
standardOutput = os
|
|
||||||
}
|
|
||||||
ext.console_path = os.toString().trim()
|
|
||||||
}
|
|
||||||
return new File(console_path + '/cocos').absolutePath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// a method used to invoke the cocos luacompile command
|
|
||||||
def compileLua(srcDir, dstDir, doCompile, is64bit, doEncrypt) {
|
|
||||||
def compileArgs = ['luacompile', '-s', srcDir, '-d', dstDir]
|
|
||||||
if (!doCompile) {
|
|
||||||
compileArgs << '--disable-compile'
|
|
||||||
}
|
|
||||||
else if (is64bit) {
|
|
||||||
compileArgs << '--bytecode-64bit'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (doEncrypt) {
|
|
||||||
compileArgs << '-e'
|
|
||||||
compileArgs << '-k'
|
|
||||||
compileArgs << project.property('PROP_LUA_ENCRYPT_KEY')
|
|
||||||
compileArgs << '-b'
|
|
||||||
compileArgs << project.property('PROP_LUA_ENCRYPT_SIGN')
|
|
||||||
}
|
|
||||||
|
|
||||||
// commandLine compileArgs
|
|
||||||
println 'running command : ' + 'cocos ' + compileArgs.join(' ')
|
|
||||||
exec {
|
|
||||||
// if you meet problem, just replace `getCocosCommandPath()` to the path of cocos command
|
|
||||||
executable getCocosCommandPath()
|
|
||||||
args compileArgs
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove the lua files in dstDir
|
|
||||||
delete fileTree(dstDir) {
|
|
||||||
include '**/*.lua'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
android.applicationVariants.all { variant ->
|
android.applicationVariants.all { variant ->
|
||||||
def project_root_folder = "${projectDir}/../../../.."
|
def project_root_folder = "${projectDir}/../../../.."
|
||||||
def dest_assets_folder = "${projectDir}/assets"
|
def dest_assets_folder = "${projectDir}/assets"
|
||||||
|
@ -155,78 +97,6 @@ android.applicationVariants.all { variant ->
|
||||||
// from "${projectDir}/../../../cocos2d-x/cocos/scripting/lua-bindings/script"
|
// from "${projectDir}/../../../cocos2d-x/cocos/scripting/lua-bindings/script"
|
||||||
// into dest_assets_folder + "/src/cocos"
|
// into dest_assets_folder + "/src/cocos"
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// compile & encrypt the scripts if necessary
|
|
||||||
def compileScript = (variant.name.compareTo('release') == 0)
|
|
||||||
if (project.hasProperty('PROP_COMPILE_SCRIPT')) {
|
|
||||||
compileScript = (PROP_COMPILE_SCRIPT.compareTo('1') == 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
def encryptLua = project.hasProperty('PROP_LUA_ENCRYPT') && (PROP_LUA_ENCRYPT.compareTo('1') == 0)
|
|
||||||
if (compileScript || encryptLua) {
|
|
||||||
// -1 means not build bytecode
|
|
||||||
// 0 means build 32bit only
|
|
||||||
// 1 means build 64bit only
|
|
||||||
// 2 means build both 32bit & 64bit
|
|
||||||
def buildType = -1
|
|
||||||
if (compileScript) {
|
|
||||||
def need64 = false
|
|
||||||
def need32 = false
|
|
||||||
def abis = PROP_APP_ABI.split(':').collect{it as String}
|
|
||||||
abis.each{ abi->
|
|
||||||
if (abi.compareTo('arm64-v8a') == 0) {
|
|
||||||
need64 = true
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
need32 = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (need64 && need32) {
|
|
||||||
buildType = 2
|
|
||||||
}
|
|
||||||
else if (need64) {
|
|
||||||
buildType = 1
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
buildType = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// invoke cocos command to compile & encrypt the lua files
|
|
||||||
switch (buildType) {
|
|
||||||
case -1:
|
|
||||||
compileLua(dest_assets_folder + "/src",
|
|
||||||
dest_assets_folder + "/src",
|
|
||||||
false, false, encryptLua)
|
|
||||||
break
|
|
||||||
case 0:
|
|
||||||
compileLua(dest_assets_folder + "/src",
|
|
||||||
dest_assets_folder + "/src",
|
|
||||||
true, false, encryptLua)
|
|
||||||
break
|
|
||||||
case 1:
|
|
||||||
compileLua(dest_assets_folder + "/src",
|
|
||||||
dest_assets_folder + "/src/64bit",
|
|
||||||
true, true, encryptLua)
|
|
||||||
|
|
||||||
// remove the lua files in src dir
|
|
||||||
delete fileTree(dest_assets_folder + "/src") {
|
|
||||||
include '**/*.lua'
|
|
||||||
}
|
|
||||||
delete dest_assets_folder + "/src/cocos"
|
|
||||||
break
|
|
||||||
case 2:
|
|
||||||
compileLua(dest_assets_folder + "/src",
|
|
||||||
dest_assets_folder + "/src/64bit",
|
|
||||||
true, true, encryptLua)
|
|
||||||
compileLua(dest_assets_folder + "/src",
|
|
||||||
dest_assets_folder + "/src",
|
|
||||||
true, false, encryptLua)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
|
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,64 +72,6 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def getCocosCommandPath() {
|
|
||||||
if (OperatingSystem.current().isWindows()) {
|
|
||||||
return 'cocos.bat'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
def env_console_path = System.getenv("COCOS_CONSOLE_ROOT")
|
|
||||||
|
|
||||||
if (env_console_path != null && !env_console_path.trim().isEmpty()) {
|
|
||||||
return new File(env_console_path.trim() + '/cocos').absolutePath
|
|
||||||
}
|
|
||||||
|
|
||||||
// on unix like system, can not get environments variables easily
|
|
||||||
// so run a shell script to get environment variable sets by cocos2d-x setup.py
|
|
||||||
new ByteArrayOutputStream().withStream { os ->
|
|
||||||
def result = exec {
|
|
||||||
executable = "/bin/bash"
|
|
||||||
args = [ "-i", project.file('get_environment.sh')]
|
|
||||||
standardOutput = os
|
|
||||||
}
|
|
||||||
ext.console_path = os.toString().trim()
|
|
||||||
}
|
|
||||||
return new File(console_path + '/cocos').absolutePath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// a method used to invoke the cocos luacompile command
|
|
||||||
def compileLua(srcDir, dstDir, doCompile, is64bit, doEncrypt) {
|
|
||||||
def compileArgs = ['luacompile', '-s', srcDir, '-d', dstDir]
|
|
||||||
if (!doCompile) {
|
|
||||||
compileArgs << '--disable-compile'
|
|
||||||
}
|
|
||||||
else if (is64bit) {
|
|
||||||
compileArgs << '--bytecode-64bit'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (doEncrypt) {
|
|
||||||
compileArgs << '-e'
|
|
||||||
compileArgs << '-k'
|
|
||||||
compileArgs << project.property('PROP_LUA_ENCRYPT_KEY')
|
|
||||||
compileArgs << '-b'
|
|
||||||
compileArgs << project.property('PROP_LUA_ENCRYPT_SIGN')
|
|
||||||
}
|
|
||||||
|
|
||||||
// commandLine compileArgs
|
|
||||||
println 'running command : ' + 'cocos ' + compileArgs.join(' ')
|
|
||||||
exec {
|
|
||||||
// if you meet problem, just replace `getCocosCommandPath()` to the path of cocos command
|
|
||||||
executable getCocosCommandPath()
|
|
||||||
args compileArgs
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove the lua files in dstDir
|
|
||||||
delete fileTree(dstDir) {
|
|
||||||
include '**/*.lua'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
android.applicationVariants.all { variant ->
|
android.applicationVariants.all { variant ->
|
||||||
|
|
||||||
delete "${projectDir}/assets"
|
delete "${projectDir}/assets"
|
||||||
|
@ -158,78 +100,6 @@ android.applicationVariants.all { variant ->
|
||||||
from "${projectDir}/../../../../../cocos/scripting/lua-bindings/script"
|
from "${projectDir}/../../../../../cocos/scripting/lua-bindings/script"
|
||||||
into "${projectDir}/assets/src/cocos"
|
into "${projectDir}/assets/src/cocos"
|
||||||
}
|
}
|
||||||
|
|
||||||
// compile & encrypt the scripts if necessary
|
|
||||||
def compileScript = (variant.name.compareTo('release') == 0)
|
|
||||||
if (project.hasProperty('PROP_COMPILE_SCRIPT')) {
|
|
||||||
compileScript = (PROP_COMPILE_SCRIPT.compareTo('1') == 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
def encryptLua = project.hasProperty('PROP_LUA_ENCRYPT') && (PROP_LUA_ENCRYPT.compareTo('1') == 0)
|
|
||||||
if (compileScript || encryptLua) {
|
|
||||||
// -1 means not build bytecode
|
|
||||||
// 0 means build 32bit only
|
|
||||||
// 1 means build 64bit only
|
|
||||||
// 2 means build both 32bit & 64bit
|
|
||||||
def buildType = -1
|
|
||||||
if (compileScript) {
|
|
||||||
def need64 = false
|
|
||||||
def need32 = false
|
|
||||||
def abis = PROP_APP_ABI.split(':').collect{it as String}
|
|
||||||
abis.each{ abi->
|
|
||||||
if (abi.compareTo('arm64-v8a') == 0) {
|
|
||||||
need64 = true
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
need32 = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (need64 && need32) {
|
|
||||||
buildType = 2
|
|
||||||
}
|
|
||||||
else if (need64) {
|
|
||||||
buildType = 1
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
buildType = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// invoke cocos command to compile & encrypt the lua files
|
|
||||||
switch (buildType) {
|
|
||||||
case -1:
|
|
||||||
compileLua("${projectDir}/assets/src",
|
|
||||||
"${projectDir}/assets/src",
|
|
||||||
false, false, encryptLua)
|
|
||||||
break
|
|
||||||
case 0:
|
|
||||||
compileLua("${projectDir}/assets/src",
|
|
||||||
"${projectDir}/assets/src",
|
|
||||||
true, false, encryptLua)
|
|
||||||
break
|
|
||||||
case 1:
|
|
||||||
compileLua("${projectDir}/assets/src",
|
|
||||||
"${projectDir}/assets/src/64bit",
|
|
||||||
true, true, encryptLua)
|
|
||||||
|
|
||||||
// remove the lua files in src dir
|
|
||||||
delete fileTree("${projectDir}/assets/src") {
|
|
||||||
include '**/*.lua'
|
|
||||||
}
|
|
||||||
delete "${projectDir}/assets/src/cocos"
|
|
||||||
break
|
|
||||||
case 2:
|
|
||||||
compileLua("${projectDir}/assets/src",
|
|
||||||
"${projectDir}/assets/src/64bit",
|
|
||||||
true, true, encryptLua)
|
|
||||||
compileLua("${projectDir}/assets/src",
|
|
||||||
"${projectDir}/assets/src",
|
|
||||||
true, false, encryptLua)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
|
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue