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 ->
|
||||
def project_root_folder = "${projectDir}/../../../.."
|
||||
def dest_assets_folder = "${projectDir}/assets"
|
||||
|
@ -155,78 +97,6 @@ android.applicationVariants.all { variant ->
|
|||
// from "${projectDir}/../../../cocos2d-x/cocos/scripting/lua-bindings/script"
|
||||
// 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
|
||||
}
|
||||
|
|
|
@ -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 ->
|
||||
|
||||
delete "${projectDir}/assets"
|
||||
|
@ -158,78 +100,6 @@ android.applicationVariants.all { variant ->
|
|||
from "${projectDir}/../../../../../cocos/scripting/lua-bindings/script"
|
||||
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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue