e216a790df9d49b3d7db088ea5c380cc2c225447
[idea/community.git] / build / groovy / org / jetbrains / intellij / build / CommunityRepositoryModules.groovy
1 /*
2  * Copyright 2000-2016 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18
19
20
21
22 package org.jetbrains.intellij.build
23
24 import groovy.transform.CompileStatic
25 import org.jetbrains.intellij.build.impl.PluginLayout
26
27 import static org.jetbrains.intellij.build.impl.PluginLayout.plugin
28
29 /**
30  * @author nik
31  */
32 @CompileStatic
33 class CommunityRepositoryModules {
34   static List<String> PLATFORM_API_MODULES = [
35     "analysis-api",
36     "built-in-server-api",
37     "core-api",
38     "diff-api",
39     "dvcs-api",
40     "editor-ui-api",
41     "external-system-api",
42     "indexing-api",
43     "jps-model-api",
44     "lang-api",
45     "lvcs-api",
46     "platform-api",
47     "projectModel-api",
48     "remote-servers-agent-rt",
49     "remote-servers-api",
50     "usageView",
51     "vcs-api-core",
52     "vcs-api",
53     "vcs-log-api",
54     "vcs-log-graph-api",
55     "xdebugger-api",
56     "xml-analysis-api",
57     "xml-openapi",
58     "xml-psi-api",
59     "xml-structure-view-api"
60   ]
61
62   static List<String> PLATFORM_IMPLEMENTATION_MODULES = [
63     "analysis-impl",
64     "built-in-server",
65     "core-impl",
66     "credential-store",
67     "diff-impl",
68     "dvcs-impl",
69     "editor-ui-ex",
70     "images",
71     "indexing-impl",
72     "jps-model-impl",
73     "jps-model-serialization",
74     "json",
75     "lang-impl",
76     "lvcs-impl",
77     "platform-impl",
78     "projectModel-impl",
79     "protocol-reader-runtime",
80     "RegExpSupport",
81     "relaxng",
82     "remote-servers-impl",
83     "script-debugger-backend",
84     "script-debugger-ui",
85     "smRunner",
86     "spellchecker",
87     "structure-view-impl",
88     "testRunner",
89     "vcs-impl",
90     "vcs-log-graph",
91     "vcs-log-impl",
92     "xdebugger-impl",
93     "xml-analysis-impl",
94     "xml-psi-impl",
95     "xml-structure-view-impl",
96     "xml",
97     "configuration-store-impl",
98   ]
99
100   /**
101    * Specifies layout for all plugins which sources are located in 'community' and 'contrib' repositories
102    */
103   static List<PluginLayout> COMMUNITY_REPOSITORY_PLUGINS = [
104     plugin("copyright"),
105     plugin("java-i18n"),
106     plugin("hg4idea"),
107     plugin("github"),
108     plugin("ant") {
109       mainJarName = "antIntegration.jar"
110       withModule("ant-jps-plugin")
111     },
112     plugin("ui-designer") {
113       directoryName = "uiDesigner"
114       mainJarName = "uiDesigner.jar"
115       withJpsModule("ui-designer-jps-plugin")
116     },
117     plugin("properties") {
118       withModule("properties-psi-api", "properties.jar")
119       withModule("properties-psi-impl", "properties.jar")
120     },
121     plugin("git4idea") {
122       withModule("git4idea-rt", "git4idea-rt.jar", false)
123       withOptionalModule("remote-servers-git")
124       withOptionalModule("remote-servers-git-java", "remote-servers-git.jar")
125     },
126     plugin("svn4idea") {
127       withResource("lib/licenses", "lib/licenses")
128     },
129     plugin("cvs-plugin") {
130       directoryName = "cvsIntegration"
131       mainJarName = "cvsIntegration.jar"
132       withModule("javacvs-src")
133       withModule("smartcvs-src")
134       withModule("cvs-core", "cvs_util.jar")
135     },
136     plugin("xpath") {
137       withModule("xslt-rt", "rt/xslt-rt.jar")
138     },
139     plugin("IntelliLang") {
140       withOptionalModule("IntelliLang-java", "IntelliLang.jar")
141       withOptionalModule("IntelliLang-xml", "IntelliLang.jar")
142       withOptionalModule("intellilang-jps-plugin", "intellilang-jps-plugin.jar")
143       doNotCreateSeparateJarForLocalizableResources()
144     },
145     plugin("tasks-core") {
146       directoryName = "tasks"
147       withModule("tasks-api")
148       withModule("jira")
149       withOptionalModule("tasks-java")
150       doNotCreateSeparateJarForLocalizableResources()
151     },
152     plugin("terminal") {
153       withResource("lib/jediterm-sh.in", "lib")
154     },
155     plugin("editorconfig"),
156     plugin("coverage"),
157     plugin("yaml"),
158     plugin("xslt-debugger") {
159       withModule("xslt-debugger-engine")
160       withModule("xslt-debugger-engine-impl", "rt/xslt-debugger-engine-impl.jar")
161       withModuleLibrary("Saxon-6.5.5", "xslt-debugger-engine-impl", "rt")
162       withModuleLibrary("Saxon-9HE", "xslt-debugger-engine-impl", "rt")
163       withModuleLibrary("Xalan-2.7.1", "xslt-debugger-engine-impl", "rt")
164       //todo[nik] unmark 'lib' directory as source root instead
165       excludeFromModule("xslt-debugger-engine-impl", "rmi-stubs.jar")
166       excludeFromModule("xslt-debugger-engine-impl", "saxon.jar")
167       excludeFromModule("xslt-debugger-engine-impl", "saxon9he.jar")
168       excludeFromModule("xslt-debugger-engine-impl", "serializer.jar")
169       excludeFromModule("xslt-debugger-engine-impl", "xalan.jar")
170     },
171     plugin("settings-repository"),
172     plugin("rest"),
173     plugin("student"),
174     plugin("student-python") {
175       withResource("resources/courses", "lib/courses")
176       excludeFromModule("student-python", "courses")
177     },
178     plugin("course-creator"),
179     plugin("course-creator-python"),
180     plugin("ipnb"),
181     plugin("IntelliLang-python"),
182     plugin("python-rest")
183   ]
184 }