diff --git a/core/build.gradle b/core/build.gradle
index fc0db1931..a41320348 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -17,34 +17,23 @@
* with this program. If not, see .
*/
-buildscript {
- repositories {
- google()
- jcenter()
- maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
- }
-
- dependencies {
- classpath "com.android.tools.build:gradle:3.2.1"
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11"
- }
+plugins {
+ id 'kotlin-multiplatform' version '1.3.21'
}
-allprojects {
- repositories {
- google()
- jcenter()
- maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
- }
+repositories {
+ mavenCentral()
}
-apply plugin:"kotlin-multiplatform"
-
kotlin {
+ jvm()
+ js()
+
targets {
- def iosPreset = System.getenv('SDK_NAME')?.startsWith("iphoneos") ? presets.iosArm64 : presets.iosX64
- fromPreset(presets.jvm, 'jvm')
- fromPreset(iosPreset, 'iOS') {
+ def sdkName = System.getenv('SDK_NAME')
+ def isIphone = sdkName?.startsWith("iphoneos")
+ def iosPreset = isIphone ? presets.iosArm64 : presets.iosX64
+ fromPreset(iosPreset, 'ios') {
compilations.main.outputKinds('FRAMEWORK')
}
}
@@ -52,43 +41,41 @@ kotlin {
sourceSets {
commonMain {
dependencies {
- implementation 'org.jetbrains.kotlin:kotlin-stdlib-common'
+ implementation kotlin('stdlib-common')
}
}
+
commonTest {
dependencies {
- implementation 'org.jetbrains.kotlin:kotlin-test-common'
- implementation 'org.jetbrains.kotlin:kotlin-test-annotations-common'
+ implementation kotlin('test-common')
+ implementation kotlin('test-annotations-common')
}
}
+
jvmMain {
dependencies {
- implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
+ implementation kotlin('stdlib-jdk8')
}
}
+
jvmTest {
dependencies {
- implementation 'org.jetbrains.kotlin:kotlin-test'
- implementation 'org.jetbrains.kotlin:kotlin-test-junit'
+ implementation kotlin('test')
+ implementation kotlin('test-junit')
implementation 'org.xerial:sqlite-jdbc:3.25.2'
}
}
- }
- task iosTest {
- dependsOn 'linkTestDebugExecutableIOS'
- group = JavaBasePlugin.VERIFICATION_GROUP
- description = "Runs tests for target 'ios' on an iOS simulator"
+ jsMain {
+ dependencies {
+ implementation kotlin('stdlib-js')
+ }
+ }
- doLast {
- def binary = kotlin.targets.iOS.compilations.test.getBinary('EXECUTABLE', 'DEBUG')
- exec {
- commandLine 'xcrun', 'simctl', 'spawn', "iPhone 8", binary.absolutePath
+ jsTest {
+ dependencies {
+ implementation kotlin('test-js')
}
}
}
-}
-
-configurations {
- compileClasspath
-}
+}
\ No newline at end of file
diff --git a/core/gradle/wrapper/gradle-wrapper.properties b/core/gradle/wrapper/gradle-wrapper.properties
index 558870dad..36ae52bed 100644
--- a/core/gradle/wrapper/gradle-wrapper.properties
+++ b/core/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Sun Apr 07 10:31:43 CDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
diff --git a/core/settings.gradle b/core/settings.gradle
new file mode 100644
index 000000000..20ee303a3
--- /dev/null
+++ b/core/settings.gradle
@@ -0,0 +1,9 @@
+pluginManagement {
+ resolutionStrategy {
+ eachPlugin {
+ if (requested.id.id == "kotlin-multiplatform") {
+ useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${requested.version}")
+ }
+ }
+ }
+}
diff --git a/core/src/commonTest/kotlin/org/isoron/platform/io/StringsTest.kt b/core/src/jsMain/kotlin/org/isoron/platform/io/sprintf.kt
similarity index 84%
rename from core/src/commonTest/kotlin/org/isoron/platform/io/StringsTest.kt
rename to core/src/jsMain/kotlin/org/isoron/platform/io/sprintf.kt
index 3ae79f7fe..924b33e5b 100644
--- a/core/src/commonTest/kotlin/org/isoron/platform/io/StringsTest.kt
+++ b/core/src/jsMain/kotlin/org/isoron/platform/io/sprintf.kt
@@ -19,11 +19,6 @@
package org.isoron.platform.io
-import kotlin.test.*
-
-class StringsTest {
- @Test
- fun testSprintf() {
- assertEquals("Number 004", sprintf("Number %03d", 4))
- }
+actual fun sprintf(format: String, vararg args: Any?): String {
+ TODO()
}
\ No newline at end of file
diff --git a/ios/Application/BridgingHeader.h b/ios/Application/BridgingHeader.h
index d8bcf4d1d..8bec8a96c 100644
--- a/ios/Application/BridgingHeader.h
+++ b/ios/Application/BridgingHeader.h
@@ -17,4 +17,4 @@
* with this program. If not, see .
*/
-#import
+#import
diff --git a/ios/uhabits.xcodeproj/project.pbxproj b/ios/uhabits.xcodeproj/project.pbxproj
index 2ebb71341..58dc83d05 100644
--- a/ios/uhabits.xcodeproj/project.pbxproj
+++ b/ios/uhabits.xcodeproj/project.pbxproj
@@ -19,9 +19,9 @@
00C0C6BD22465F65003D8AF0 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BA22465F65003D8AF0 /* fonts */; };
00C0C6BE22465F65003D8AF0 /* databases in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BB22465F65003D8AF0 /* databases */; };
00C0C6BF22465F65003D8AF0 /* migrations in Resources */ = {isa = PBXBuildFile; fileRef = 00C0C6BC22465F65003D8AF0 /* migrations */; };
- 00C0C6CA2246E543003D8AF0 /* core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* core.framework */; };
- 00C0C6CB2246E543003D8AF0 /* core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* core.framework */; };
- 00C0C6CC2246E550003D8AF0 /* core.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* core.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 00C0C6CA2246E543003D8AF0 /* main.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* main.framework */; };
+ 00C0C6CB2246E543003D8AF0 /* main.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* main.framework */; };
+ 00C0C6CC2246E550003D8AF0 /* main.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 00C0C6C92246E543003D8AF0 /* main.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
00C0C6CE2246EFB3003D8AF0 /* IosExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0C6CD2246EFB3003D8AF0 /* IosExtensions.swift */; };
00C0C6D122470705003D8AF0 /* IosCanvas.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0C6D022470705003D8AF0 /* IosCanvas.swift */; };
00C0C6D92247DC13003D8AF0 /* IosCanvasTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C0C6D82247DC13003D8AF0 /* IosCanvasTest.swift */; };
@@ -49,7 +49,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 00C0C6CC2246E550003D8AF0 /* core.framework in Embed Frameworks */,
+ 00C0C6CC2246E550003D8AF0 /* main.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -74,7 +74,7 @@
00C0C6BA22465F65003D8AF0 /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = ""; };
00C0C6BB22465F65003D8AF0 /* databases */ = {isa = PBXFileReference; lastKnownFileType = folder; path = databases; sourceTree = ""; };
00C0C6BC22465F65003D8AF0 /* migrations */ = {isa = PBXFileReference; lastKnownFileType = folder; path = migrations; sourceTree = ""; };
- 00C0C6C92246E543003D8AF0 /* core.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = core.framework; path = ../core/build/bin/iOS/main/debug/framework/core.framework; sourceTree = ""; };
+ 00C0C6C92246E543003D8AF0 /* main.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = main.framework; path = ../core/build/bin/ios/mainDebugFramework/main.framework; sourceTree = ""; };
00C0C6CD2246EFB3003D8AF0 /* IosExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IosExtensions.swift; sourceTree = ""; };
00C0C6D022470705003D8AF0 /* IosCanvas.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IosCanvas.swift; sourceTree = ""; };
00C0C6D82247DC13003D8AF0 /* IosCanvasTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IosCanvasTest.swift; sourceTree = ""; };
@@ -90,7 +90,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 00C0C6CA2246E543003D8AF0 /* core.framework in Frameworks */,
+ 00C0C6CA2246E543003D8AF0 /* main.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -98,7 +98,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 00C0C6CB2246E543003D8AF0 /* core.framework in Frameworks */,
+ 00C0C6CB2246E543003D8AF0 /* main.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -162,7 +162,7 @@
00C0C6B0224658CD003D8AF0 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 00C0C6C92246E543003D8AF0 /* core.framework */,
+ 00C0C6C92246E543003D8AF0 /* main.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -319,7 +319,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "cd ../core\n./gradlew linkIOS\n";
+ shellScript = "cd ../core\n./gradlew linkMainIos\n";
};
/* End PBXShellScriptBuildPhase section */
@@ -493,10 +493,10 @@
DEVELOPMENT_TEAM = R5YTHGE3PS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
- "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/",
+ "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/",
"$(PROJECT_DIR)",
);
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/core.framework/Headers/";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/";
INFOPLIST_FILE = Application/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -520,10 +520,10 @@
DEVELOPMENT_TEAM = R5YTHGE3PS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
- "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/",
+ "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/",
"$(PROJECT_DIR)",
);
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/core.framework/Headers/";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/";
INFOPLIST_FILE = Application/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -545,8 +545,8 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = R5YTHGE3PS;
- FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/";
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/core.framework/Headers/";
+ FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/";
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -568,8 +568,8 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = R5YTHGE3PS;
- FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/";
- HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/iOS/main/debug/framework/core.framework/Headers/";
+ FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/";
+ HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../core/build/bin/ios/mainDebugFramework/main.framework/Headers/";
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",