/* * This file is a part of the SteamWar software. * * Copyright (C) 2026 SteamWar.de-Serverteam * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import org.gradle.api.Project import org.gradle.api.artifacts.MinimalExternalModuleDependency import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.provider.Provider import javax.inject.Inject abstract class WidenerExtension { @get:Inject abstract val project: Project abstract val inputJars: ConfigurableFileCollection abstract val accessWidenerFiles: ConfigurableFileCollection fun fromCatalog(vararg dependencies: Provider) { dependencies.map { dependency -> project.provider { val dep = dependency.get() project.configurations.getByName("compileClasspath") .resolvedConfiguration .resolvedArtifacts .first { it.moduleVersion.id.module.group == dep.module.group && it.moduleVersion.id.module.name == dep.module.name } .file } }.let { inputJars.from(it) } } }