diff --git a/samples/calculator/README.md b/samples/calculator/README.md index 6f99c2ec5a5..abdb7190a22 100644 --- a/samples/calculator/README.md +++ b/samples/calculator/README.md @@ -15,7 +15,8 @@ The common module may be used in an Android application. To build and run the Android sample do the following: -1. Open [android](android/) in Android Studio 3.1 +1. Open the project in Android Studio 3.1 +2. Create a new Android App configuration. Choose module `android`. 3. Now build and run the configuration created. ## iOS @@ -42,12 +43,12 @@ the Xcode project. The common module can also be used in JVM application built by Kotlin/JVM compiler with Gradle. To build and run it, go to [jvm](jvm/) directory and use ``` -../../gradlew run +../gradlew run ``` To build the distribution: ``` -../../gradlew distZip +../gradlew distZip ``` (the result will be available as `jvm/build/distributions/KotlinCalculator.zip`) diff --git a/samples/calculator/android/gradle/wrapper/gradle-wrapper.jar b/samples/calculator/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 13372aef5e2..00000000000 Binary files a/samples/calculator/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/samples/calculator/android/settings.gradle b/samples/calculator/android/settings.gradle deleted file mode 100644 index 22057d26ee1..00000000000 --- a/samples/calculator/android/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -include ':common' -project(':common').projectDir = file('../common') diff --git a/samples/calculator/gradle.properties b/samples/calculator/gradle.properties new file mode 100644 index 00000000000..0737650d23e --- /dev/null +++ b/samples/calculator/gradle.properties @@ -0,0 +1,2 @@ +konan.home=../../../dist +konan.plugin.version=+ \ No newline at end of file diff --git a/samples/calculator/gradle/wrapper/gradle-wrapper.jar b/samples/calculator/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000000..f6b961fd5a8 Binary files /dev/null and b/samples/calculator/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/calculator/android/gradle/wrapper/gradle-wrapper.properties b/samples/calculator/gradle/wrapper/gradle-wrapper.properties similarity index 80% rename from samples/calculator/android/gradle/wrapper/gradle-wrapper.properties rename to samples/calculator/gradle/wrapper/gradle-wrapper.properties index 05c8d256bff..bf3de218305 100644 --- a/samples/calculator/android/gradle/wrapper/gradle-wrapper.properties +++ b/samples/calculator/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Tue Jan 30 14:33:12 MSK 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/samples/calculator/android/gradlew b/samples/calculator/gradlew similarity index 84% rename from samples/calculator/android/gradlew rename to samples/calculator/gradlew index 9d82f789151..cccdd3d517f 100755 --- a/samples/calculator/android/gradlew +++ b/samples/calculator/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,42 +6,6 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -60,6 +24,46 @@ cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" cd "$SAVED" >/dev/null +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -85,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -150,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/samples/calculator/android/gradlew.bat b/samples/calculator/gradlew.bat similarity index 88% rename from samples/calculator/android/gradlew.bat rename to samples/calculator/gradlew.bat index aec99730b4e..e95643d6a2c 100644 --- a/samples/calculator/android/gradlew.bat +++ b/samples/calculator/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/samples/calculator/ios/build.gradle b/samples/calculator/ios/build.gradle index e3a0044b7ac..c2b151aa897 100644 --- a/samples/calculator/ios/build.gradle +++ b/samples/calculator/ios/build.gradle @@ -20,6 +20,6 @@ konanArtifacts { } dependencies { - expectedBy project(':calculator:common') + expectedBy project(':common') } diff --git a/samples/calculator/ios/calculator.xcodeproj/project.pbxproj b/samples/calculator/ios/calculator.xcodeproj/project.pbxproj index 168feecc311..adf362d0e62 100644 --- a/samples/calculator/ios/calculator.xcodeproj/project.pbxproj +++ b/samples/calculator/ios/calculator.xcodeproj/project.pbxproj @@ -251,7 +251,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"$SRCROOT/../../gradlew\" -p \"$SRCROOT\" \"$KONAN_TASK\" -Pkonan.useEnvironmentVariables=true"; + shellScript = "\"$SRCROOT/../gradlew\" -p \"$SRCROOT\" \"$KONAN_TASK\" --no-daemon -Pkonan.useEnvironmentVariables=true"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/samples/calculator/ios/gradle.properties b/samples/calculator/ios/gradle.properties deleted file mode 100644 index 1f78a75b3dc..00000000000 --- a/samples/calculator/ios/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -konan.home=../../../dist \ No newline at end of file diff --git a/samples/calculator/jvm/build.gradle b/samples/calculator/jvm/build.gradle index c1e61bd74f6..e2fc5a4e2eb 100644 --- a/samples/calculator/jvm/build.gradle +++ b/samples/calculator/jvm/build.gradle @@ -19,7 +19,7 @@ repositories { dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - expectedBy project(":calculator:common") + expectedBy project(":common") } applicationName = "KotlinCalculator" diff --git a/samples/calculator/settings.gradle b/samples/calculator/settings.gradle new file mode 100644 index 00000000000..ffc88636ff8 --- /dev/null +++ b/samples/calculator/settings.gradle @@ -0,0 +1,10 @@ +include ':common' +include ':jvm' +include ':ios' + +if (System.getenv('ANDROID_HOME') != null) { + include ':android' +} + +includeBuild '../../shared' +includeBuild '../../tools/kotlin-native-gradle-plugin' diff --git a/samples/settings.gradle b/samples/settings.gradle index 8656dbe5705..42fdcf83009 100644 --- a/samples/settings.gradle +++ b/samples/settings.gradle @@ -1,9 +1,5 @@ // NOTE: If a new sample uses only platform libs, // please add it into the 'buildSamplesWithPlatfromLibs' task in build.gradle. -include ':calculator' -include ':calculator:common' -include ':calculator:jvm' -include ':calculator:ios' include ':csvparser' include ':gitchurn' include ':globalState' @@ -15,11 +11,10 @@ include ':socket' include ':tetris' include ':tensorflow' include ':torch' -// Android samples require Android SDK. +// Android native activity build requires Android SDK. // So temporary switching off for now, as it breaks the build // of other samples if SDK is not present. // include ':androidNativeActivity' -// include ':calculator:android' include ':objc' include ':uikit' include ':win32'