diff --git a/base/build.gradle b/base/build.gradle index 70177ec0..e1ddfc0b 100644 --- a/base/build.gradle +++ b/base/build.gradle @@ -96,7 +96,7 @@ dependencies { api "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1" api "ru.gildor.coroutines:kotlin-coroutines-okhttp:1.0" - api "androidx.media3:media3-cast:$media3Version" + //non-OSS dependency api "androidx.media3:media3-cast:$media3Version" api "androidx.media3:media3-common:$media3Version" api "androidx.media3:media3-datasource:$media3Version" api "androidx.media3:media3-effect:$media3Version" diff --git a/checkDep.pl b/checkDep.pl new file mode 100644 index 00000000..d1eab033 --- /dev/null +++ b/checkDep.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl -- +use v5.32.0; +use strict; +use warnings; +use Data::Dump qw(dump); + +sub parentCount{ + my($node) =@_; + my $c = 0; + while( $node->{parent} ){ + ++$c; + $node = $node->{parent} + } + $c; +} + + +my @configs; +my @stack; + +open(my $fh, "-|","./gradlew :app:dependencies 2>&1") or die $!; +while(<$fh>){ + s/[\s\x0d\x0a]+\z//; + next if not length; + if( /\A(\S*?Classpath\S*)/ ){ + my $node = { + name => $1, + deps => [], + }; + push @configs,$node; + @stack = ($node); + next; + }elsif( s/\A([\s\|\-\+\\]+)//){ + my $prefixLength = length($1); + my $name = $_; + next if not $name; + next if $prefixLength < 5; + + splice @stack, $prefixLength/5; + my $parent = $stack[$#stack]; + + my $node = { + name => $name, + deps => [], + parent => $parent, + }; + push @stack, $node; + push @{$parent->{deps}}, $node; + +# if( $node->{name} =~ /firebase/ ){ +# my $parentCount = parentCount($node); +# say "$prefixLength $parentCount $node->{name} : parent=$parent->{name}"; +# } + if( $node->{name} =~ /firebase/ and not $node->{name} =~ /firebase-annotations/ ){ + while($node){ + $node->{mark} = 1; + $node = $node->{parent}; + } + } + } +} +close($fh) or die $!; + +sub showMarked{ + my($node,$indent)=(@_,""); + return if not $node->{mark}; + say "$indent$node->{name}"; + $indent .= "> "; + for(@{$node->{deps}}){ + showMarked($_,$indent); + } +} + +for(@configs){ + if( $_->{name} =~ /RuntimeClasspath/ + and not $_->{name} =~ /Test|Debug/ + ){ + showMarked($_); + } +}