Skip to content

Commit

Permalink
Fix missing native dependencies on packaged artifacts (#2748)
Browse files Browse the repository at this point in the history
Summary:
## Motivation (required)

Latest versions of Fresco have missing .so files due to a race condition on Gradle tasks.
I'm imposing a task dependencies on `ndk_build_*` steps and `preBuild` steps to prevent this.

Fixes #2722
Fixes #2747

## Test Plan (required)

I've tested this against `./gradlew publishToMavenLocal` upon clean build.
Here the output:
```
$ unzip -l ~/.m2/repository/com/facebook/fresco/nativeimagetranscoder/3.1.1/nativeimagetranscoder-3.1.1.aar
Archive:  /Users/ncor/.m2/repository/com/facebook/fresco/nativeimagetranscoder/3.1.1/nativeimagetranscoder-3.1.1.aar
  Length      Date    Time    Name
---------  ---------- -----   ----
     7297  02-01-1980 00:00   R.txt
      216  02-01-1980 00:00   AndroidManifest.xml
     6034  02-01-1980 00:00   classes.jar
      121  02-01-1980 00:00   META-INF/com/android/build/gradle/aar-metadata.properties
        0  02-01-1980 00:00   jni/
        0  02-01-1980 00:00   jni/arm64-v8a/
   475392  02-01-1980 00:00   jni/arm64-v8a/libnative-imagetranscoder.so
        0  02-01-1980 00:00   jni/armeabi-v7a/
   271736  02-01-1980 00:00   jni/armeabi-v7a/libnative-imagetranscoder.so
        0  02-01-1980 00:00   jni/x86/
   557648  02-01-1980 00:00   jni/x86/libnative-imagetranscoder.so
        0  02-01-1980 00:00   jni/x86_64/
   621000  02-01-1980 00:00   jni/x86_64/libnative-imagetranscoder.so
---------                     -------
  1939444                     13 files
```

Pull Request resolved: #2748

Reviewed By: passy

Differential Revision: D50641344

Pulled By: cortinico

fbshipit-source-id: c518b4cf4e418dcec1ac30a78c03a649d5c66c13
  • Loading branch information
cortinico authored and facebook-github-bot committed Oct 25, 2023
1 parent c266579 commit ce4d35e
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 1 deletion.
1 change: 1 addition & 0 deletions animated-gif/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ android {
}
}
ndkLibs.each { lib -> makeNdkTasks lib[0], lib[1] }
preBuild.dependsOn("ndk_build_gifimage")
}

apply plugin: "com.vanniktech.maven.publish"
5 changes: 5 additions & 0 deletions imagepipeline-native/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ android {
}
}
ndkLibs.each { lib -> makeNdkTasks lib[0], lib[1] }
preBuild.dependsOn(
"ndk_build_bitmaps",
"ndk_build_imagepipeline",
"ndk_build_memchunk"
)
}

apply plugin: "com.vanniktech.maven.publish"
4 changes: 4 additions & 0 deletions native-filters/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ android {
abortOnError false
}
ndkLibs.each { lib -> makeNdkTasks lib[0], lib[1] }
preBuild.dependsOn(
"ndk_build_filters",
"ndk_build_native-filters"
)
}

apply plugin: "com.vanniktech.maven.publish"
5 changes: 4 additions & 1 deletion native-imagetranscoder/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ task fetchNativeDeps(dependsOn: [copyLibjpeg]) {
}

android {

def ndkLibs = [
['native-imagetranscoder', [copyLibjpeg]]]

Expand Down Expand Up @@ -76,6 +75,10 @@ android {
abortOnError false
}
ndkLibs.each { lib -> makeNdkTasks lib[0], lib[1] }
preBuild.dependsOn(
"ndk_build_native-imagetranscoder",
"copyLibjpeg"
)
}

apply plugin: "com.vanniktech.maven.publish"
6 changes: 6 additions & 0 deletions static-webp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ android {
abortOnError false
}
ndkLibs.each { lib -> makeNdkTasks lib[0], lib[1] }
preBuild.dependsOn(
"ndk_build_static-webp",
"copyLibjpeg",
"copyLibpng",
"copyLibwebp"
)
}

apply plugin: "com.vanniktech.maven.publish"

0 comments on commit ce4d35e

Please sign in to comment.