Skip to content

Commit

Permalink
get transitive dependencies for source jars
Browse files Browse the repository at this point in the history
  • Loading branch information
jwill committed Feb 7, 2025
1 parent 0e35451 commit ea8fe7a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
13 changes: 12 additions & 1 deletion pkgs/jnigen/bin/download_maven_jars.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'dart:io';
import 'package:jnigen/jnigen.dart';
import 'package:jnigen/src/tools/gradle_tools.dart';
import 'package:jnigen/tools.dart';
import 'package:path/path.dart';

/// Downloads maven dependencies downloaded by equivalent jnigen invocation.
///
Expand All @@ -17,8 +18,18 @@ void main(List<String> args) async {
if (mavenDownloads != null) {
await GradleTools.downloadMavenSources(
GradleTools.deps(mavenDownloads.sourceDeps), mavenDownloads.sourceDir);
// Include sources in jar download to make sure transitive
// dependencies are included
await GradleTools.downloadMavenJars(
GradleTools.deps(mavenDownloads.jarOnlyDeps), mavenDownloads.jarDir);
GradleTools.deps(
mavenDownloads.jarOnlyDeps + mavenDownloads.sourceDeps),
mavenDownloads.jarDir);
// // remove duplicated jars
for (var dep in mavenDownloads.sourceDeps) {
final filename =
MavenDependency.fromString(dep).filename(isSource: false);
File(join(mavenDownloads.jarDir, filename)).deleteSync();
}
await Directory(mavenDownloads.jarDir)
.list()
.map((entry) => entry.path)
Expand Down
13 changes: 12 additions & 1 deletion pkgs/jnigen/lib/src/summary/summary.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:path/path.dart';

import '../../tools.dart';
import '../config/config.dart';
import '../elements/elements.dart';
Expand Down Expand Up @@ -125,8 +127,17 @@ Future<Classes> getSummary(Config config) async {
await Directory(jarPath).create(recursive: true);
await GradleTools.downloadMavenSources(
GradleTools.deps(mavenDl.sourceDeps), mavenDl.sourceDir);
// Include sources in jar download to make sure transitive
// dependencies are included
await GradleTools.downloadMavenJars(
GradleTools.deps(mavenDl.jarOnlyDeps), mavenDl.jarDir);
GradleTools.deps(mavenDl.jarOnlyDeps + mavenDl.sourceDeps),
mavenDl.jarDir);
for (var dep in mavenDl.sourceDeps) {
log.info(dep);
final filename =
MavenDependency.fromString(dep).filename(isSource: false);
File(join(mavenDl.jarDir, filename)).deleteSync();
}
extraJars.addAll(await Directory(jarPath)
.list()
.where((entry) => entry.path.endsWith('.jar'))
Expand Down

0 comments on commit ea8fe7a

Please sign in to comment.