Skip to content

Commit

Permalink
Add header only version of chipobject
Browse files Browse the repository at this point in the history
  • Loading branch information
ThadHouse committed Dec 8, 2023
1 parent 89b867d commit bc0659f
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 2 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ targetCompatibility = 11

allprojects {
group = "edu.wpi.first"
version = "2024.5.1"
version = "2024.5.2"

if (project.hasProperty('publishVersion')) {
version = project.publishVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import edu.wpi.first.nativeutils.dependencies.DelegatedDependencySet;
import edu.wpi.first.nativeutils.dependencies.FastDownloadDependencySet;
import edu.wpi.first.nativeutils.dependencies.NativeDependency;
import edu.wpi.first.nativeutils.dependencies.WPIHeaderOnlyMavenDependency;
import edu.wpi.first.nativeutils.dependencies.WPISharedMavenDependency;
import edu.wpi.first.nativeutils.dependencies.WPIStaticMavenDependency;
import edu.wpi.first.nativeutils.exports.DefaultExportsConfig;
Expand Down Expand Up @@ -105,6 +106,7 @@ public NativeUtilsExtension(Project project, ToolchainExtension tcExt) {
dependencyContainer = objectFactory.polymorphicDomainObjectContainer(NativeDependency.class);
addNativeDependencyType(WPIStaticMavenDependency.class, project);
addNativeDependencyType(WPISharedMavenDependency.class, project);
addNativeDependencyType(WPIHeaderOnlyMavenDependency.class, project);

addNativeDependencyType(CombinedIgnoreMissingPlatformNativeDependency.class, dependencyContainer);
addNativeDependencyType(AllPlatformsCombinedNativeDependency.class, dependencyContainer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import edu.wpi.first.nativeutils.dependencies.AllPlatformsCombinedNativeDependency;
import edu.wpi.first.nativeutils.dependencies.CombinedIgnoreMissingPlatformNativeDependency;
import edu.wpi.first.nativeutils.dependencies.NativeDependency;
import edu.wpi.first.nativeutils.dependencies.WPIHeaderOnlyMavenDependency;
import edu.wpi.first.nativeutils.dependencies.WPISharedMavenDependency;
import edu.wpi.first.nativeutils.dependencies.WPIStaticMavenDependency;

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

configs.register("chipobject_headers", WPIHeaderOnlyMavenDependency.class, c -> {
c.getGroupId().set("edu.wpi.first.ni-libraries");
c.getArtifactId().set("chipobject");
c.getHeaderClassifier().set("headers");
c.getExt().set("zip");
c.getVersion().set(dependencyVersions.getNiLibVersion());
c.getSkipAtRuntime().set(true);
c.getTargetPlatforms().add(this.platforms.roborio);
});

configs.register("visa", WPISharedMavenDependency.class, c -> {
c.getGroupId().set("edu.wpi.first.ni-libraries");
c.getArtifactId().set("visa");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package edu.wpi.first.nativeutils.dependencies;

import java.util.HashMap;
import java.util.Map;

import javax.inject.Inject;

import org.gradle.api.Project;
import org.gradle.api.file.FileCollection;
import org.gradle.api.provider.Property;
import org.gradle.nativeplatform.NativeBinarySpec;

public abstract class WPIHeaderOnlyMavenDependency extends WPIMavenDependency {
@Inject
public WPIHeaderOnlyMavenDependency(String name, Project project) {
super(name, project);
}

private final Map<NativeBinarySpec, ResolvedNativeDependency> resolvedDependencies = new HashMap<>();

@Override
public ResolvedNativeDependency resolveNativeDependency(NativeBinarySpec binary, FastDownloadDependencySet loaderDependencySet) {
ResolvedNativeDependency resolvedDep = resolvedDependencies.get(binary);
if (resolvedDep != null) {
return resolvedDep;
}

FileCollection headers = getArtifactRoots(getHeaderClassifier().getOrElse(null), ArtifactType.HEADERS, loaderDependencySet);

FileCollection sources = getProject().files();
FileCollection linkFiles = getProject().files();
FileCollection runtimeFiles = getProject().files();

resolvedDep = new ResolvedNativeDependency(headers, sources, linkFiles, runtimeFiles);

resolvedDependencies.put(binary, resolvedDep);
return resolvedDep;
}

public abstract Property<Boolean> getSkipAtRuntime();
}
2 changes: 1 addition & 1 deletion testing/cpp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import edu.wpi.first.toolchain.NativePlatforms

plugins {
id "cpp"
id "edu.wpi.first.NativeUtils" version "2024.5.1"
id "edu.wpi.first.NativeUtils" version "2024.5.2"
}

nativeUtils.addWpiNativeUtils()
Expand Down

0 comments on commit bc0659f

Please sign in to comment.