@@ -68,20 +68,20 @@ android {
68
68
abiFilters = project(" :app" ). android. defaultConfig. ndk. abiFilters
69
69
}
70
70
}
71
-
71
+
72
72
externalNativeBuild {
73
73
cmake {
74
74
path " CMakeLists.txt"
75
75
}
76
76
}
77
-
77
+
78
78
sourceSets {
79
79
main {
80
80
jniLibs. srcDirs ' libnode/bin/'
81
81
}
82
82
main. assets. srcDirs + = ' ../install/resources/nodejs-modules'
83
83
}
84
-
84
+
85
85
lintOptions {
86
86
abortOnError false
87
87
}
@@ -114,6 +114,8 @@ task GenerateNodeProjectAssetsLists {
114
114
delete " ${ rootProject.buildDir} /nodejs-assets/file.list"
115
115
delete " ${ rootProject.buildDir} /nodejs-assets/dir.list"
116
116
117
+ ArrayList<String > file_list_arr = new ArrayList<String > ();
118
+ ArrayList<String > dir_list_arr = new ArrayList<String > ();
117
119
String file_list = " " ;
118
120
String dir_list = " " ;
119
121
@@ -123,14 +125,26 @@ task GenerateNodeProjectAssetsLists {
123
125
assets_tree. exclude(' **/*~' ) // Exclude temporary files.
124
126
assets_tree. visit { assetFile ->
125
127
if (assetFile. isDirectory()) {
126
- dir_list + = " ${ assetFile.relativePath} \n "
128
+ dir_list_arr . add( " ${ assetFile.relativePath} \n " );
127
129
} else {
128
- file_list + = " ${ assetFile.relativePath} \n "
130
+ file_list_arr . add( " ${ assetFile.relativePath} \n " );
129
131
}
130
132
}
133
+
134
+ // Ensure both files are ordered similarly across builds.
135
+ Collections . sort(file_list_arr);
136
+ Collections . sort(dir_list_arr);
137
+
131
138
def file_list_path = new File ( " ${ rootProject.buildDir} /nodejs-assets/file.list" )
139
+ for (String file : file_list_arr){
140
+ file_list + = file;
141
+ }
132
142
file_list_path. write file_list
143
+
133
144
def dir_list_path = new File ( " ${ rootProject.buildDir} /nodejs-assets/dir.list" )
145
+ for (String dir : dir_list_arr){
146
+ dir_list + = dir;
147
+ }
134
148
dir_list_path. write dir_list
135
149
}
136
150
}
@@ -433,4 +447,4 @@ if ("1".equals(shouldRebuildNativeModules)) {
433
447
tasks. getByPath(" :${ project.name} :preBuild" ). dependsOn " GenerateNodeNativeAssetsLists${ abi_name} "
434
448
}
435
449
project. android. sourceSets. main. assets. srcDirs+ = " ${ rootProject.buildDir} /nodejs-native-assets/"
436
- }
450
+ }
0 commit comments