forked from omegat-org/omegat
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.gradle
89 lines (87 loc) · 4.21 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
plugins {
id 'java'
}
repositories {
mavenCentral()
}
def plugins = [
[ lang: 'Arabic', code: 'ar', className: 'ArabicPlugin'],
[ lang: 'Asturian', code: 'ast', className: 'AsturianPlugin'],
[ lang: 'Belarusian', code: 'be', className: 'BelarusianPlugin'],
[ lang: 'Breton', code: 'br', className: 'BretonPlugin'],
[ lang: 'Catalan', code: 'ca', className: 'CatalanPlugin'],
[ lang: 'Danish', code: 'da', className: 'DanishPlugin'],
[ lang: 'German', code: 'de', className: 'GermanPlugin'],
[ lang: 'Greek', code: 'el', className: 'GreekPlugin'],
[ lang: 'English', code: 'en', className: 'EnglishPlugin'],
[ lang: 'Esperanto', code: 'eo', className: 'EsperantoPlugin'],
[ lang: 'Spanish', code: 'es', className: 'SpanishPlugin'],
[ lang: 'Persian', code: 'fa', className: 'PersianPlugin'],
[ lang: 'French', code: 'fr', className: 'FrenchPlugin'],
[ lang: 'Irish', code: 'ga', className: 'IrishPlugin'],
[ lang: 'Galician', code: 'gl', className: 'GalicianPlugin'],
[ lang: 'Italian', code: 'it', className: 'ItalianPlugin'],
[ lang: 'Japanese', code: 'ja', className: 'JapanesePlugin'],
[ lang: 'Central Khmer', code: 'km', className: 'KhmerPlugin'],
[ lang: 'Dutch', code: 'nl', className: 'DutchPlugin'],
[ lang: 'Polish', code: 'pl', className: 'PolishPlugin'],
[ lang: 'Portuguese', code: 'pt', className: 'PortuguesePlugin'],
[ lang: 'Romanian', code: 'ro', className: 'RomanianPlugin'],
[ lang: 'Russian', code: 'ru', className: 'RussianPlugin'],
[ lang: 'Slovak', code: 'sk', className: 'SlovakPlugin'],
[ lang: 'Slovenian', code: 'sl', className: 'SlovenianPlugin'],
[ lang: 'Swedish', code: 'sv', className: 'SwedishPlugin'],
[ lang: 'Tamil', code: 'ta', className: 'TamilPlugin'],
[ lang: 'Tagalog', code: 'tl', className: 'TagalogPlugin'],
[ lang: 'Ukrainian', code: 'uk', className: 'UkrainianPlugin'],
[ lang: 'Chinese', code: 'zh', className: 'ChinesePlugin']
]
def pluginPackage = 'org.omegat.languagetool.language'
def languageToolVersion = libs.versions.languagetool.get()
plugins.forEach { args ->
def name = args.get('code')
def pluginClass = "${pluginPackage}." + args.get('className')
def lang = args.get('lang')
sourceSets.create(name)
if (name.equals("ja")) {
dependencies.add("jaImplementation", libs.languagetool.ja.get()) {
// Temporary exclusion; see https://sourceforge.net/p/omegat/bugs/814/
exclude module: 'lucene-gosen'
exclude module: 'languagetool-core'
}
dependencies.add("jaImplementation", 'org.omegat.lucene:lucene-gosen:5.5.1:ipadic')
} else {
dependencies.add("${name}Implementation", "org.languagetool:language-${name}:${languageToolVersion}") {
exclude module: 'languagetool-core'
}
}
configurations.getByName("${name}RuntimeClasspath").exclude(group: 'org.languagetool', module: 'languagetool-core')
tasks.getByName("${name}Classes") {
group = 'languagetool'
}
tasks.register("${name}Jar", Jar) {
archiveFileName.set("omegat-language-${name}.${archiveExtension.get()}")
destinationDirectory.set(new File(rootProject.buildDir, "modules"))
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from configurations.getByName("${name}RuntimeClasspath").collect {
it.isDirectory() ? it : zipTree(it)
}
from sourceSets.getByName("${name}").output
manifest {
attributes(
'Plugin-Name': "${lang} LanguageTool",
'Plugin-License': 'GNU Public License version 3 or later',
'OmegaT-Plugins': pluginClass,
'Plugin-Author': 'OmegaT team',
'Plugin-Link': 'https://omegat.org',
'Plugin-Description': "Provide ${lang} Languagetool library",
'Plugin-Version': "${languageToolVersion}")
}
group = 'languagetool'
}
jar.dependsOn "${name}Jar"
def capitalName = name.capitalize()
tasks.getByName("spotbugs${capitalName}") {
group = 'other'
}
}