mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
Still build them and link them, just don't execute them. Google test is still disabled completely for the HAL and wpilibc.
71 lines
3.0 KiB
Groovy
71 lines
3.0 KiB
Groovy
|
|
import org.gradle.api.GradleException;
|
|
import org.gradle.api.Plugin;
|
|
import org.gradle.api.Project;
|
|
import org.gradle.api.Task;
|
|
import org.gradle.api.file.FileTree;
|
|
import org.gradle.api.tasks.compile.JavaCompile;
|
|
import org.gradle.language.base.internal.ProjectLayout;
|
|
import org.gradle.language.base.plugins.ComponentModelBasePlugin;
|
|
import org.gradle.language.nativeplatform.tasks.AbstractNativeSourceCompileTask;
|
|
import org.gradle.model.ModelMap;
|
|
import edu.wpi.first.toolchain.ToolchainExtension
|
|
import org.gradle.model.Mutate;
|
|
import org.gradle.api.plugins.ExtensionContainer;
|
|
import org.gradle.nativeplatform.test.googletest.GoogleTestTestSuiteBinarySpec;
|
|
import org.gradle.model.RuleSource;
|
|
import org.gradle.model.Validate;
|
|
import org.gradle.nativeplatform.NativeExecutableBinarySpec
|
|
import org.gradle.nativeplatform.NativeBinarySpec;
|
|
import org.gradle.nativeplatform.NativeComponentSpec;
|
|
import org.gradle.nativeplatform.NativeLibrarySpec;
|
|
import org.gradle.nativeplatform.SharedLibraryBinarySpec;
|
|
import org.gradle.nativeplatform.StaticLibraryBinarySpec;
|
|
import org.gradle.nativeplatform.platform.internal.NativePlatformInternal;
|
|
import org.gradle.nativeplatform.toolchain.NativeToolChain;
|
|
import org.gradle.nativeplatform.toolchain.NativeToolChainRegistry;
|
|
import org.gradle.nativeplatform.toolchain.internal.PlatformToolProvider;
|
|
import org.gradle.nativeplatform.toolchain.internal.ToolType;
|
|
import org.gradle.nativeplatform.toolchain.internal.gcc.AbstractGccCompatibleToolChain;
|
|
import org.gradle.nativeplatform.toolchain.internal.msvcpp.VisualCppToolChain;
|
|
import org.gradle.nativeplatform.toolchain.internal.tools.ToolRegistry;
|
|
import org.gradle.platform.base.BinarySpec;
|
|
import org.gradle.platform.base.ComponentSpec;
|
|
import org.gradle.platform.base.ComponentSpecContainer;
|
|
import org.gradle.platform.base.BinaryContainer;
|
|
import org.gradle.platform.base.ComponentType;
|
|
import org.gradle.platform.base.TypeBuilder;
|
|
import org.gradle.nativeplatform.tasks.ObjectFilesToBinary;
|
|
import groovy.transform.CompileStatic;
|
|
import groovy.transform.CompileDynamic
|
|
import org.gradle.nativeplatform.BuildTypeContainer
|
|
|
|
@CompileStatic
|
|
class DisableBuildingGTest implements Plugin<Project> {
|
|
@CompileStatic
|
|
public void apply(Project project) {
|
|
|
|
}
|
|
|
|
@CompileStatic
|
|
static class Rules extends RuleSource {
|
|
@CompileDynamic
|
|
private static void setBuildableFalseDynamically(NativeBinarySpec binary) {
|
|
binary.buildable = false
|
|
}
|
|
|
|
@Validate
|
|
@CompileStatic
|
|
// TODO: Move this to tc plugin
|
|
void disableCrossTests(BinaryContainer binaries, ExtensionContainer extContainer) {
|
|
final ToolchainExtension ext = extContainer.getByType(ToolchainExtension.class);
|
|
|
|
for (GoogleTestTestSuiteBinarySpec binary : binaries.withType(GoogleTestTestSuiteBinarySpec.class)) {
|
|
if (ext.getCrossCompilers().findByName(binary.getTargetPlatform().getName()) != null) {
|
|
setBuildableFalseDynamically(binary)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|