Generate IDE run configs on a per config basis. Allows for much finer grain control over what run configs are generated.
Defaults to generate all run configs on the root project.
This commit is contained in:
		
							parent
							
								
									6b481fbcd6
								
							
						
					
					
						commit
						24c166fc79
					
				
					 7 changed files with 33 additions and 5 deletions
				
			
		|  | @ -60,7 +60,6 @@ public class LoomGradleExtension { | |||
| 	public String refmapName; | ||||
| 	public String loaderLaunchMethod; | ||||
| 	public boolean remapMod = true; | ||||
| 	public boolean autoGenIDERuns; | ||||
| 	public String customManifest = null; | ||||
| 	public File accessWidener = null; | ||||
| 	public Function<String, Object> intermediaryUrl = mcVer -> "https://maven.fabricmc.net/net/fabricmc/intermediary/" + mcVer + "/intermediary-" + mcVer + "-v2.jar"; | ||||
|  | @ -115,7 +114,6 @@ public class LoomGradleExtension { | |||
| 
 | ||||
| 	public LoomGradleExtension(Project project) { | ||||
| 		this.project = project; | ||||
| 		this.autoGenIDERuns = isRootProject(); | ||||
| 		this.unmappedMods = project.files(); | ||||
| 		this.runConfigs = project.container(RunConfigSettings.class, | ||||
| 				baseName -> new RunConfigSettings(project, baseName)); | ||||
|  |  | |||
|  | @ -168,9 +168,7 @@ public final class CompileConfiguration { | |||
| 			project1.getTasks().getByName("eclipse").finalizedBy(project1.getTasks().getByName("genEclipseRuns")); | ||||
| 			project1.getTasks().getByName("cleanEclipse").finalizedBy(project1.getTasks().getByName("cleanEclipseRuns")); | ||||
| 
 | ||||
| 			if (extension.autoGenIDERuns) { | ||||
| 				SetupIntelijRunConfigs.setup(project1); | ||||
| 			} | ||||
| 			SetupIntelijRunConfigs.setup(project1); | ||||
| 
 | ||||
| 			// Enables the default mod remapper | ||||
| 			if (extension.remapMod) { | ||||
|  |  | |||
|  | @ -92,6 +92,13 @@ public final class RunConfigSettings implements Named { | |||
| 	 */ | ||||
| 	private final String baseName; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * When true a run configuration file will be generated for IDE's. | ||||
| 	 * | ||||
| 	 * <p>By default only run configs on the root project will be generated. | ||||
| 	 */ | ||||
| 	private boolean generateIDEConfig; | ||||
| 
 | ||||
| 	private final Project project; | ||||
| 	private final LoomGradleExtension extension; | ||||
| 
 | ||||
|  | @ -99,6 +106,7 @@ public final class RunConfigSettings implements Named { | |||
| 		this.baseName = baseName; | ||||
| 		this.project = project; | ||||
| 		this.extension = project.getExtensions().getByType(LoomGradleExtension.class); | ||||
| 		this.generateIDEConfig = extension.isRootProject(); | ||||
| 
 | ||||
| 		source("main"); | ||||
| 		runDir("run"); | ||||
|  | @ -232,6 +240,10 @@ public final class RunConfigSettings implements Named { | |||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	public void generateIDEConfig(boolean generateIDEConfig) { | ||||
| 		this.generateIDEConfig = generateIDEConfig; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Add the {@code -XstartOnFirstThread} JVM argument when on OSX. | ||||
| 	 */ | ||||
|  | @ -287,4 +299,8 @@ public final class RunConfigSettings implements Named { | |||
| 			file.mkdir(); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public boolean shouldGenerateIDEConfig() { | ||||
| 		return generateIDEConfig; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -72,6 +72,10 @@ public class SetupIntelijRunConfigs { | |||
| 		} | ||||
| 
 | ||||
| 		for (RunConfigSettings settings : extension.getRunConfigs()) { | ||||
| 			if (!settings.shouldGenerateIDEConfig()) { | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			RunConfig config = RunConfig.runConfig(project, settings); | ||||
| 			String name = config.configName.replaceAll("[^a-zA-Z0-9$_]", "_"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -43,6 +43,10 @@ public class GenEclipseRunsTask extends AbstractLoomTask { | |||
| 		LoomGradleExtension extension = getExtension(); | ||||
| 
 | ||||
| 		for (RunConfigSettings settings : extension.getRunConfigs()) { | ||||
| 			if (!settings.shouldGenerateIDEConfig()) { | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			String name = settings.getName(); | ||||
| 
 | ||||
| 			File configs = new File(getProject().getRootDir(), eclipseModel.getProject().getName() + "_" + name + ".launch"); | ||||
|  |  | |||
|  | @ -84,6 +84,10 @@ public class GenIdeaProjectTask extends AbstractLoomTask { | |||
| 		} | ||||
| 
 | ||||
| 		for (RunConfigSettings settings : getExtension().getRunConfigs()) { | ||||
| 			if (!settings.shouldGenerateIDEConfig()) { | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			runManager.appendChild(RunConfig.runConfig(project, settings).genRuns(runManager)); | ||||
| 			settings.makeRunDir(); | ||||
| 		} | ||||
|  |  | |||
|  | @ -64,6 +64,10 @@ public class GenVsCodeProjectTask extends AbstractLoomTask { | |||
| 		VsCodeLaunch launch = new VsCodeLaunch(); | ||||
| 
 | ||||
| 		for (RunConfigSettings settings : getExtension().getRunConfigs()) { | ||||
| 			if (!settings.shouldGenerateIDEConfig()) { | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			launch.add(RunConfig.runConfig(project, settings)); | ||||
| 			settings.makeRunDir(); | ||||
| 		} | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue