Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 10 additions & 16 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import android.annotation.SuppressLint
import com.android.build.api.dsl.ApplicationExtension
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

plugins {
id("pacemaker-application")
id("org.jetbrains.compose")
kotlin("native.cocoapods")
kotlin("plugin.compose")
}

Expand All @@ -21,8 +21,8 @@ extensions.configure(ApplicationExtension::class) {
namespace = "io.sellmair.pacemaker"

defaultConfig {
versionName = "2024.2"
versionCode = 15
versionName = "2025.1"
versionCode = 17
}
}

Expand Down Expand Up @@ -50,7 +50,7 @@ kotlin {

sourceSets.androidMain.get().dependencies {
/* androidx */
implementation("androidx.activity:activity-compose:1.9.0")
implementation("androidx.activity:activity-compose:1.9.3")
implementation(compose.preview)
}

Expand All @@ -62,19 +62,13 @@ kotlin {
}

sourceSets.getByName("androidInstrumentedTest").dependencies {
implementation("androidx.compose.ui:ui-test-junit4:1.6.8")
implementation("androidx.compose.ui:ui-test-junit4:1.7.6")
}
}

cocoapods {
version = "2024.2"
name = "PM"
podfile = project.file("../iosApp/Podfile")

framework {
homepage = "https://github.com/sellmair/pacemaker"
summary = "Application Framework"
baseName = "PM"
linkerOpts("-lsqlite3")
}
kotlin.targets.withType<KotlinNativeTarget>().configureEach {
binaries.framework {
baseName = "LibPacemaker"
isStatic = true
}
}
8 changes: 4 additions & 4 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ repositories {
}

dependencies {
val kotlinVersion = "2.0.20"
implementation("org.jetbrains.compose:compose-gradle-plugin:1.6.11")
val kotlinVersion = "2.1.0"
implementation("org.jetbrains.compose:compose-gradle-plugin:1.7.3")
implementation("org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:$kotlinVersion")
implementation(kotlin("gradle-plugin:$kotlinVersion"))
implementation(kotlin("serialization:$kotlinVersion"))
implementation("com.android.tools.build:gradle:8.5.2")
implementation("com.android.tools.build:gradle:8.7.3")
implementation("app.cash.sqldelight:gradle-plugin:2.0.2")
implementation("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.25.0")
implementation("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.26.1")
}
17 changes: 8 additions & 9 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ import org.gradle.api.Project
import org.jetbrains.compose.ComposePlugin

object Dependencies {
const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0-RC"
const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0-RC"
const val coroutinesDebug = "org.jetbrains.kotlinx:kotlinx-coroutines-debug:1.9.0-RC"
const val coroutinesTest = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0-RC"
const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1"
const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1"
const val coroutinesTest = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.1"
const val okio = "com.squareup.okio:okio:3.9.0"
const val kotlinxDatetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.6.0"
const val kotlinxImmutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7"
const val multiplatformSettings = "com.russhwolf:multiplatform-settings:1.1.1"
const val kotlinxDatetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.6.1"
const val kotlinxImmutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8"
const val multiplatformSettings = "com.russhwolf:multiplatform-settings:1.3.0"
const val androidXCoreKtx = "androidx.core:core-ktx:1.13.1"
const val evas = "io.sellmair:evas:1.0.0-RC.2"
const val evasCompose = "io.sellmair:evas-compose:1.0.0-RC.2"
const val evas = "io.sellmair:evas:1.2.0"
const val evasCompose = "io.sellmair:evas-compose:1.2.0"
fun composeRuntime(project: Project) = ComposePlugin.Dependencies(project).runtime
}
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/PacemakerExtension.kt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class PacemakerExtension(
namespace = "io.sellmair.${project.name.replace("-", ".")}"
defaultConfig {
minSdk = 31
targetSdk = 34
targetSdk = 35
}

if (this is ApplicationExtension) {
Expand Down Expand Up @@ -130,7 +130,7 @@ class PacemakerExtension(
project.plugins.apply("org.jetbrains.kotlinx.atomicfu")
kotlin {
sourceSets.commonMain.dependencies {
implementation("org.jetbrains.kotlinx:atomicfu:0.25.0")
implementation("org.jetbrains.kotlinx:atomicfu:0.26.1")
}
}
}
Expand Down
3 changes: 1 addition & 2 deletions buildSrc/src/main/kotlin/pacemaker.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ kotlin {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
implementation(Dependencies.coroutinesTest)
implementation(Dependencies.coroutinesDebug)
}


Expand All @@ -45,4 +44,4 @@ tasks.withType<Test>().configureEach {
showCauses = true
outputs.upToDateWhen { false }
}
}
}
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ android.useAndroidX=true
kotlin.code.style=official
org.jetbrains.compose.experimental.uikit.enabled=true
org.jetbrains.compose.experimental.macos.enabled=true
org.gradle.jvmargs=-Xmx12g -XX:+UseParallelGC
org.gradle.jvmargs=-Xmx12g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g
org.gradle.configuration-cache=true
org.gradle.caching=true
org.gradle.caching=true
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Wed May 29 16:30:04 CEST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
126 changes: 8 additions & 118 deletions iosApp/Pacemaker.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,9 @@
B07ED26029BF9C21008A106B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B07ED25F29BF9C21008A106B /* ContentView.swift */; };
B07ED26229BF9C22008A106B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B07ED26129BF9C22008A106B /* Assets.xcassets */; };
B07ED26529BF9C22008A106B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B07ED26429BF9C22008A106B /* Preview Assets.xcassets */; };
FF3D6CAD5DC179096D34E0D4 /* libPods-Pacemaker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AFD0559BA1AD7DBF1FAFE14 /* libPods-Pacemaker.a */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
1AFD0559BA1AD7DBF1FAFE14 /* libPods-Pacemaker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Pacemaker.a"; sourceTree = BUILT_PRODUCTS_DIR; };
1E9CE9C866240BA98D596615 /* Pods-Pacemaker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pacemaker.release.xcconfig"; path = "Target Support Files/Pods-Pacemaker/Pods-Pacemaker.release.xcconfig"; sourceTree = "<group>"; };
511024E3D3C9A62BDCDD419A /* Pods-Pacemaker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pacemaker.debug.xcconfig"; path = "Target Support Files/Pods-Pacemaker/Pods-Pacemaker.debug.xcconfig"; sourceTree = "<group>"; };
B071979C2AE9711E00E53800 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
B07ED25A29BF9C21008A106B /* Pacemaker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pacemaker.app; sourceTree = BUILT_PRODUCTS_DIR; };
B07ED25D29BF9C21008A106B /* PacemakerApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacemakerApp.swift; sourceTree = "<group>"; };
Expand All @@ -31,77 +27,17 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FF3D6CAD5DC179096D34E0D4 /* libPods-Pacemaker.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
60658279AC0A7A6AC483D624 /* Frameworks */ = {
isa = PBXGroup;
children = (
1AFD0559BA1AD7DBF1FAFE14 /* libPods-Pacemaker.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
75B3E0F5D5F59509048A1980 /* Target Support Files */ = {
isa = PBXGroup;
children = (
75B3E21257C32531DC305639 /* PM */,
75B3E6AD3EBDD1159E736CB9 /* Pods-Pacemaker */,
);
path = "Target Support Files";
sourceTree = "<group>";
};
75B3E21257C32531DC305639 /* PM */ = {
isa = PBXGroup;
children = (
);
path = PM;
sourceTree = "<group>";
};
75B3E6AD3EBDD1159E736CB9 /* Pods-Pacemaker */ = {
isa = PBXGroup;
children = (
);
path = "Pods-Pacemaker";
sourceTree = "<group>";
};
75B3EAA887AB77F7E3B8E44F /* Local Podspecs */ = {
isa = PBXGroup;
children = (
);
path = "Local Podspecs";
sourceTree = "<group>";
};
75B3EB14C3164D48B1E555D8 /* Pods */ = {
isa = PBXGroup;
children = (
75B3ECF718073DE915A6DBF9 /* Headers */,
75B3EAA887AB77F7E3B8E44F /* Local Podspecs */,
75B3E0F5D5F59509048A1980 /* Target Support Files */,
511024E3D3C9A62BDCDD419A /* Pods-Pacemaker.debug.xcconfig */,
1E9CE9C866240BA98D596615 /* Pods-Pacemaker.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
75B3ECF718073DE915A6DBF9 /* Headers */ = {
isa = PBXGroup;
children = (
);
path = Headers;
sourceTree = "<group>";
};
B07ED25129BF9C21008A106B = {
isa = PBXGroup;
children = (
B07ED25C29BF9C21008A106B /* Pacemaker */,
B07ED25B29BF9C21008A106B /* Products */,
60658279AC0A7A6AC483D624 /* Frameworks */,
75B3EB14C3164D48B1E555D8 /* Pods */,
);
sourceTree = "<group>";
};
Expand Down Expand Up @@ -140,12 +76,10 @@
isa = PBXNativeTarget;
buildConfigurationList = B07ED26829BF9C22008A106B /* Build configuration list for PBXNativeTarget "Pacemaker" */;
buildPhases = (
AA3495ADA9984FDA120BB08C /* [CP] Check Pods Manifest.lock */,
B0A5C0082CA1E1C6003D0856 /* Compile Kotlin */,
B07ED25629BF9C21008A106B /* Sources */,
B07ED25729BF9C21008A106B /* Frameworks */,
B07ED25829BF9C21008A106B /* Resources */,
90DB4FA7AA7DE12ACF36AE92 /* [CP] Embed Pods Frameworks */,
29269C111F7A0383A14CB54C /* [CP] Copy Pods Resources */,
);
buildRules = (
);
Expand Down Expand Up @@ -203,61 +137,23 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
29269C111F7A0383A14CB54C /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-resources.sh\"\n";
showEnvVarsInLog = 0;
};
90DB4FA7AA7DE12ACF36AE92 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Pacemaker/Pods-Pacemaker-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
AA3495ADA9984FDA120BB08C /* [CP] Check Pods Manifest.lock */ = {
B0A5C0082CA1E1C6003D0856 /* Compile Kotlin */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
name = "Compile Kotlin";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Pacemaker-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\ncd \"$SRCROOT/..\"\npwd\n./gradlew :app:embedAndSignAppleFrameworkForXcode\n";
};
/* End PBXShellScriptBuildPhase section */

Expand Down Expand Up @@ -397,12 +293,11 @@
};
B07ED26929BF9C22008A106B /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 511024E3D3C9A62BDCDD419A /* Pods-Pacemaker.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 15;
CURRENT_PROJECT_VERSION = 17;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_ASSET_PATHS = "\"Pacemaker/Preview Content\"";
DEVELOPMENT_TEAM = R58Q77NDGL;
Expand All @@ -423,13 +318,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2024.2;
MARKETING_VERSION = 2025.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-l\"c++\"",
"-framework",
"\"PM\"",
"-lsqlite3",
);
PRODUCT_BUNDLE_IDENTIFIER = io.sellmair.Pacemaker;
Expand All @@ -445,12 +338,11 @@
};
B07ED26A29BF9C22008A106B /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1E9CE9C866240BA98D596615 /* Pods-Pacemaker.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 15;
CURRENT_PROJECT_VERSION = 17;
DEVELOPMENT_ASSET_PATHS = "\"Pacemaker/Preview Content\"";
DEVELOPMENT_TEAM = R58Q77NDGL;
ENABLE_PREVIEWS = YES;
Expand All @@ -470,13 +362,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2024.2;
MARKETING_VERSION = 2025.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-l\"c++\"",
"-framework",
"\"PM\"",
"-lsqlite3",
);
PRODUCT_BUNDLE_IDENTIFIER = io.sellmair.Pacemaker;
Expand Down
3 changes: 0 additions & 3 deletions iosApp/Pacemaker.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion iosApp/Pacemaker/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//

import SwiftUI
import PM
import LibPacemaker

struct ComposeView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
Expand Down