Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add header only version of chipobject #181

Merged
merged 1 commit into from
Dec 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading