From fe219b5296e6ba819c581cc5cf2628ac37164cf9 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 7 Apr 2019 13:07:50 -0500 Subject: [PATCH] Update kotlin gradle plugin; add js target --- core/build.gradle | 71 ++++++++----------- core/gradle/wrapper/gradle-wrapper.properties | 3 +- core/settings.gradle | 9 +++ .../kotlin/org/isoron/platform/io/sprintf.kt} | 9 +-- ios/Application/BridgingHeader.h | 2 +- ios/uhabits.xcodeproj/project.pbxproj | 34 ++++----- 6 files changed, 60 insertions(+), 68 deletions(-) create mode 100644 core/settings.gradle rename core/src/{commonTest/kotlin/org/isoron/platform/io/StringsTest.kt => jsMain/kotlin/org/isoron/platform/io/sprintf.kt} (84%) 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)",