use of org.jetbrains.jps.model.module.JpsModule in project android by JetBrains.
the class AndroidBuilderTest method testFilteredResources.
public void testFilteredResources() throws Exception {
final MyExecutor executor = new MyExecutor("com.example.simple");
final JpsModule module = setUpSimpleAndroidStructure(new String[] { "src" }, executor, null).getFirst();
final JpsAndroidModuleProperties props = ((JpsAndroidModuleExtensionImpl) AndroidJpsUtil.getExtension(module)).getProperties();
rebuildAll();
checkMakeUpToDate(executor);
props.USE_CUSTOM_APK_RESOURCE_FOLDER = true;
props.CUSTOM_APK_RESOURCE_FOLDER = "/target/filtered-res";
makeAll();
checkBuildLog(executor, "expected_log");
checkMakeUpToDate(executor);
change(getProjectPath("target/filtered-res/values/strings.xml"));
makeAll();
checkBuildLog(executor, "expected_log_1");
checkMakeUpToDate(executor);
}
use of org.jetbrains.jps.model.module.JpsModule in project android by JetBrains.
the class AndroidBuilderTest method testPreDexing.
public void testPreDexing() throws Exception {
final MyExecutor executor = new MyExecutor("com.example.simple");
final JpsSdk<JpsSimpleElement<JpsAndroidSdkProperties>> androidSdk = addJdkAndAndroidSdk();
addPathPatterns(executor, androidSdk);
final JpsModule appModule = addAndroidModule("app", new String[] { "src" }, "app", "app", androidSdk).getFirst();
final JpsModule libModule = addAndroidModule("lib2", new String[] { "src" }, "lib", "lib2", androidSdk).getFirst();
final JpsModule libModule1 = addAndroidModule("lib1", new String[] { "src" }, "lib1", "lib1", androidSdk).getFirst();
final JpsAndroidModuleExtension libExtension = AndroidJpsUtil.getExtension(libModule);
assert libExtension != null;
final JpsAndroidModuleProperties libProps = ((JpsAndroidModuleExtensionImpl) libExtension).getProperties();
libProps.PROJECT_TYPE = PROJECT_TYPE_LIBRARY;
final JpsAndroidModuleExtension libExtension1 = AndroidJpsUtil.getExtension(libModule1);
assert libExtension1 != null;
final JpsAndroidModuleProperties libProps1 = ((JpsAndroidModuleExtensionImpl) libExtension1).getProperties();
libProps1.PROJECT_TYPE = PROJECT_TYPE_LIBRARY;
appModule.getDependenciesList().addModuleDependency(libModule);
libModule.getDependenciesList().addModuleDependency(libModule1);
final JpsLibrary lib = appModule.addModuleLibrary("ext_lib", JpsJavaLibraryType.INSTANCE);
lib.addRoot(new File(getProjectPath("app/libs/external_jar.jar")), JpsOrderRootType.COMPILED);
appModule.getDependenciesList().addLibraryDependency(lib);
final JpsLibrary lib1 = appModule.addModuleLibrary("ext_lib_1", JpsJavaLibraryType.INSTANCE);
lib1.addRoot(new File(getProjectPath("lib/libs/external_jar_1.jar")), JpsOrderRootType.COMPILED);
libModule.getDependenciesList().addLibraryDependency(lib1);
doBuild(CompileScopeTestBuilder.rebuild().allModules().targetTypes(AndroidManifestMergingTarget.MyTargetType.INSTANCE, AndroidDexBuildTarget.MyTargetType.INSTANCE, AndroidResourceCachingBuildTarget.MyTargetType.INSTANCE, AndroidResourcePackagingBuildTarget.MyTargetType.INSTANCE, AndroidPackagingBuildTarget.MyTargetType.INSTANCE, AndroidLibraryPackagingTarget.MyTargetType.INSTANCE, AndroidPackagingBuildTarget.MyTargetType.INSTANCE)).assertSuccessful();
checkBuildLog(executor, "expected_log");
executor.clear();
makeAll().assertSuccessful();
checkBuildLog(executor, "expected_log_1");
executor.clear();
doBuild(CompileScopeTestBuilder.make().allModules().targetTypes(AndroidManifestMergingTarget.MyTargetType.INSTANCE, AndroidDexBuildTarget.MyTargetType.INSTANCE, AndroidResourceCachingBuildTarget.MyTargetType.INSTANCE, AndroidResourcePackagingBuildTarget.MyTargetType.INSTANCE, AndroidPackagingBuildTarget.MyTargetType.INSTANCE, AndroidLibraryPackagingTarget.MyTargetType.INSTANCE, AndroidPackagingBuildTarget.MyTargetType.INSTANCE)).assertUpToDate();
executor.clear();
rebuildAll();
checkBuildLog(executor, "expected_log_2");
final JpsAndroidModuleExtension appExtension = AndroidJpsUtil.getExtension(appModule);
assert appExtension != null;
final JpsAndroidModuleProperties appProps = ((JpsAndroidModuleExtensionImpl) appExtension).getProperties();
checkMakeUpToDate(executor);
appProps.ENABLE_PRE_DEXING = false;
makeAll().assertSuccessful();
checkBuildLog(executor, "expected_log_3");
checkMakeUpToDate(executor);
appProps.ENABLE_PRE_DEXING = true;
makeAll().assertSuccessful();
checkBuildLog(executor, "expected_log_4");
}
use of org.jetbrains.jps.model.module.JpsModule in project android by JetBrains.
the class JpsAndroidModuleExtensionImpl method findFileByRelativeModulePath.
@Nullable
private File findFileByRelativeModulePath(String relativePath, boolean checkExistence) {
if (relativePath == null || relativePath.length() == 0) {
return null;
}
final JpsModule module = getModule();
File moduleBaseDir = JpsModelSerializationDataService.getBaseDirectory(module);
if (moduleBaseDir != null) {
String absPath = FileUtil.toSystemDependentName(moduleBaseDir.getAbsolutePath() + relativePath);
File f = new File(absPath);
if (!checkExistence || f.exists()) {
return f;
}
}
return null;
}
use of org.jetbrains.jps.model.module.JpsModule in project intellij-community by JetBrains.
the class IncProjectBuilder method reportRebuiltModules.
private static void reportRebuiltModules(CompileContextImpl context) {
final Set<JpsModule> modules = BuildTargetConfiguration.MODULES_WITH_TARGET_CONFIG_CHANGED_KEY.get(context);
if (modules == null || modules.isEmpty()) {
return;
}
final StringBuilder message = new StringBuilder();
if (modules.size() > 1) {
message.append("Modules ");
final int namesLimit = 5;
int idx = 0;
for (Iterator<JpsModule> iterator = modules.iterator(); iterator.hasNext(); ) {
final JpsModule module = iterator.next();
if (idx == namesLimit && iterator.hasNext()) {
message.append(" and ").append(modules.size() - namesLimit).append(" others");
break;
}
if (idx > 0) {
message.append(", ");
}
message.append("\"").append(module.getName()).append("\"");
idx += 1;
}
message.append(" were");
} else {
message.append("Module \"").append(modules.iterator().next().getName()).append("\" was");
}
message.append(" fully rebuilt due to project configuration");
if (ModuleBuildTarget.REBUILD_ON_DEPENDENCY_CHANGE) {
message.append("/dependencies");
}
message.append(" changes");
context.processMessage(new CompilerMessage("", BuildMessage.Kind.INFO, message.toString()));
}
use of org.jetbrains.jps.model.module.JpsModule in project intellij-community by JetBrains.
the class ModuleBuildTarget method getOutputRoots.
@NotNull
@Override
public Collection<File> getOutputRoots(CompileContext context) {
Collection<File> result = new SmartList<>();
final File outputDir = getOutputDir();
if (outputDir != null) {
result.add(outputDir);
}
final JpsModule module = getModule();
final JpsJavaCompilerConfiguration configuration = JpsJavaExtensionService.getInstance().getOrCreateCompilerConfiguration(module.getProject());
final ProcessorConfigProfile profile = configuration.getAnnotationProcessingProfile(module);
if (profile.isEnabled()) {
final File annotationOut = ProjectPaths.getAnnotationProcessorGeneratedSourcesOutputDir(module, isTests(), profile);
if (annotationOut != null) {
result.add(annotationOut);
}
}
return result;
}
Aggregations