Skip to content

Commit bdb962d

Browse files
PatriceJiangminggo
authored andcommitted
[Android] gradle copy resources to assets folder before preDebug|ReleaseBuild (#19732)
* fix get environment * update gradle.scripts * fix error * remove extract modifications
1 parent 6569fc5 commit bdb962d

File tree

16 files changed

+237
-134
lines changed

16 files changed

+237
-134
lines changed

templates/cpp-template-default/proj.android/app/build.gradle

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,22 @@ android {
111111
}
112112

113113
android.applicationVariants.all { variant ->
114-
def project_root_folder = "${buildDir}/../../.."
115-
def dest_assets_folder = "${buildDir}/../assets"
114+
def project_root_folder = "${projectDir}/../.."
115+
def dest_assets_folder = "${projectDir}/assets"
116116

117117
// delete previous files first
118118
delete dest_assets_folder
119-
120-
variant.mergeAssets.doFirst {
119+
def targetName = variant.name.capitalize()
120+
def copyTaskName = "copy${targetName}ResourcesToAssets"
121+
122+
tasks.register(copyTaskName) {
121123
copy {
122124
from project_root_folder + "/Resources"
123125
into dest_assets_folder
124126
exclude "**/*.gz"
125127
}
126128
}
129+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
127130
}
128131

129132
dependencies {

templates/js-template-default/frameworks/runtime-src/proj.android/app/build.gradle

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,19 @@ def getCocosCommandPath() {
114114
return 'cocos.bat'
115115
}
116116
else {
117+
118+
def env_console_path = System.getenv("COCOS_CONSOLE_ROOT")
119+
120+
if (env_console_path != null && !env_console_path.trim().isEmpty()) {
121+
return new File(env_console_path.trim() + '/cocos').absolutePath
122+
}
123+
117124
// on unix like system, can not get environments variables easily
118125
// so run a shell script to get environment variable sets by cocos2d-x setup.py
119126
new ByteArrayOutputStream().withStream { os ->
120127
def result = exec {
121-
executable = project.file('get_environment.sh')
128+
executable = "/bin/bash"
129+
args = [ "-i", project.file('get_environment.sh')]
122130
standardOutput = os
123131
}
124132
ext.console_path = os.toString().trim()
@@ -146,13 +154,15 @@ def compileJS(srcDir, dstDir) {
146154
}
147155

148156
android.applicationVariants.all { variant ->
149-
def project_root_folder = "${buildDir}/../../../../.."
150-
def dest_assets_folder = "${buildDir}/../assets"
157+
def project_root_folder = "${projectDir}/../../../.."
158+
def dest_assets_folder = "${projectDir}/assets"
151159

152160
// delete previous files first
153161
delete dest_assets_folder
154-
155-
variant.mergeAssets.doFirst {
162+
def targetName = variant.name.capitalize()
163+
def copyTaskName = "copy${targetName}ResourcesToAssets"
164+
165+
tasks.register(copyTaskName) {
156166
copy {
157167
from project_root_folder + "/res"
158168
into dest_assets_folder + "/res"
@@ -184,6 +194,7 @@ android.applicationVariants.all { variant ->
184194
compileJS(dest_assets_folder, dest_assets_folder)
185195
}
186196
}
197+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
187198
}
188199

189200
dependencies {
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
#!/bin/bash
22

3-
source ~/.bash_profile
4-
echo $COCOS_CONSOLE_ROOT
3+
if [ -f $HOME/.bashrc ]; then
4+
source $HOME/.bashrc
5+
fi
6+
7+
if [ -f $HOME/.bash_profile ]; then
8+
source $HOME/.bash_profile
9+
fi
10+
11+
echo $COCOS_CONSOLE_ROOT

templates/lua-template-default/frameworks/runtime-src/proj.android/app/build.gradle

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,19 @@ def getCocosCommandPath() {
115115
return 'cocos.bat'
116116
}
117117
else {
118+
119+
def env_console_path = System.getenv("COCOS_CONSOLE_ROOT")
120+
121+
if (env_console_path != null && !env_console_path.trim().isEmpty()) {
122+
return new File(env_console_path.trim() + '/cocos').absolutePath
123+
}
124+
118125
// on unix like system, can not get environments variables easily
119126
// so run a shell script to get environment variable sets by cocos2d-x setup.py
120127
new ByteArrayOutputStream().withStream { os ->
121128
def result = exec {
122-
executable = project.file('get_environment.sh')
129+
executable = "/bin/bash"
130+
args = [ "-i", project.file('get_environment.sh')]
123131
standardOutput = os
124132
}
125133
ext.console_path = os.toString().trim()
@@ -161,13 +169,16 @@ def compileLua(srcDir, dstDir, doCompile, is64bit, doEncrypt) {
161169
}
162170

163171
android.applicationVariants.all { variant ->
164-
def project_root_folder = "${buildDir}/../../../../.."
165-
def dest_assets_folder = "${buildDir}/../assets"
172+
def project_root_folder = "${projectDir}/../../../.."
173+
def dest_assets_folder = "${projectDir}/assets"
166174

167175
// delete previous files first
168176
delete dest_assets_folder
169177

170-
variant.mergeAssets.doFirst {
178+
def targetName = variant.name.capitalize()
179+
def copyTaskName = "copy${targetName}ResourcesToAssets"
180+
181+
tasks.register(copyTaskName) {
171182
copy {
172183
from project_root_folder + "/res"
173184
into dest_assets_folder + "/res"
@@ -179,7 +190,7 @@ android.applicationVariants.all { variant ->
179190
}
180191

181192
// copy {
182-
// from "${buildDir}/../../../../cocos2d-x/cocos/scripting/lua-bindings/script"
193+
// from "${projectDir}/../../../cocos2d-x/cocos/scripting/lua-bindings/script"
183194
// into dest_assets_folder + "/src/cocos"
184195
// }
185196

@@ -255,6 +266,7 @@ android.applicationVariants.all { variant ->
255266
}
256267
}
257268
}
269+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
258270
}
259271

260272
dependencies {
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
#!/bin/bash
22

3-
source ~/.bash_profile
4-
echo $COCOS_CONSOLE_ROOT
3+
if [ -f $HOME/.bashrc ]; then
4+
source $HOME/.bashrc
5+
fi
6+
7+
if [ -f $HOME/.bash_profile ]; then
8+
source $HOME/.bash_profile
9+
fi
10+
11+
echo $COCOS_CONSOLE_ROOT

tests/cpp-empty-test/proj.android/app/build.gradle

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ android {
5151
java.srcDir "src"
5252
res.srcDir "res"
5353
manifest.srcFile "AndroidManifest.xml"
54-
assets.srcDir "../../Resources"
54+
assets.srcDir "assets"
5555
}
5656

5757
externalNativeBuild {
@@ -112,16 +112,19 @@ android {
112112
}
113113

114114
android.applicationVariants.all { variant ->
115-
// delete previous files first
116-
delete "${buildDir}/intermediates/assets/${variant.dirName}"
117115

118-
variant.mergeAssets.doLast {
116+
delete "${projectDir}/assets"
117+
118+
def targetName = variant.name.capitalize()
119+
def copyTaskName = "copy${targetName}ResourcesToAssets"
120+
tasks.register(copyTaskName) {
119121
copy {
120-
from "${buildDir}/../../../Resources"
121-
into "${buildDir}/intermediates/assets/${variant.dirName}"
122+
from "${projectDir}/../../Resources"
123+
into "${projectDir}/assets"
122124
exclude "**/*.gz"
123125
}
124126
}
127+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
125128
}
126129

127130
dependencies {

tests/cpp-tests/proj.android/app/build.gradle

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ android {
5050
java.srcDir "src"
5151
res.srcDir "res"
5252
manifest.srcFile "AndroidManifest.xml"
53+
assets.srcDir "assets"
5354
}
5455

5556
externalNativeBuild {
@@ -110,16 +111,18 @@ android {
110111
}
111112

112113
android.applicationVariants.all { variant ->
113-
// delete previous files first
114-
delete "${buildDir}/intermediates/assets/${variant.dirName}"
115114

116-
variant.mergeAssets.doLast {
115+
delete "${projectDir}/assets"
116+
def targetName = variant.name.capitalize()
117+
def copyTaskName = "copy${targetName}ResourcesToAssets"
118+
tasks.register(copyTaskName) {
117119
copy {
118-
from "${buildDir}/../../../Resources"
119-
into "${buildDir}/intermediates/assets/${variant.dirName}"
120-
exclude "**/*.gz"
120+
from "${projectDir}/../../Resources"
121+
into "${projectDir}/assets"
122+
exclude "**/*.gz"
121123
}
122124
}
125+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
123126
}
124127

125128
dependencies {

tests/game-controller-test/proj.android/app/build.gradle

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ android {
2626
java.srcDir "src"
2727
res.srcDir "res"
2828
manifest.srcFile "AndroidManifest.xml"
29+
assets.srcDir "assets"
2930
}
3031

3132
externalNativeBuild {
@@ -81,16 +82,18 @@ buildTypes {
8182
}
8283

8384
android.applicationVariants.all { variant ->
84-
// delete previous files first
85-
delete "${buildDir}/intermediates/assets/${variant.dirName}"
8685

87-
variant.mergeAssets.doLast {
86+
delete "${projectDir}/assets"
87+
def targetName = variant.name.capitalize()
88+
def copyTaskName = "copy${targetName}ResourcesToAssets"
89+
tasks.register(copyTaskName) {
8890
copy {
89-
from "${buildDir}/../../../Resources"
90-
into "${buildDir}/intermediates/assets/${variant.dirName}"
91+
from "${projectDir}/../../Resources"
92+
into "${projectDir}/assets"
9193
exclude "**/*.gz"
9294
}
9395
}
96+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
9497
}
9598

9699
dependencies {

tests/js-tests/project/proj.android/app/build.gradle

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ android {
5050
java.srcDir "src"
5151
res.srcDir "res"
5252
manifest.srcFile "AndroidManifest.xml"
53+
assets.srcDir "assets"
5354
}
5455

5556
externalNativeBuild {
@@ -114,11 +115,19 @@ def getCocosCommandPath() {
114115
return 'cocos.bat'
115116
}
116117
else {
118+
119+
def env_console_path = System.getenv("COCOS_CONSOLE_ROOT")
120+
121+
if (env_console_path != null && !env_console_path.trim().isEmpty()) {
122+
return new File(env_console_path.trim() + '/cocos').absolutePath
123+
}
124+
117125
// on unix like system, can not get environments variables easily
118126
// so run a shell script to get environment variable sets by cocos2d-x setup.py
119127
new ByteArrayOutputStream().withStream { os ->
120128
def result = exec {
121-
executable = project.file('get_environment.sh')
129+
executable = "/bin/bash"
130+
args = [ "-i", project.file('get_environment.sh')]
122131
standardOutput = os
123132
}
124133
ext.console_path = os.toString().trim()
@@ -145,41 +154,43 @@ def compileJS(srcDir, dstDir) {
145154
}
146155

147156
android.applicationVariants.all { variant ->
148-
// delete previous files first
149-
delete "${buildDir}/intermediates/assets/${variant.dirName}"
150-
151-
variant.mergeAssets.doLast {
157+
158+
delete "${projectDir}/assets"
159+
def targetName = variant.name.capitalize()
160+
def copyTaskName = "copy${targetName}ResourcesToAssets"
161+
162+
tasks.register(copyTaskName) {
152163
copy {
153-
from "${buildDir}/../../../../res"
154-
into "${buildDir}/intermediates/assets/${variant.dirName}/res"
164+
from "${projectDir}/../../../res"
165+
into "${projectDir}/assets/res"
155166
}
156167

157168
copy {
158-
from "${buildDir}/../../../../resjs"
159-
into "${buildDir}/intermediates/assets/${variant.dirName}/res/resjs"
169+
from "${projectDir}/../../../resjs"
170+
into "${projectDir}/assets/res/resjs"
160171
}
161172

162173
copy {
163-
from "${buildDir}/../../../../src"
164-
into "${buildDir}/intermediates/assets/${variant.dirName}/src"
174+
from "${projectDir}/../../../src"
175+
into "${projectDir}/assets/src"
165176
}
166177

167178
copy {
168-
from("${buildDir}/../../../../../cpp-tests/Resources") {
179+
from("${projectDir}/../../../../cpp-tests/Resources") {
169180
exclude "**/*.gz"
170181
}
171-
into "${buildDir}/intermediates/assets/${variant.dirName}/res"
182+
into "${projectDir}/assets/res"
172183
}
173184

174185
copy {
175-
from "${buildDir}/../../../../../../cocos/scripting/js-bindings/script"
176-
into "${buildDir}/intermediates/assets/${variant.dirName}/script"
186+
from "${projectDir}/../../../../../cocos/scripting/js-bindings/script"
187+
into "${projectDir}/assets/script"
177188
}
178189

179190
copy {
180-
from "${buildDir}/../../../../main.js"
181-
from "${buildDir}/../../../../project.json"
182-
into "${buildDir}/intermediates/assets/${variant.dirName}"
191+
from "${projectDir}/../../../main.js"
192+
from "${projectDir}/../../../project.json"
193+
into "${projectDir}/assets"
183194
}
184195

185196
// compile the scripts if necessary
@@ -189,10 +200,11 @@ android.applicationVariants.all { variant ->
189200
}
190201

191202
if (compileScript) {
192-
compileJS("${buildDir}/intermediates/assets/${variant.dirName}",
193-
"${buildDir}/intermediates/assets/${variant.dirName}")
203+
compileJS("${projectDir}/assets",
204+
"${projectDir}/assets")
194205
}
195206
}
207+
tasks.getByName("pre${targetName}Build").dependsOn copyTaskName
196208
}
197209

198210
dependencies {
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
#!/bin/bash
22

3-
source ~/.bash_profile
4-
echo $COCOS_CONSOLE_ROOT
3+
if [ -f $HOME/.bashrc ]; then
4+
source $HOME/.bashrc
5+
fi
6+
7+
if [ -f $HOME/.bash_profile ]; then
8+
source $HOME/.bash_profile
9+
fi
10+
11+
echo $COCOS_CONSOLE_ROOT

0 commit comments

Comments
 (0)