mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
gradle: root external project wrong replacement fix
This commit is contained in:
+1
-1
@@ -27,7 +27,7 @@ import java.util.Set;
|
||||
* @author Vladislav.Soroka
|
||||
* @since 7/14/2014
|
||||
*/
|
||||
public class DefaultExternalSourceDirectorySet implements ExternalSourceDirectorySet {
|
||||
public class DefaultExternalSourceDirectorySet implements ModifiableExternalSourceDirectorySet {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@NotNull
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.externalSystem.model;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
* @since 10/3/2014
|
||||
*/
|
||||
public interface ModifiableExternalSourceDirectorySet extends ExternalSourceDirectorySet {
|
||||
void setOutputDir(File outputPath);
|
||||
}
|
||||
+7
-19
@@ -258,12 +258,7 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
|
||||
buildDir = buildDir == null ? externalProject.getBuildDir() : buildDir;
|
||||
|
||||
if (!inheritOutputDirs) {
|
||||
boolean isInitialProjectDataModified = fixCompileOutputPaths(compileOutputPaths, externalProject);
|
||||
if (isInitialProjectDataModified) {
|
||||
final DataNode<ProjectData> projectDataNode = ExternalSystemApiUtil.findParent(ideModule, ProjectKeys.PROJECT);
|
||||
assert projectDataNode != null;
|
||||
projectDataNode.createOrReplaceChild(ExternalProjectDataService.KEY, externalProject);
|
||||
}
|
||||
fixCompileOutputPaths(compileOutputPaths, externalProject);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -714,9 +709,8 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
|
||||
return taskName.toLowerCase(Locale.ENGLISH).contains("idea");
|
||||
}
|
||||
|
||||
private static boolean fixCompileOutputPaths(@NotNull Map<ExternalSystemSourceType, File> compileOutputPaths,
|
||||
@NotNull ExternalProject externalProject) {
|
||||
boolean isInitialProjectDataModified = false;
|
||||
private static void fixCompileOutputPaths(@NotNull Map<ExternalSystemSourceType, File> compileOutputPaths,
|
||||
@NotNull ExternalProject externalProject) {
|
||||
final File sourceCompileOutputPath = compileOutputPaths.get(ExternalSystemSourceType.SOURCE);
|
||||
if (sourceCompileOutputPath == null) {
|
||||
addCompileOutputPath(compileOutputPaths, externalProject, MAIN_SOURCE_SET, ExternalSystemSourceType.SOURCE);
|
||||
@@ -726,14 +720,12 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
|
||||
final ExternalSourceSet mainSourceSet = externalProject.getSourceSets().get(MAIN_SOURCE_SET);
|
||||
if (mainSourceSet != null) {
|
||||
final ExternalSourceDirectorySet sourceDirectories = mainSourceSet.getSources().get(ExternalSystemSourceType.SOURCE);
|
||||
if (sourceDirectories instanceof DefaultExternalSourceDirectorySet) {
|
||||
((DefaultExternalSourceDirectorySet)sourceDirectories).setOutputDir(sourceCompileOutputPath);
|
||||
isInitialProjectDataModified = true;
|
||||
if (sourceDirectories instanceof ModifiableExternalSourceDirectorySet) {
|
||||
((ModifiableExternalSourceDirectorySet)sourceDirectories).setOutputDir(sourceCompileOutputPath);
|
||||
}
|
||||
final ExternalSourceDirectorySet resourceDirectories = mainSourceSet.getSources().get(ExternalSystemSourceType.RESOURCE);
|
||||
if (resourceDirectories instanceof DefaultExternalSourceDirectorySet) {
|
||||
((DefaultExternalSourceDirectorySet)resourceDirectories).setOutputDir(sourceCompileOutputPath);
|
||||
isInitialProjectDataModified = true;
|
||||
if (resourceDirectories instanceof ModifiableExternalSourceDirectorySet) {
|
||||
((ModifiableExternalSourceDirectorySet)resourceDirectories).setOutputDir(sourceCompileOutputPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -749,18 +741,14 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
|
||||
final ExternalSourceDirectorySet testDirectories = testSourceSet.getSources().get(ExternalSystemSourceType.TEST);
|
||||
if (testDirectories instanceof DefaultExternalSourceDirectorySet) {
|
||||
((DefaultExternalSourceDirectorySet)testDirectories).setOutputDir(testCompileOutputPath);
|
||||
isInitialProjectDataModified = true;
|
||||
}
|
||||
final ExternalSourceDirectorySet testResourceDirectories =
|
||||
testSourceSet.getSources().get(ExternalSystemSourceType.TEST_RESOURCE);
|
||||
if (testResourceDirectories instanceof DefaultExternalSourceDirectorySet) {
|
||||
((DefaultExternalSourceDirectorySet)testResourceDirectories).setOutputDir(testCompileOutputPath);
|
||||
isInitialProjectDataModified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return isInitialProjectDataModified;
|
||||
}
|
||||
|
||||
private static void addCompileOutputPath(@NotNull Map<ExternalSystemSourceType, File> compileOutputPaths,
|
||||
|
||||
Reference in New Issue
Block a user