Skip to content

Commit 4a7acf0

Browse files
authored
Add header only version of chipobject (#181)
1 parent 89b867d commit 4a7acf0

File tree

5 files changed

+56
-2
lines changed

5 files changed

+56
-2
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ targetCompatibility = 11
1212

1313
allprojects {
1414
group = "edu.wpi.first"
15-
version = "2024.5.1"
15+
version = "2024.5.2"
1616

1717
if (project.hasProperty('publishVersion')) {
1818
version = project.publishVersion

src/main/java/edu/wpi/first/nativeutils/NativeUtilsExtension.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import edu.wpi.first.nativeutils.dependencies.DelegatedDependencySet;
3232
import edu.wpi.first.nativeutils.dependencies.FastDownloadDependencySet;
3333
import edu.wpi.first.nativeutils.dependencies.NativeDependency;
34+
import edu.wpi.first.nativeutils.dependencies.WPIHeaderOnlyMavenDependency;
3435
import edu.wpi.first.nativeutils.dependencies.WPISharedMavenDependency;
3536
import edu.wpi.first.nativeutils.dependencies.WPIStaticMavenDependency;
3637
import edu.wpi.first.nativeutils.exports.DefaultExportsConfig;
@@ -105,6 +106,7 @@ public NativeUtilsExtension(Project project, ToolchainExtension tcExt) {
105106
dependencyContainer = objectFactory.polymorphicDomainObjectContainer(NativeDependency.class);
106107
addNativeDependencyType(WPIStaticMavenDependency.class, project);
107108
addNativeDependencyType(WPISharedMavenDependency.class, project);
109+
addNativeDependencyType(WPIHeaderOnlyMavenDependency.class, project);
108110

109111
addNativeDependencyType(CombinedIgnoreMissingPlatformNativeDependency.class, dependencyContainer);
110112
addNativeDependencyType(AllPlatformsCombinedNativeDependency.class, dependencyContainer);

src/main/java/edu/wpi/first/nativeutils/WPINativeUtilsExtension.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import edu.wpi.first.nativeutils.dependencies.AllPlatformsCombinedNativeDependency;
2323
import edu.wpi.first.nativeutils.dependencies.CombinedIgnoreMissingPlatformNativeDependency;
2424
import edu.wpi.first.nativeutils.dependencies.NativeDependency;
25+
import edu.wpi.first.nativeutils.dependencies.WPIHeaderOnlyMavenDependency;
2526
import edu.wpi.first.nativeutils.dependencies.WPISharedMavenDependency;
2627
import edu.wpi.first.nativeutils.dependencies.WPIStaticMavenDependency;
2728

@@ -527,6 +528,16 @@ public void configureDependencies(Action<DependencyVersions> dependencies) {
527528
c.getTargetPlatforms().add(this.platforms.roborio);
528529
});
529530

531+
configs.register("chipobject_headers", WPIHeaderOnlyMavenDependency.class, c -> {
532+
c.getGroupId().set("edu.wpi.first.ni-libraries");
533+
c.getArtifactId().set("chipobject");
534+
c.getHeaderClassifier().set("headers");
535+
c.getExt().set("zip");
536+
c.getVersion().set(dependencyVersions.getNiLibVersion());
537+
c.getSkipAtRuntime().set(true);
538+
c.getTargetPlatforms().add(this.platforms.roborio);
539+
});
540+
530541
configs.register("visa", WPISharedMavenDependency.class, c -> {
531542
c.getGroupId().set("edu.wpi.first.ni-libraries");
532543
c.getArtifactId().set("visa");
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package edu.wpi.first.nativeutils.dependencies;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import javax.inject.Inject;
7+
8+
import org.gradle.api.Project;
9+
import org.gradle.api.file.FileCollection;
10+
import org.gradle.api.provider.Property;
11+
import org.gradle.nativeplatform.NativeBinarySpec;
12+
13+
public abstract class WPIHeaderOnlyMavenDependency extends WPIMavenDependency {
14+
@Inject
15+
public WPIHeaderOnlyMavenDependency(String name, Project project) {
16+
super(name, project);
17+
}
18+
19+
private final Map<NativeBinarySpec, ResolvedNativeDependency> resolvedDependencies = new HashMap<>();
20+
21+
@Override
22+
public ResolvedNativeDependency resolveNativeDependency(NativeBinarySpec binary, FastDownloadDependencySet loaderDependencySet) {
23+
ResolvedNativeDependency resolvedDep = resolvedDependencies.get(binary);
24+
if (resolvedDep != null) {
25+
return resolvedDep;
26+
}
27+
28+
FileCollection headers = getArtifactRoots(getHeaderClassifier().getOrElse(null), ArtifactType.HEADERS, loaderDependencySet);
29+
30+
FileCollection sources = getProject().files();
31+
FileCollection linkFiles = getProject().files();
32+
FileCollection runtimeFiles = getProject().files();
33+
34+
resolvedDep = new ResolvedNativeDependency(headers, sources, linkFiles, runtimeFiles);
35+
36+
resolvedDependencies.put(binary, resolvedDep);
37+
return resolvedDep;
38+
}
39+
40+
public abstract Property<Boolean> getSkipAtRuntime();
41+
}

testing/cpp/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import edu.wpi.first.toolchain.NativePlatforms
22

33
plugins {
44
id "cpp"
5-
id "edu.wpi.first.NativeUtils" version "2024.5.1"
5+
id "edu.wpi.first.NativeUtils" version "2024.5.2"
66
}
77

88
nativeUtils.addWpiNativeUtils()

0 commit comments

Comments
 (0)