You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
/* |
|
* Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers. |
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. |
|
*/ |
|
|
|
package org.jetbrains.compose.desktop.application.dsl |
|
|
|
import org.jetbrains.compose.desktop.application.internal.OS |
|
import org.jetbrains.compose.desktop.application.internal.currentOS |
|
|
|
enum class TargetFormat( |
|
internal val id: String, |
|
internal val targetOS: OS |
|
) { |
|
AppImage("app-image", currentOS), |
|
Deb("deb", OS.Linux), |
|
Rpm("rpm", OS.Linux), |
|
Dmg("dmg", OS.MacOS), |
|
Pkg("pkg", OS.MacOS), |
|
Exe("exe", OS.Windows), |
|
Msi("msi", OS.Windows); |
|
|
|
val isCompatibleWithCurrentOS: Boolean by lazy { isCompatibleWith(currentOS) } |
|
|
|
internal fun isCompatibleWith(os: OS): Boolean = os == targetOS |
|
|
|
val outputDirName: String |
|
get() = if (this == AppImage) "app" else id |
|
|
|
val fileExt: String |
|
get() { |
|
check(this != AppImage) { "$this cannot have a file extension" } |
|
return ".$id" |
|
} |
|
} |