forked from libgdx/gdx-liftoff
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathShared.kt
45 lines (38 loc) · 1.38 KB
/
Shared.kt
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
package gdx.liftoff.data.platforms
import gdx.liftoff.data.files.gradle.GradleFile
import gdx.liftoff.data.project.Project
import gdx.liftoff.views.GdxPlatform
/**
* Represents shared project, accessible by both client and server application.
*/
@GdxPlatform
class Shared : Platform {
companion object {
const val ID = "shared"
const val ORDER = Server.ORDER + 1
}
override val id = ID
override val order = ORDER
override val isStandard = false
override fun createGradleFile(project: Project): GradleFile = SharedGradleFile(project)
override fun initiate(project: Project) {
project.getGradleFile(Core.ID).dependencies.add("project(':$id')")
if (project.hasPlatform(Server.ID)) {
project.getGradleFile(Server.ID).dependencies.add("project(':$id')")
}
if (project.hasPlatform(GWT.ID)) {
// Including shared project sources in GWT platform:
project.getGradleFile(GWT.ID).buildDependencies.add("project(':$id')")
}
}
}
/**
* Represents shared project Gradle file. Should include dependencies that should be available for both server and
* client applications.
*/
class SharedGradleFile(val project: Project) : GradleFile(Shared.ID) {
override fun getContent(): String = """eclipse.project.name = appName + '-shared'
dependencies {
${joinDependencies(dependencies)}}
"""
}