build.gradle.kts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /* build.gradle.kts/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */
  2. /* This copyright was auto-generated on Tue Feb 18 18:41:27 UTC 2025 */
  3. import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
  4. import org.jetbrains.kotlin.gradle.dsl.JvmTarget
  5. plugins {
  6. alias(libs.plugins.kotlinMultiplatform)
  7. alias(libs.plugins.androidApplication)
  8. alias(libs.plugins.jetbrainsCompose)
  9. alias(libs.plugins.compose.compiler)
  10. alias(libs.plugins.license)
  11. alias(libs.plugins.format)
  12. }
  13. kotlin {
  14. androidTarget {
  15. @OptIn(ExperimentalKotlinGradlePluginApi::class)
  16. compilerOptions { jvmTarget.set(JvmTarget.JVM_17) }
  17. }
  18. // jvm("desktop")
  19. listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach { iosTarget ->
  20. iosTarget.binaries.framework {
  21. baseName = "ComposeApp"
  22. isStatic = true
  23. }
  24. }
  25. sourceSets {
  26. // val desktopMain by getting
  27. val androidUnitTest by getting
  28. commonMain.dependencies {
  29. implementation(projects.wsdk)
  30. // UI
  31. implementation(compose.runtime)
  32. implementation(compose.foundation)
  33. implementation(compose.material3)
  34. implementation(compose.ui)
  35. implementation(compose.components.resources)
  36. implementation(compose.components.uiToolingPreview)
  37. implementation(libs.androidx.lifecycle.viewmodel)
  38. implementation(libs.androidx.lifecycle.runtime.compose)
  39. // DI
  40. api(libs.koin.core)
  41. implementation(libs.koin.compose)
  42. implementation(libs.koin.compose.viewmodel)
  43. // Logging
  44. implementation(libs.kermit)
  45. // Navigation
  46. implementation(libs.navigation.compose)
  47. // Datastore
  48. implementation(libs.datastore)
  49. implementation(libs.datastore.preferences)
  50. // Coil
  51. implementation(libs.coil.compose.core)
  52. implementation(libs.coil.compose)
  53. implementation(libs.coil.mp)
  54. implementation(libs.coil.network.ktor)
  55. }
  56. // desktopMain.dependencies {
  57. // implementation(compose.desktop.currentOs)
  58. // implementation(libs.kotlinx.coroutines.swing)
  59. // }
  60. androidMain.dependencies {
  61. implementation(libs.androidx.activity.compose)
  62. // DI
  63. implementation(libs.koin.android)
  64. implementation(libs.koin.androidx.compose)
  65. // VLC
  66. implementation(libs.libvlc.all)
  67. // Exoplayer
  68. implementation(libs.exoplayer.base)
  69. implementation(libs.exoplayer.ui)
  70. implementation(libs.exoplayer.rtsp)
  71. }
  72. androidUnitTest.dependencies {
  73. implementation(libs.junit)
  74. implementation(libs.koin.test)
  75. }
  76. }
  77. }
  78. android {
  79. namespace = "gopro.open_gopro"
  80. compileSdk = libs.versions.android.compileSdk.get().toInt()
  81. sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
  82. sourceSets["main"].res.srcDirs("src/androidMain/res")
  83. sourceSets["main"].resources.srcDirs("src/commonMain/resources")
  84. defaultConfig {
  85. applicationId = "gopro.open_gopro.compose_app"
  86. minSdk = libs.versions.android.minSdk.get().toInt()
  87. targetSdk = libs.versions.android.targetSdk.get().toInt()
  88. versionCode = 1
  89. versionName = "1.0"
  90. }
  91. packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } }
  92. buildTypes { getByName("release") { isMinifyEnabled = false } }
  93. compileOptions {
  94. sourceCompatibility = JavaVersion.VERSION_17
  95. targetCompatibility = JavaVersion.VERSION_17
  96. }
  97. buildFeatures { compose = true }
  98. dependencies {
  99. debugImplementation(compose.uiTooling)
  100. debugImplementation(compose.preview)
  101. debugImplementation(libs.ui.tooling.preview)
  102. }
  103. }
  104. // compose.desktop {
  105. // application {
  106. // mainClass = "gopro.open_gopro.MainKt"
  107. //
  108. // nativeDistributions {
  109. // targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
  110. // packageName = "gopro.open_gopro"
  111. // packageVersion = "1.0.0"
  112. // }
  113. // }
  114. // }
  115. licenseReport {
  116. // Generate reports
  117. generateCsvReport = true
  118. generateHtmlReport = true
  119. generateJsonReport = false
  120. generateTextReport = true
  121. // Copy reports - These options are ignored for Java projects
  122. copyCsvReportToAssets = false
  123. copyHtmlReportToAssets = false
  124. copyJsonReportToAssets = false
  125. copyTextReportToAssets = false
  126. useVariantSpecificAssetDirs = false
  127. // Ignore licenses for certain artifact patterns
  128. // ignoredPatterns = []
  129. // Show versions in the report - default is false
  130. showVersions = true
  131. }