Skip to content

Extend addTargetPlatformVariant to optionally accept a feature name parameter #229

@jjohannes

Description

@jjohannes

For example:

jvmDependencyConflicts {
  patch {
    module("org.lwjgl:lwjgl") {
      addTargetPlatformVariant("natives", "natives-linux", OperatingSystemFamily.LINUX, MachineArchitecture.X86_64)
      addTargetPlatformVariant("natives", "natives-linux-arm64", OperatingSystemFamily.LINUX, MachineArchitecture.ARM64)
      addTargetPlatformVariant("natives", "natives-macos", OperatingSystemFamily.MACOS, MachineArchitecture.X86_64)
      addTargetPlatformVariant("natives", "natives-macos-arm64", OperatingSystemFamily.MACOS, MachineArchitecture.ARM64)
      addTargetPlatformVariant("natives", "natives-windows", OperatingSystemFamily.WINDOWS, MachineArchitecture.X86_64)
      addTargetPlatformVariant("natives", "natives-windows-arm64", OperatingSystemFamily.WINDOWS, MachineArchitecture.ARM64)
    }
  }
}

Here, there is a Jar that is addressed normally org.lwjgl:lwjgl. This one is not target platform specific. Then there are multiple Jars all starting with the native- classifier. These are target platform specific.

With the above rule, a consumer should then be able to do:

implementation("org.lwjgl:lwjgl") // The Java classes
runtimeOnly("org.lwjgl:lwjgl") { capabilities { requireFeature("native") } } // The native code (target platform dependent)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions