summaryrefslogtreecommitdiff
path: root/settings.gradle
blob: 0c1e4b01e5cf1620d312cbb3d1d1b505439b032e (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
rootProject.name = 'elasticsearch'

List projects = [
  'build-tools',
  'rest-api-spec',
  'core',
  'docs',
  'client:rest',
  'client:sniffer',
  'client:test',
  'benchmarks',
  'distribution:integ-test-zip',
  'distribution:zip',
  'distribution:tar',
  'distribution:deb',
  'distribution:rpm',
  'test:framework',
  'test:fixtures:example-fixture',
  'test:fixtures:hdfs-fixture',
  'test:logger-usage',
  'modules:aggs-matrix-stats',
  'modules:ingest-common',
  'modules:lang-expression',
  'modules:lang-groovy',
  'modules:lang-mustache',
  'modules:lang-painless',
  'modules:reindex',
  'modules:percolator',
  'plugins:analysis-icu',
  'plugins:analysis-kuromoji',
  'plugins:analysis-phonetic',
  'plugins:analysis-smartcn',
  'plugins:analysis-stempel',
  'plugins:discovery-azure-classic',
  'plugins:discovery-ec2',
  'plugins:discovery-gce',
  'plugins:ingest-geoip',
  'plugins:ingest-attachment',
  'plugins:ingest-useragent',
  'plugins:lang-javascript',
  'plugins:lang-python',
  'plugins:mapper-attachments',
  'plugins:mapper-murmur3',
  'plugins:mapper-size',
  'plugins:repository-azure',
  'plugins:repository-gcs',
  'plugins:repository-hdfs',
  'plugins:repository-s3',
  'plugins:jvm-example',
  'plugins:store-smb',
  'qa:backwards-5.0',
  'qa:evil-tests',
  'qa:smoke-test-client',
  'qa:smoke-test-ingest-with-all-dependencies',
  'qa:smoke-test-ingest-disabled',
  'qa:smoke-test-multinode',
  'qa:smoke-test-plugins',
  'qa:smoke-test-reindex-with-painless',
  'qa:vagrant',
]

boolean isEclipse = System.getProperty("eclipse.launcher") != null || gradle.startParameter.taskNames.contains('eclipse') || gradle.startParameter.taskNames.contains('cleanEclipse')
if (isEclipse) {
  // eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects
  // for core-src and core-tests
  projects << 'core-tests'
}

include projects.toArray(new String[0])

project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')

if (isEclipse) {
  project(":core").projectDir = new File(rootProject.projectDir, 'core/src/main')
  project(":core").buildFileName = 'eclipse-build.gradle'
  project(":core-tests").projectDir = new File(rootProject.projectDir, 'core/src/test')
  project(":core-tests").buildFileName = 'eclipse-build.gradle'
}

/**
  * Iterates over sub directories, looking for build.gradle, and adds a project if found
  * for that dir with the given path prefix. Note that this requires each level
  * of the dir hiearchy to have a build.gradle. Otherwise we would have to iterate
  * all files/directories in the source tree to find all projects.
  */
void addSubProjects(String path, File dir) {
  if (dir.isDirectory() == false) return;
  if (dir.name == 'buildSrc') return;
  if (new File(dir, 'build.gradle').exists() == false) return;

  String projectName = "${path}:${dir.name}"
  include projectName
  for (File subdir : dir.listFiles()) {
    addSubProjects(projectName, subdir)
  }
}

// look for extra plugins for elasticsearch
File xplugins = new File(rootProject.projectDir.parentFile, 'x-plugins')
if (xplugins.exists()) {
  include ':x-plugins'
  project(':x-plugins').projectDir = xplugins
  for (File extraPluginDir : xplugins.listFiles()) {
    addSubProjects(':x-plugins', extraPluginDir)
  }
}