File tree Expand file tree Collapse file tree
buildSrc/src/main/kotlin/datadog/gradle/plugin
dd-java-agent/instrumentation/protobuf-3.0
dd-smoke-tests/play-common Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import com.diffplug.gradle.spotless.SpotlessExtension
2- import datadog.gradle.plugin.HostPlatform
32import datadog.gradle.plugin.ci.testAggregate
3+ import datadog.gradle.plugin.isLinuxArm64
44
55plugins {
66 kotlin(" jvm" ) version libs.versions.kotlin.plugin apply false
@@ -90,8 +90,6 @@ allprojects {
9090 dependsOn(tasks.withType<AbstractCompile >())
9191 }
9292
93- val isLinuxArm64 = HostPlatform .isLinuxArm64()
94-
9593 tasks.configureEach {
9694 if (this is JavaForkOptions ) {
9795 maxHeapSize = System .getProperty(" datadog.forkedMaxHeapSize" )
@@ -101,15 +99,15 @@ allprojects {
10199 " -XX:+HeapDumpOnOutOfMemoryError" ,
102100 " -XX:HeapDumpPath=/tmp"
103101 )
104- if (isLinuxArm64) {
102+ if (isLinuxArm64() ) {
105103 // Disable CDS to avoid SIGSEGVs on Linux arm64.
106104 jvmArgs(" -Xshare:off" )
107105 }
108106 }
109107 }
110108
111109 // Disable CDS to avoid SIGSEGVs on Linux arm64.
112- if (isLinuxArm64) {
110+ if (isLinuxArm64() ) {
113111 tasks.withType<JavaCompile >().configureEach {
114112 options.forkOptions.jvmArgs?.add(" -Xshare:off" )
115113 }
Original file line number Diff line number Diff line change 1+ package datadog.gradle.plugin
2+
3+ import org.gradle.api.Project
4+ import org.gradle.kotlin.dsl.support.serviceOf
5+ import org.gradle.platform.Architecture
6+ import org.gradle.platform.BuildPlatform
7+ import org.gradle.platform.OperatingSystem
8+ import org.gradle.platform.internal.CurrentBuildPlatform
9+
10+ /* *
11+ * Helpers built on Gradle's [BuildPlatform].
12+ *
13+ * The public [BuildPlatform] interface is not directly available elsewhere.
14+ * Build logic obtains it from the internal [CurrentBuildPlatform] service,
15+ * resolved from a [Project] via `serviceOf` — see the [Project] overloads below.
16+ */
17+ fun BuildPlatform.isLinuxArm64 (): Boolean =
18+ operatingSystem == OperatingSystem .LINUX && architecture == Architecture .AARCH64
19+
20+ fun BuildPlatform.isMacArm64 (): Boolean =
21+ operatingSystem == OperatingSystem .MAC_OS && architecture == Architecture .AARCH64
22+
23+ fun Project.isLinuxArm64 (): Boolean =
24+ serviceOf<CurrentBuildPlatform >().toBuildPlatform().isLinuxArm64()
25+
26+ fun Project.isMacArm64 (): Boolean =
27+ serviceOf<CurrentBuildPlatform >().toBuildPlatform().isMacArm64()
Load diff This file was deleted.
Original file line number Diff line number Diff line change 11package datadog.gradle.plugin.instrument
22
3- import datadog.gradle.plugin.HostPlatform
43import datadog.gradle.plugin.instrument.BuildTimeInstrumentationPlugin.Companion.BUILD_TIME_INSTRUMENTATION_PLUGIN_CONFIGURATION
4+ import datadog.gradle.plugin.isLinuxArm64
55import org.gradle.api.Action
66import org.gradle.api.Project
77import org.gradle.api.Task
@@ -74,7 +74,7 @@ abstract class InstrumentPostProcessingAction @Inject constructor(
7474 return workerExecutor.processIsolation {
7575 forkOptions {
7676 setExecutable(javaLauncher.executablePath.asFile.absolutePath)
77- if (HostPlatform .isLinuxArm64()) {
77+ if (project .isLinuxArm64()) {
7878 // Disable CDS to avoid SIGSEGVs on Linux arm64.
7979 jvmArgs(" -Xshare:off" )
8080 }
Original file line number Diff line number Diff line change 11package datadog.gradle.plugin.muzzle.tasks
22
3- import datadog.gradle.plugin.HostPlatform
3+ import datadog.gradle.plugin.isLinuxArm64
44import datadog.gradle.plugin.muzzle.MuzzleAction
55import datadog.gradle.plugin.muzzle.MuzzleDirective
66import datadog.gradle.plugin.muzzle.MuzzleExtension
@@ -103,7 +103,7 @@ abstract class MuzzleTask @Inject constructor(
103103 if (javaLauncher.metadata.languageVersion > JavaLanguageVersion .of(9 )) {
104104 jvmArgs(" --add-opens=java.base/java.lang=ALL-UNNAMED" )
105105 }
106- if (HostPlatform .isLinuxArm64()) {
106+ if (project .isLinuxArm64()) {
107107 // Disable CDS to avoid SIGSEGVs on Linux arm64.
108108 jvmArgs(" -Xshare:off" )
109109 }
Original file line number Diff line number Diff line change 11package datadog.gradle.plugin.testJvmConstraints
22
3- import datadog.gradle.plugin.HostPlatform
3+ import datadog.gradle.plugin.isLinuxArm64
44import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension.Companion.TEST_JVM_CONSTRAINTS
55import org.gradle.api.JavaVersion
66import org.gradle.api.Plugin
@@ -90,7 +90,7 @@ class TestJvmConstraintsPlugin : Plugin<Project> {
9090
9191 // Fix for Linux arm64 ByteBuddy error:
9292 // "Could not self-attach to current VM using external process"
93- if (HostPlatform .isLinuxArm64()) {
93+ if (project .isLinuxArm64()) {
9494 conditionalJvmArgs(
9595 JavaVersion .VERSION_1_9 ,
9696 listOf (" -Djdk.attach.allowAttachSelf=true" )
Original file line number Diff line number Diff line change 1- import datadog.gradle.plugin.HostPlatform
1+ import static datadog.gradle.plugin.BuildPlatformExtensionsKt.isLinuxArm64
2+ import static datadog.gradle.plugin.BuildPlatformExtensionsKt.isMacArm64
23
34plugins {
45 id ' com.google.protobuf' version ' 0.10.0'
@@ -20,7 +21,7 @@ muzzle {
2021protobuf {
2122 protoc {
2223 // There is no macOS arm64 support for protoc 3.0.0, so require Rosetta.
23- if (HostPlatform . isMacArm64()) {
24+ if (isMacArm64(project )) {
2425 artifact = " com.google.protobuf:protoc:3.0.0:osx-x86_64"
2526 } else {
2627 artifact = " com.google.protobuf:protoc:3.0.0"
@@ -29,7 +30,7 @@ protobuf {
2930}
3031
3132// TODO: protobuf supports Linux arm64 since `3.12.0`, but it is not source-compatible with 3.0.0
32- if (HostPlatform . isLinuxArm64()) {
33+ if (isLinuxArm64(project )) {
3334 tasks. matching {
3435 it. name in [
3536 " extractTestProto" ,
Original file line number Diff line number Diff line change 1- import datadog.gradle.plugin.HostPlatform
1+ import static datadog.gradle.plugin.BuildPlatformExtensionsKt.isLinuxArm64
22
33// Fix for JVM crashes (SIGSEGV / SIGABRT, exit 134) when the
44// org.gradle.playframework `compilePlayRoutes` Worker Daemon starts up on Linux arm64.
55// No-op on every other host/arch combination.
6- if (HostPlatform . isLinuxArm64()) {
6+ if (isLinuxArm64(project )) {
77 tasks. named(" compilePlayRoutes" ). configure { task ->
88 // Find the class in the hierarchy that declares the private `workerExecutor` field.
99 def workerExecutorField = null
You can’t perform that action at this time.
0 commit comments