summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-07-16 19:12:10 -0700
committerTor Norbye <tnorbye@google.com>2014-07-16 19:12:10 -0700
commita8218d5392f624b0497645a14c978e8faa946a31 (patch)
tree8b11c743aa1cc0ab2caca62c4f8b73d393b43ea6 /build
parent3827bb9f227f90806560251c7dd048d30c081c25 (diff)
parent65f60eb9011bb2c549a6d83ae31257480368ddc5 (diff)
downloadidea-a8218d5392f624b0497645a14c978e8faa946a31.tar.gz
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts: .idea/modules.xml build/scripts/common_tests.gant build/scripts/dist.gant build/scripts/layouts.gant build/scripts/utils.gant Change-Id: I2bdcfaa02c8c63585eb6a56020dd3dbe0be90119
Diffstat (limited to 'build')
-rw-r--r--build/build.iml2
-rw-r--r--build/conf/mac/Contents/Info.plist4
-rwxr-xr-xbuild/conf/mac/Contents/MacOS/ideabin85548 -> 85564 bytes
-rw-r--r--build/conf/mac/Contents/_CodeSignature/CodeResources21
-rw-r--r--build/conf/nsis/idea.nsi99
-rw-r--r--build/gant.xml2
-rw-r--r--build/lib/jps/antlayout.jarbin22226 -> 22248 bytes
-rw-r--r--build/lib/jps/groovy-jps-plugin.jarbin37122 -> 37218 bytes
-rw-r--r--build/lib/jps/groovy_rt.jarbin33228 -> 33243 bytes
-rw-r--r--build/lib/jps/jps-builders.jarbin1496212 -> 1500322 bytes
-rw-r--r--build/lib/jps/jps-model.jarbin430385 -> 431932 bytes
-rw-r--r--build/lib/jps/ui-designer-jps-plugin.jarbin32656 -> 32685 bytes
-rw-r--r--build/lib/jps/util.jarbin2183123 -> 2189527 bytes
-rw-r--r--build/scripts/common_tests.gant60
-rw-r--r--build/scripts/dist.gant4
-rw-r--r--build/scripts/layouts.gant71
-rw-r--r--build/scripts/libLicenses.gant13
-rw-r--r--build/scripts/utils.gant55
18 files changed, 234 insertions, 97 deletions
diff --git a/build/build.iml b/build/build.iml
index db115fb3dc9e..7486cf38b75d 100644
--- a/build/build.iml
+++ b/build/build.iml
@@ -10,7 +10,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Groovy" level="project" />
<orderEntry type="library" exported="" name="Ant" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="asm4" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="asm5" level="project" />
<orderEntry type="library" exported="" scope="RUNTIME" name="cli-parser" level="project" />
<orderEntry type="library" scope="RUNTIME" name="JDOM" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Netty" level="project" />
diff --git a/build/conf/mac/Contents/Info.plist b/build/conf/mac/Contents/Info.plist
index eb5a13153c05..4a9c7d117dce 100644
--- a/build/conf/mac/Contents/Info.plist
+++ b/build/conf/mac/Contents/Info.plist
@@ -79,13 +79,15 @@
<key>idea.java.redist</key>
<string>NoJavaDistribution</string>
+ <key>idea.home.path</key>
+ <string>$APP_PACKAGE/Contents</string>
</dict>
<key>VMOptions</key>
<string>@@vmoptions@@ -Xbootclasspath/a:../lib/boot.jar</string>
<key>WorkingDirectory</key>
- <string>$APP_PACKAGE/bin</string>
+ <string>$APP_PACKAGE/Contents/bin</string>
</dict>
</dict>
</plist>
diff --git a/build/conf/mac/Contents/MacOS/idea b/build/conf/mac/Contents/MacOS/idea
index 3f5d2c46a401..6ba553f866fd 100755
--- a/build/conf/mac/Contents/MacOS/idea
+++ b/build/conf/mac/Contents/MacOS/idea
Binary files differ
diff --git a/build/conf/mac/Contents/_CodeSignature/CodeResources b/build/conf/mac/Contents/_CodeSignature/CodeResources
new file mode 100644
index 000000000000..54901395f893
--- /dev/null
+++ b/build/conf/mac/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>rules</key>
+ <dict>
+ <key>^bin/</key>
+ <true/>
+ <key>^lib/</key>
+ <true/>
+ <key>^license/</key>
+ <true/>
+ <key>^MacOS/</key>
+ <true/>
+ <key>^plugins/</key>
+ <true/>
+ <key>^Resources/</key>
+ <true/>
+ </dict>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/build/conf/nsis/idea.nsi b/build/conf/nsis/idea.nsi
index 850ac4b305f5..145d61d0624b 100644
--- a/build/conf/nsis/idea.nsi
+++ b/build/conf/nsis/idea.nsi
@@ -531,36 +531,36 @@ Function leaveUninstallOldVersionDialog
!insertmacro INSTALLOPTIONS_READ $2 "UninstallOldVersions.ini" "Settings" "State"
StrCmp $2 2 enable_disable
Goto done
-
+
enable_disable:
- !insertmacro INSTALLOPTIONS_READ $0 "UninstallOldVersions.ini" "Field 2" "State"
- StrCmp $0 1 enable disable
+ !insertmacro INSTALLOPTIONS_READ $0 "UninstallOldVersions.ini" "Field 2" "State"
+ StrCmp $0 1 enable disable
enable:
StrCpy $1 ""
Goto setFlag
disable:
- Call setState
+ Call setState
StrCpy $1 "DISABLED"
-setFlag:
+setFlag:
Push $1
Call setFlags
-done:
+done:
Pop $4
- Pop $1
+ Pop $1
StrCmp $2 0 skip_abort
Pop $2
Abort
-skip_abort:
+skip_abort:
StrCpy $2 "OK"
FunctionEnd
Function setFlags
- Pop $1
+ Pop $1
!insertmacro INSTALLOPTIONS_READ $max_fields "UninstallOldVersions.ini" "Settings" "NumFields"
StrCpy $4 3
- ; change flags of fields in according of master checkbox
-loop:
+ ; change flags of fields in according of master checkbox
+loop:
!insertmacro INSTALLOPTIONS_READ $1 "UninstallOldVersions.ini" "Field $4" "HWND"
EnableWindow $1 $0
!insertmacro INSTALLOPTIONS_WRITE "UninstallOldVersions.ini" "Field $4" "Flags" "$1"
@@ -573,7 +573,7 @@ FunctionEnd
Function setState
!insertmacro INSTALLOPTIONS_READ $max_fields "UninstallOldVersions.ini" "Settings" "NumFields"
StrCpy $4 3
- ; change state of fields in according of master checkbox
+ ; change state of fields in according of master checkbox
loop:
!insertmacro INSTALLOPTIONS_READ $1 "UninstallOldVersions.ini" "Field $4" "HWND"
SendMessage $1 ${BM_SETCHECK} 0 "0"
@@ -750,21 +750,28 @@ skip_quicklaunch_shortcut:
"${Index}-Skip:"
WriteRegStr HKCR "IntelliJIdeaProjectFile\shell\open\command" "" \
'$INSTDIR\bin\${PRODUCT_EXE_FILE} "%1"'
-
- ; back up old value of .java
- StrCmp "${PRODUCT_FULL_NAME}" "IntelliJ IDEA Community Edition" java_association
- StrCmp "${PRODUCT_FULL_NAME}" "IntelliJ IDEA" 0 skip_ipr
-java_association:
- ReadRegStr $1 HKCR ".java" ""
- StrCmp $1 "" skip_backup
- StrCmp $1 "IntelliJIdeaProjectFile" skip_backup
- WriteRegStr HKCR ".java" "backup_val" $1
-skip_backup:
- WriteRegStr HKCR ".java" "" "IntelliJIdeaProjectFile"
!undef Index
skip_ipr:
+StrCmp "${ASSOCIATION}" "NoAssociation" skip_association
+ ; back up old value of an association
+ ReadRegStr $1 HKCR ${ASSOCIATION} ""
+ StrCmp $1 "" skip_backup
+ StrCmp $1 ${PRODUCT_PATHS_SELECTOR} skip_backup
+ WriteRegStr HKCR ${ASSOCIATION} "backup_val" $1
+skip_backup:
+ WriteRegStr HKCR ${ASSOCIATION} "" "${PRODUCT_PATHS_SELECTOR}"
+ ReadRegStr $0 HKCR ${PRODUCT_PATHS_SELECTOR} ""
+ StrCmp $0 "" 0 command_exists
+ WriteRegStr HKCR ${PRODUCT_PATHS_SELECTOR} "" "${PRODUCT_FULL_NAME}"
+ WriteRegStr HKCR "${PRODUCT_PATHS_SELECTOR}\shell" "" "open"
+ WriteRegStr HKCR "${PRODUCT_PATHS_SELECTOR}\DefaultIcon" "" "$INSTDIR\bin\${PRODUCT_EXE_FILE},0"
+command_exists:
+ WriteRegStr HKCR "${PRODUCT_PATHS_SELECTOR}\shell\open\command" "" \
+ '$INSTDIR\bin\${PRODUCT_EXE_FILE} "%1"'
+
+skip_association:
; Rest of script
@@ -772,7 +779,7 @@ skip_ipr:
SectionIn RO
!include "idea_win.nsh"
- IntCmp $IS_UPGRADE_60 1 skip_properties
+ IntCmp $IS_UPGRADE_60 1 skip_properties
SetOutPath $INSTDIR\bin
File "${PRODUCT_PROPERTIES_FILE}"
File "${PRODUCT_VM_OPTIONS_FILE}"
@@ -851,6 +858,44 @@ FunctionEnd
;------------------------------------------------------------------------------
Function un.onInit
+ ;admin perm. is required to uninstall?
+ ${UnStrStr} $R0 $INSTDIR $PROGRAMFILES
+ StrCmp $R0 $INSTDIR requred_admin_perm UAC_Done
+
+requred_admin_perm:
+ ;the user has admin rights?
+ UserInfo::GetAccountType
+ Pop $R2
+ StrCmp $R2 "Admin" UAC_Admin uninstall_location
+
+uninstall_location:
+ ;check if the uninstallation is running from the product location
+ IfFileExists $APPDATA\${PRODUCT_PATHS_SELECTOR}_${VER_BUILD}_Uninstall.exe UAC_Elevate copy_uninstall
+
+copy_uninstall:
+ ;do copy for unistall.exe
+ CopyFiles "$OUTDIR\Uninstall.exe" "$APPDATA\${PRODUCT_PATHS_SELECTOR}_${VER_BUILD}_Uninstall.exe"
+ ExecWait '"$APPDATA\${PRODUCT_PATHS_SELECTOR}_${VER_BUILD}_Uninstall.exe" _?=$INSTDIR'
+ Delete "$APPDATA\${PRODUCT_PATHS_SELECTOR}_${VER_BUILD}_Uninstall.exe"
+ Quit
+
+UAC_Elevate:
+ !insertmacro UAC_RunElevated
+ StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user? - continue install under user
+ StrCmp 0 $0 0 UAC_Err ; Error?
+ StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
+ Quit
+UAC_ElevationAborted:
+UAC_Err:
+ Abort
+UAC_Success:
+ StrCmp 1 $3 UAC_Admin ;Admin?
+ StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
+ goto UAC_Elevate
+UAC_Admin:
+ SetShellVarContext all
+ StrCpy $baseRegKey "HKLM"
+UAC_Done:
!insertmacro MUI_UNGETLANGUAGE
!insertmacro INSTALLOPTIONS_EXTRACT "DeleteSettings.ini"
FunctionEnd
@@ -1094,10 +1139,8 @@ clear_Registry:
StrCpy $2 "MenuFolder"
Call un.OMDeleteRegValue
- StrCmp "${PRODUCT_FULL_NAME}" "IntelliJ IDEA Community Edition" restore_java_association
- StrCmp "${PRODUCT_FULL_NAME}" "IntelliJ IDEA" 0 finish_uninstall
-restore_java_association:
- StrCpy $1 ".java"
+ StrCmp "${ASSOCIATION}" "NoAssociation" finish_uninstall
+ StrCpy $1 "${ASSOCIATION}"
StrCpy $2 "backup_val"
Call un.ReturnBackupRegValue
diff --git a/build/gant.xml b/build/gant.xml
index 672896d31364..416440b6aebd 100644
--- a/build/gant.xml
+++ b/build/gant.xml
@@ -22,7 +22,7 @@
<include name="groovy-all-*.jar"/>
<include name="protobuf*.jar"/>
<include name="netty*.jar"/>
- <include name="asm4-all.jar"/>
+ <include name="asm-all.jar"/>
<include name="asm-commons.jar"/>
<include name="jgoodies-forms.jar"/>
<include name="guava*.jar"/>
diff --git a/build/lib/jps/antlayout.jar b/build/lib/jps/antlayout.jar
index 8f6554dc67f3..ead2a804df0a 100644
--- a/build/lib/jps/antlayout.jar
+++ b/build/lib/jps/antlayout.jar
Binary files differ
diff --git a/build/lib/jps/groovy-jps-plugin.jar b/build/lib/jps/groovy-jps-plugin.jar
index 5166341eb156..43bac2049446 100644
--- a/build/lib/jps/groovy-jps-plugin.jar
+++ b/build/lib/jps/groovy-jps-plugin.jar
Binary files differ
diff --git a/build/lib/jps/groovy_rt.jar b/build/lib/jps/groovy_rt.jar
index 43d418bfe294..ea656c580ce2 100644
--- a/build/lib/jps/groovy_rt.jar
+++ b/build/lib/jps/groovy_rt.jar
Binary files differ
diff --git a/build/lib/jps/jps-builders.jar b/build/lib/jps/jps-builders.jar
index b02ac27bc085..05c199bfbb85 100644
--- a/build/lib/jps/jps-builders.jar
+++ b/build/lib/jps/jps-builders.jar
Binary files differ
diff --git a/build/lib/jps/jps-model.jar b/build/lib/jps/jps-model.jar
index e56a781f9006..0c57c42c6abc 100644
--- a/build/lib/jps/jps-model.jar
+++ b/build/lib/jps/jps-model.jar
Binary files differ
diff --git a/build/lib/jps/ui-designer-jps-plugin.jar b/build/lib/jps/ui-designer-jps-plugin.jar
index 69d7e02232b7..0050493f9385 100644
--- a/build/lib/jps/ui-designer-jps-plugin.jar
+++ b/build/lib/jps/ui-designer-jps-plugin.jar
Binary files differ
diff --git a/build/lib/jps/util.jar b/build/lib/jps/util.jar
index adef8f02bc9c..fad7e614bb49 100644
--- a/build/lib/jps/util.jar
+++ b/build/lib/jps/util.jar
Binary files differ
diff --git a/build/scripts/common_tests.gant b/build/scripts/common_tests.gant
index f13c342dd23b..a74f7d43a0b3 100644
--- a/build/scripts/common_tests.gant
+++ b/build/scripts/common_tests.gant
@@ -45,41 +45,43 @@ private pass(String prop) {
target('run_tests': 'Run java tests') {
depends([check, compile])
- ant.junit(fork: "yes", showoutput: "true", logfailedtests:false, printsummary: "true") {
- pass("idea.test.group")
- pass("idea.test.patterns")
- pass("idea.fast.only")
- pass("teamcity.build.tempDir")
- pass("teamcity.tests.recentlyFailedTests.file")
- jvmarg (value: "-Didea.platform.prefix=Idea")
- jvmarg (value: "-Djava.system.class.loader=com.intellij.util.lang.UrlClassLoader")
-
- System.getProperties().entrySet().each {
- if (it.key.startsWith("pass.")) {
- def trimmed = it.key.substring("pass.".length());
- jvmarg(value: "-D${trimmed}=${it.value}");
- };
- }
-
- commonJvmArgs().each { jvmarg(value: it) }
+ def classpathFile = "$home/junit.classpath"
+ List<String> testRuntimeClasspath = projectBuilder.moduleRuntimeClasspath(findModule("community-main"), true)
+ new File(classpathFile).text = testRuntimeClasspath.findAll({ new File((String)it).exists() }).join('\n')
+
+ testcases.each { testCase ->
+ ant.junit(fork: "yes", showoutput: "true", logfailedtests: false) {
+ jvmarg(value: "-Dclasspath.file=${classpathFile}")
+ pass("idea.test.group")
+ pass("idea.test.patterns")
+ pass("idea.fast.only")
+ pass("teamcity.build.tempDir")
+ pass("teamcity.tests.recentlyFailedTests.file")
+ jvmarg(value: "-Didea.platform.prefix=Idea")
+
+ System.getProperties().entrySet().each {
+ if (it.key.startsWith("pass.")) {
+ def trimmed = it.key.substring("pass.".length());
+ jvmarg(value: "-D${trimmed}=${it.value}");
+ };
+ }
+ commonJvmArgs().each { jvmarg(value: it) }
- if (isDefined("jvm_args")) {
- jvm_args.each { jvmarg(value: it) }
- }
+ jvmarg(value: "-Dbootstrap.testcases=$testCase")
- classpath {
- projectBuilder.moduleRuntimeClasspath(findModule("community-main"), true).each {
- pathelement(location: it)
+ if (isDefined("jvm_args")) {
+ jvm_args.each { jvmarg(value: it) }
}
- pathelement(location: "${jdkHome}/lib/tools.jar")
- }
- formatter(type: "plain")
- formatter(type: "xml")
+ classpath {
+ projectBuilder.moduleRuntimeClasspath(findModule("tests_bootstrap"), false).each {
+ pathelement(location: it)
+ }
+ pathelement(location: "${jdkHome}/lib/tools.jar")
+ }
- testcases.each {
- test (name: it)
+ test(name: 'com.intellij.tests.BootstrapTests')
}
}
}
diff --git a/build/scripts/dist.gant b/build/scripts/dist.gant
index 17b20d79196c..a31b66f5a654 100644
--- a/build/scripts/dist.gant
+++ b/build/scripts/dist.gant
@@ -144,8 +144,8 @@ def layoutAll(Map args, String home, String out, Paths _paths = null, buildJps =
androidBuildNumber = p("buildNumber")
//def macAppRoot = isEap() ?
- // "IntelliJ IDEA ${p("component.version.major")} CE EAP.app" :
- // "IntelliJ IDEA ${p("component.version.major")} CE.app"
+ // "IntelliJ IDEA ${p("component.version.major")} CE EAP.app/Contents" :
+ // "IntelliJ IDEA ${p("component.version.major")} CE.app/Contents"
def winZip = "$paths.artifacts/android-studio-${androidBuildNumber}.win.zip"
def macZip = "$paths.artifacts/android-studio-${androidBuildNumber}.mac.zip"
diff --git a/build/scripts/layouts.gant b/build/scripts/layouts.gant
index 3d4a54fc8c93..7e17eedc4335 100644
--- a/build/scripts/layouts.gant
+++ b/build/scripts/layouts.gant
@@ -73,6 +73,7 @@ def layoutFull(String home, String targetDirectory, String patchedDescriptorDir
"compiler-impl",
"debugger-impl",
"dom-impl",
+ "duplicates-analysis",
"execution-impl",
"external-system-impl",
"idea-ui",
@@ -242,7 +243,6 @@ def layoutFull(String home, String targetDirectory, String patchedDescriptorDir
module("IntelliLang")
module("IntelliLang-java")
module("IntelliLang-xml")
- module("IntelliLang-javaee")
}
jar("intellilang-jps-plugin.jar") {
module("intellilang-jps-plugin")
@@ -262,7 +262,7 @@ public def layoutCommunityPlugins(String home) {
layoutCloud()
dir("plugins") {
- def simplePlugins = ["commander", "copyright", "java-i18n", "hg4idea", "github"] //, "tasks-time-tracking"]
+ def simplePlugins = ["commander", "copyright", "java-i18n", "hg4idea", "github", "typeMigration"] //, "tasks-time-tracking"]
simplePlugins.each {
layoutPlugin it
@@ -342,10 +342,6 @@ public def layoutCommunityPlugins(String home) {
}
layoutPlugin("gradle") {
- jar("gradle.jar") {
- module("gradle")
- }
-
jar("gradle-tooling-extension-api.jar") {
module("gradle-tooling-extension-api")
}
@@ -370,10 +366,6 @@ public def layoutCommunityPlugins(String home) {
include(name: "ini4j*.jar")
exclude(name: "ini4j*sources.jar")
}
- fileset(dir: "$home/plugins/git4idea/lib/jgit") {
- include(name: "org.eclipse.jgit*.jar")
- exclude(name: "*.zip")
- }
}
layoutPlugin("svn4idea") {
@@ -463,6 +455,7 @@ public def layoutCommunityPlugins(String home) {
module("groovy-psi") {
exclude(name: "standardDsls/**")
}
+ module("structuralsearch-groovy")
}
//layout of groovy jars must be consistent with GroovyBuilder.getGroovyRtRoot method
jar("groovy-jps-plugin.jar") {
@@ -521,14 +514,58 @@ public def layoutCommunityPlugins(String home) {
// }
layoutPlugin("terminal") {
- jar("terminal.jar") {
- module("terminal")
- }
fileset(dir: "$home/plugins/terminal/lib") {
include(name: "*.jar")
include(name: "*.in")
}
}
+
+ pluginDir("coverage") {
+ dir("lib") {
+ jar("coverage.jar") {
+ noResources("coverage-common")
+ noResources("coverage")
+ }
+
+ jar("coverage_rt.jar") {
+ noResources("coverage_rt")
+ }
+
+ jar("resources_en.jar") {
+ module("coverage-common") {
+ patternset(refid: "resources.included")
+ }
+ module("coverage") {
+ patternset(refid: "resources.included")
+ }
+ }
+
+ fileset(dir: "${home}/plugins/coverage-common/lib") {
+ exclude(name: "finder.jar")
+ exclude(name: "**/coverage-src.zip")
+ }
+
+ fileset(dir: "${home}/plugins/coverage/lib", excludes: "**/jacoco_src.zip")
+ }
+ }
+
+ pluginDir("structuralsearch") {
+ dir("lib") {
+ jar("structuralsearch.jar") {
+ module("structuralsearch")
+ module("structuralsearch-java")
+ }
+ }
+ }
+
+ pluginDir("java-decompiler") {
+ dir("lib") {
+ jar("java-decompiler.jar") {
+ module("java-decompiler")
+ }
+ fileset(file: "$home/plugins/java-decompiler/lib/fernflower.jar")
+ }
+ }
}
}
@@ -816,7 +853,7 @@ def layoutJps(String home, String targetDir, String buildNumber, Closure additio
include(name: "jdom.jar")
include(name: "jna.jar")
include(name: "trove4j.jar")
- include(name: "asm4-all.jar")
+ include(name: "asm-all.jar")
include(name: "nanoxml-*.jar")
include(name: "protobuf-*.jar")
include(name: "cli-parser-*.jar")
@@ -856,8 +893,12 @@ def layout_core(String home, String target) {
module("annotations")
}
+ jar("intellij-core-analysis-api.jar") {
+ analysisApiModules.each { module it; }
+ }
+
fileset(dir: "$home/lib") {
- include(name: "guava-14.0.1.jar")
+ include(name: "guava-17.0.jar")
include(name: "picocontainer.jar")
include(name: "trove4j.jar")
include(name: "asm.jar")
diff --git a/build/scripts/libLicenses.gant b/build/scripts/libLicenses.gant
index 2e9691ea10f3..eaeb82e1c4b4 100644
--- a/build/scripts/libLicenses.gant
+++ b/build/scripts/libLicenses.gant
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * 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.
@@ -152,7 +152,7 @@ libraryLicense(name: "Alloy L&F", libraryName: "alloy.jar", version: "1.4.4", li
libraryLicense(name: "Ant", version: "1.7", license: "Apache 2.0", url: "http://ant.apache.org/", licenseUrl: "http://ant.apache.org/license.html")
libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm", version: "3.3", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html")
libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm4", version: "4.0", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html")
-libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm5", version: "5.0.1", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html")
+libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm5", version: "5.0.3 (with patches by JetBrains)", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html")
libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm-tools", version: "4.0", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html")
libraryLicense(name: "Axis", libraryName: "axis-1.4", version: "1.4", license: "Apache 2.0", url: "http://ws.apache.org/axis/", licenseUrl: "http://svn.jetbrains.org/idea/Trunk/bundled/WebServices/resources/lib/axis-1.4.0/axis.LICENSE")
libraryLicense(name: "CGLib", libraryName: "CGLIB", version: "2.2.2", license: "Apache", url: "http://cglib.sourceforge.net/", licenseUrl: "http://www.apache.org/foundation/licence-FAQ.html")
@@ -177,9 +177,8 @@ libraryLicense(name: "DTDParser", version: "1.13", license: "LGPL", url: "http:/
libraryLicense(name: "Gant", version: "1.9.8", libraryName: "gant_groovy2.0-1.9.8.jar", license: "Apache 2.0", url: "http://gant.codehaus.org/", licenseUrl: "http://gant.codehaus.org/Licence")
libraryLicense(name: "sqljet", version: "bundled with SVNKit", libraryName: "sqljet.jar", license: "link (commercial license)", url: "http://sqljet.com", licenseUrl: "http://svnkit.com/license.html")
libraryLicense(name: "svnkit-javahl", version: "bundled with SVNKit", libraryName: "svnkit-javahl.jar", license: "link (commercial license)", url: "http://www.svnkit.com/", licenseUrl: "http://svnkit.com/license.html")
-libraryLicense(name: "javahl", version: "1.7.2", libraryName: "javahl.jar", license: "Apache", url: "http://subversion.apache.org", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
libraryLicense(name: "Antlr", libraryName: "antlr.jar", version: "3.4", license: "BSD", url: "http://www.antlr.org", licenseUrl: "http://www.antlr.org/license.html")
-libraryLicense(name: "Guava", version: "14.0.1", license: "Apache 2.0", url: "http://code.google.com/p/guava-libraries/", licenseUrl: "http://ant.apache.org/license.html")
+libraryLicense(name: "Guava", version: "17.0", license: "Apache 2.0", url: "http://code.google.com/p/guava-libraries/", licenseUrl: "http://ant.apache.org/license.html")
libraryLicense(name: "Guava", libraryName: "guava-tools", version: "14.0.1", license: "Apache 2.0", url: "http://code.google.com/p/guava-libraries/", licenseUrl: "http://ant.apache.org/license.html")
libraryLicense(name: "Groovy", version: "2.2.1", license: "Apache 2.0", url: "http://groovy.codehaus.org/")
libraryLicense(name: "Gson", version: "2.2.4", libraryName: "gson", license: "Apache 2.0", url: "http://code.google.com/p/google-gson/")
@@ -191,7 +190,6 @@ libraryLicense(name: "Jaxen", version: "", license: "modified Apache", url: "htt
libraryLicense(name: "JavaHelp", version: "2.0_02", license: "included as license/javahelp_license.html in IntelliJ IDEA distribution", url: "http://java.sun.com/products/javahelp/")
libraryLicense(name: "JCIP Annotations", libraryName: "jcip", license: "Creative Commons Attribution License", url: "http://www.jcip.net", licenseUrl: "http://creativecommons.org/licenses/by/2.5")
libraryLicense(name: "JDOM", version: "1.1 (with patches by JetBrains)", license: "modified Apache", url: "http://www.jdom.org/", licenseUrl: "http://www.jdom.org/docs/faq.html#a0030")
-libraryLicense(name: "jgit-2.1.0", version: "2.1.0.201209190230", license: "EDL/BSD", url: "http://www.eclipse.org/jgit/", licenseUrl: "http://www.eclipse.org/org/documents/edl-v10.php", attachedTo: "git4idea")
libraryLicense(name: "javawriter", libraryName: "javawriter", license: "Apache 2.0", url: "https://github.com/square/javawriter")
libraryLicense(name: "JGoodies Forms", libraryName: "jgoodies-forms", version: "1.1-preview 2006-05-04 11:55:37", license: "BSD ", url: "http://www.jgoodies.com/freeware/forms/", licenseUrl: "http://www.jgoodies.com/downloads/libraries.html")
libraryLicense(name: "JGoodies Looks", libraryName: "jgoodies-looks", version: "2.4.2", license: "BSD ", url: "http://www.jgoodies.com/freeware/looks/", licenseUrl: "http://www.jgoodies.com/downloads/libraries.html")
@@ -252,7 +250,7 @@ libraryLicense(name: "XML-RPC", libraryName: "XmlRPC", version: "2.0", license:
libraryLicense(name: "XStream", version: "1.4.3", license: "BSD", url: "http://xstream.codehaus.org/", licenseUrl: "http://xstream.codehaus.org/license.html")
libraryLicense(name: "YourKit Java Profiler", libraryName: "yjp-controller-api-redist.jar", version: "8.0.x", license: "link (commercial license)", url: "http://yourkit.com/", licenseUrl: "http://www.yourkit.com/purchase/license.html")
libraryLicense(name: "protobuf", version: "2.5.0", license: "New BSD", url: "http://code.google.com/p/protobuf/", licenseUrl: "http://code.google.com/p/protobuf/source/browse/trunk/COPYING.txt?r=367")
-libraryLicense(name: "Netty", libraryName: "Netty", version: "4.1.0.Alpha2", license: "Apache 2.0", url: "http://netty.io", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
+libraryLicense(name: "Netty", libraryName: "Netty", version: "4.1.0.Beta1", license: "Apache 2.0", url: "http://netty.io", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
libraryLicense(name: "Kryo", libraryName: "Kryo", version: "2.22", license: "New BSD License", url: "https://github.com/EsotericSoftware/kryo", licenseUrl: "https://github.com/EsotericSoftware/kryo/blob/master/license.txt")
libraryLicense(name: "Snappy-Java", libraryName: "Snappy-Java", version: "0.3", license: "Apache 2.0", url: "https://github.com/dain/snappy", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
libraryLicense(name: "Cucumber-Java", libraryName: "cucumber-java", version: "1.0.14", license: "MIT License", url: "https://github.com/cucumber/cucumber-jvm/", licenseUrl: "http://www.opensource.org/licenses/mit-license.html")
@@ -278,7 +276,10 @@ libraryLicense(name: "ANTLR 4 Runtime", libraryName: "antlr-runtime-4.1.jar", ve
libraryLicense(name: "minlog", libraryName: "minlog-1.2.jar", version: "1.2", license: "BSD", url: "https://github.com/EsotericSoftware/minlog", licenseUrl: "http://opensource.org/licenses/BSD-3-Clause")
libraryLicense(name: "ReflectASM", libraryName: "reflectasm-1.0.7.jar", version: "1.0.7", license: "BSD", url: "https://github.com/EsotericSoftware/reflectasm", licenseUrl: "http://opensource.org/licenses/BSD-3-Clause")
libraryLicense(name: "Objenesis", libraryName: "objenesis-1.2.jar", version: "1.2", license: "Apache 2.0", url: "http://objenesis.org/", licenseUrl: "http://apache.org/licenses/LICENSE-2.0")
+jetbrainsLibrary("Coverage")
+jetbrainsLibrary("CoverageReport")
jetbrainsLibrary("JPS")
jetbrainsLibrary("Maven Embedder")
jetbrainsLibrary("tcServiceMessages")
jetbrainsLibrary("optimizedFileManager.jar")
+jetbrainsLibrary("fernflower.jar")
diff --git a/build/scripts/utils.gant b/build/scripts/utils.gant
index 5853eaeea32a..580d63d0bb53 100644
--- a/build/scripts/utils.gant
+++ b/build/scripts/utils.gant
@@ -231,6 +231,7 @@ binding.setVariable("wireBuildDate", { String buildNumber, String appInfoFile ->
binding.setVariable("commonJvmArgs", {
return [
"-ea",
+ "-server",
"-Didea.home.path=$home",
"-Xbootclasspath/p:${projectBuilder.moduleOutput(findModule("boot"))}",
"-XX:+HeapDumpOnOutOfMemoryError",
@@ -316,7 +317,7 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
}
ant.copy(todir: path) {
- fileset(dir: "$ch/build/conf/mac")
+ fileset(dir: "$ch/build/conf/mac/Contents")
}
ant.tstamp() {
@@ -326,22 +327,19 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
String executable = args.executable != null ? args.executable : p("component.names.product").toLowerCase()
String helpId = args.help_id != null ? args.help_id : "IJ"
String icns = "idea.icns"
- String helpIcns = "$path/Contents/Resources/${helpId}.help/Contents/Resources/Shared/product.icns"
+ String helpIcns = "$path/Resources/${helpId}.help/Contents/Resources/Shared/product.icns"
if (args.icns != null) {
- ant.delete(file: "$path/Contents/Resources/idea.icns")
- ant.copy(file: args.icns, todir: "$path/Contents/Resources")
+ ant.delete(file: "$path/Resources/idea.icns")
+ ant.copy(file: args.icns, todir: "$path/Resources")
ant.copy(file: args.icns, tofile: helpIcns)
icns = new File((String)args.icns).getName();
} else {
- ant.copy(file: "$path/Contents/Resources/idea.icns", tofile: helpIcns)
+ ant.copy(file: "$path/Resources/idea.icns", tofile: helpIcns)
}
String fullName = args.fullName != null ? args.fullName : p("component.names.fullname")
String vmOptions = "-Dfile.encoding=UTF-8 ${vmOptions()} -Xverify:none"
- if (isEap() && !args.mac_no_yjp) {
- vmOptions += " ${yjpOptions(args.system_selector)}"
- }
String minor = p("component.version.minor")
String version = isEap() && !minor.contains("RC") && !minor.contains("Beta") ? "EAP $args.buildNumber" : "${p("component.version.major")}.${minor}"
@@ -360,9 +358,13 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
}
new File("$path/bin/idea.properties").text = effectiveProperties.toString()
- new File("$path/bin/idea.vmoptions").text = "$mem64 -XX:+UseCompressedOops".split(" ").join("\n")
+ String ideaVmOptions = "$mem64 -XX:+UseCompressedOops".split(" ").join("\n")
+ if (isEap() && !args.mac_no_yjp) {
+ ideaVmOptions += " ${yjpOptions(args.system_selector)}"
+ }
+ new File("$path/bin/idea.vmoptions").text = ideaVmOptions
- String classPath = classPathLibs.collect {"\$APP_PACKAGE/lib/${it}" }.join(":")
+ String classPath = classPathLibs.collect {"\$APP_PACKAGE/Contents/lib/${it}" }.join(":")
String archs = """
<key>LSArchitecturePriority</key>
@@ -395,7 +397,7 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
"""
}
- ant.replace(file: "$path/Contents/Info.plist") {
+ ant.replace(file: "$path/Info.plist") {
replacefilter(token: "@@build@@", value: args.buildNumber)
replacefilter(token: "@@doc_types@@", value: ifNull(args.doc_types, ""))
replacefilter(token: "@@executable@@", value: executable)
@@ -417,7 +419,7 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
}
if (executable != "idea") {
- ant.move(file: "$path/Contents/MacOS/idea", tofile: "$path/Contents/MacOS/$executable")
+ ant.move(file: "$path/MacOS/idea", tofile: "$path/MacOS/$executable")
}
ant.replace(file: "$path/bin/inspect.sh") {
@@ -725,7 +727,7 @@ binding.setVariable("buildMacZip", { String zipRoot, String zipPath, List paths,
exclude(name: "bin/*.py")
exclude(name: "bin/fsnotifier")
exclude(name: "bin/restarter")
- exclude(name: "Contents/MacOS/*")
+ exclude(name: "MacOS/*")
extraBins.each {
exclude(name: it)
}
@@ -739,7 +741,7 @@ binding.setVariable("buildMacZip", { String zipRoot, String zipPath, List paths,
include(name: "bin/*.py")
include(name: "bin/fsnotifier")
include(name: "bin/restarter")
- include(name: "Contents/MacOS/*")
+ include(name: "MacOS/*")
extraBins.each {
include(name: it)
}
@@ -914,3 +916,28 @@ binding.setVariable("reassignAltClickToMultipleCarets", {String communityHome ->
patchedKeymapFile = new File("${paths.sandbox}/classes/production/platform-resources/idea/Keymap_Default.xml")
patchedKeymapFile.write(defaultKeymapContent)
})
+
+// modules used in Upsource and in Kotlin as an API to IDEA
+binding.setVariable("analysisApiModules", [
+ "analysis-api",
+ "boot",
+ "core-api",
+ "duplicates-analysis",
+ "editor-ui-api",
+ "editor-ui-ex",
+ "extensions",
+ "indexing-api",
+ "java-analysis-api",
+ "java-indexing-api",
+ "java-psi-api",
+ "java-structure-view",
+ "jps-model-api",
+ "jps-model-serialization",
+ "projectModel-api",
+ "structure-view-api",
+ "util",
+ "util-rt",
+ "xml-analysis-api",
+ "xml-psi-api",
+ "xml-structure-view-api",
+])