From 33a059ddd3e46643e17c8552dc86e5db0328f52e Mon Sep 17 00:00:00 2001 From: Igor Demin Date: Tue, 29 Jun 2021 16:58:10 +0300 Subject: [PATCH] Compose as submodule, scripts for build/test Compose (#830) - add run configurations for IDEA / Android Studio - configure CI to use those scripts to build everything: 0.0.0-newci-316 (with desktop/web components) --- .gitmodules | 9 + README.md | 1 + compose/.gitignore | 17 ++ ...ration-tests.macrobenchmark-target.run.xml | 60 ++++++ ...dx.compose.integration-tests.demos.run.xml | 60 ++++++ ...ration-tests.macrobenchmark-target.run.xml | 60 ++++++ ...integration-tests.material-catalog.run.xml | 60 ++++++ ...manifest.integration-tests.testapp.run.xml | 60 ++++++ ...nstaller.integration-tests.testapp.run.xml | 60 ++++++ ...ar.compose.integration-tests.demos.run.xml | 60 ++++++ compose/.run/build extended icons.run.xml | 23 +++ compose/.run/build.run.xml | 23 +++ ...(without Android Layout Inspector).run.xml | 23 +++ compose/.run/run2.run.xml | 23 +++ compose/.run/run3.run.xml | 23 +++ compose/.run/run4.run.xml | 23 +++ compose/.run/runVsync.run.xml | 23 +++ compose/.run/runWindowApi.run.xml | 23 +++ ...ose_desktop_desktop_samples [run1].run.xml | 23 +++ compose/.run/test (web).run.xml | 23 +++ compose/.run/test.run.xml | 23 +++ compose/README.md | 61 ++++++ compose/build.gradle.kts | 83 ++++++++ compose/external/doclava | 1 + compose/frameworks/support | 1 + compose/golden | 1 + compose/gradle.properties | 6 + compose/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + compose/gradlew | 183 ++++++++++++++++++ compose/gradlew.bat | 100 ++++++++++ compose/screenshots/studio.png | Bin 0 -> 59832 bytes compose/scripts/downloadAndroidSdk | 48 +++++ compose/scripts/prepare | 9 + compose/scripts/publish | 8 + compose/scripts/publishExtendedIcons | 8 + compose/scripts/publishWithoutInspector | 12 ++ compose/scripts/testAll | 8 + compose/scripts/testDesktop | 8 + compose/scripts/testWeb | 8 + compose/settings.gradle.kts | 1 + 41 files changed, 1251 insertions(+) create mode 100644 .gitmodules create mode 100644 compose/.gitignore create mode 100644 compose/.run/androidx.benchmark.integration-tests.macrobenchmark-target.run.xml create mode 100644 compose/.run/androidx.compose.integration-tests.demos.run.xml create mode 100644 compose/.run/androidx.compose.integration-tests.macrobenchmark-target.run.xml create mode 100644 compose/.run/androidx.compose.material.material.integration-tests.material-catalog.run.xml create mode 100644 compose/.run/androidx.compose.ui.ui-test-manifest.integration-tests.testapp.run.xml create mode 100644 compose/.run/androidx.profileinstaller.integration-tests.testapp.run.xml create mode 100644 compose/.run/androidx.wear.compose.integration-tests.demos.run.xml create mode 100644 compose/.run/build extended icons.run.xml create mode 100644 compose/.run/build.run.xml create mode 100644 compose/.run/publish (without Android Layout Inspector).run.xml create mode 100644 compose/.run/run2.run.xml create mode 100644 compose/.run/run3.run.xml create mode 100644 compose/.run/run4.run.xml create mode 100644 compose/.run/runVsync.run.xml create mode 100644 compose/.run/runWindowApi.run.xml create mode 100644 compose/.run/support_compose_desktop_desktop_samples [run1].run.xml create mode 100644 compose/.run/test (web).run.xml create mode 100644 compose/.run/test.run.xml create mode 100644 compose/README.md create mode 100644 compose/build.gradle.kts create mode 160000 compose/external/doclava create mode 160000 compose/frameworks/support create mode 160000 compose/golden create mode 100644 compose/gradle.properties create mode 100644 compose/gradle/wrapper/gradle-wrapper.jar create mode 100644 compose/gradle/wrapper/gradle-wrapper.properties create mode 100755 compose/gradlew create mode 100644 compose/gradlew.bat create mode 100644 compose/screenshots/studio.png create mode 100755 compose/scripts/downloadAndroidSdk create mode 100755 compose/scripts/prepare create mode 100755 compose/scripts/publish create mode 100755 compose/scripts/publishExtendedIcons create mode 100755 compose/scripts/publishWithoutInspector create mode 100755 compose/scripts/testAll create mode 100755 compose/scripts/testDesktop create mode 100755 compose/scripts/testWeb create mode 100644 compose/settings.gradle.kts diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..82905da6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "compose/frameworks/support"] + path = compose/frameworks/support + url = https://github.com/JetBrains/androidx +[submodule "compose/golden"] + path = compose/golden + url = https://android.googlesource.com/platform/frameworks/support-golden +[submodule "compose/external/doclava"] + path = compose/external/doclava + url = https://android.googlesource.com/platform/external/doclava diff --git a/README.md b/README.md index 3a108ef2..fe474051 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ at https://android.googlesource.com/platform/frameworks/support. * [artwork](artwork) - design artifacts * [benchmarks](benchmarks) - collection of benchmarks + * [compose](compose) - composite build of [Compose-jb sources](https://github.com/JetBrains/androidx) * [ci](ci) - Continuous Integration helpers * [cef](cef) - CEF integration in Jetpack Compose * [examples](examples) - examples of multiplatform Compose applications for Desktop and Android diff --git a/compose/.gitignore b/compose/.gitignore new file mode 100644 index 00000000..a0023c8f --- /dev/null +++ b/compose/.gitignore @@ -0,0 +1,17 @@ +prebuilds +out +*.iml +.gradle +/local.properties +/.idea +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build/ +/captures +.externalNativeBuild +.cxx \ No newline at end of file diff --git a/compose/.run/androidx.benchmark.integration-tests.macrobenchmark-target.run.xml b/compose/.run/androidx.benchmark.integration-tests.macrobenchmark-target.run.xml new file mode 100644 index 00000000..14ed2fe5 --- /dev/null +++ b/compose/.run/androidx.benchmark.integration-tests.macrobenchmark-target.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.compose.integration-tests.demos.run.xml b/compose/.run/androidx.compose.integration-tests.demos.run.xml new file mode 100644 index 00000000..1e3a1e94 --- /dev/null +++ b/compose/.run/androidx.compose.integration-tests.demos.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.compose.integration-tests.macrobenchmark-target.run.xml b/compose/.run/androidx.compose.integration-tests.macrobenchmark-target.run.xml new file mode 100644 index 00000000..4e7af657 --- /dev/null +++ b/compose/.run/androidx.compose.integration-tests.macrobenchmark-target.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.compose.material.material.integration-tests.material-catalog.run.xml b/compose/.run/androidx.compose.material.material.integration-tests.material-catalog.run.xml new file mode 100644 index 00000000..0bd5f3af --- /dev/null +++ b/compose/.run/androidx.compose.material.material.integration-tests.material-catalog.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.compose.ui.ui-test-manifest.integration-tests.testapp.run.xml b/compose/.run/androidx.compose.ui.ui-test-manifest.integration-tests.testapp.run.xml new file mode 100644 index 00000000..9a5ba33d --- /dev/null +++ b/compose/.run/androidx.compose.ui.ui-test-manifest.integration-tests.testapp.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.profileinstaller.integration-tests.testapp.run.xml b/compose/.run/androidx.profileinstaller.integration-tests.testapp.run.xml new file mode 100644 index 00000000..adf325a0 --- /dev/null +++ b/compose/.run/androidx.profileinstaller.integration-tests.testapp.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/androidx.wear.compose.integration-tests.demos.run.xml b/compose/.run/androidx.wear.compose.integration-tests.demos.run.xml new file mode 100644 index 00000000..0e585c5c --- /dev/null +++ b/compose/.run/androidx.wear.compose.integration-tests.demos.run.xml @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/compose/.run/build extended icons.run.xml b/compose/.run/build extended icons.run.xml new file mode 100644 index 00000000..d75e655a --- /dev/null +++ b/compose/.run/build extended icons.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/build.run.xml b/compose/.run/build.run.xml new file mode 100644 index 00000000..4f02a631 --- /dev/null +++ b/compose/.run/build.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/publish (without Android Layout Inspector).run.xml b/compose/.run/publish (without Android Layout Inspector).run.xml new file mode 100644 index 00000000..95fcf49e --- /dev/null +++ b/compose/.run/publish (without Android Layout Inspector).run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/run2.run.xml b/compose/.run/run2.run.xml new file mode 100644 index 00000000..e8cf08b4 --- /dev/null +++ b/compose/.run/run2.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/run3.run.xml b/compose/.run/run3.run.xml new file mode 100644 index 00000000..a3381db1 --- /dev/null +++ b/compose/.run/run3.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/run4.run.xml b/compose/.run/run4.run.xml new file mode 100644 index 00000000..dca4e60a --- /dev/null +++ b/compose/.run/run4.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/runVsync.run.xml b/compose/.run/runVsync.run.xml new file mode 100644 index 00000000..aa75c522 --- /dev/null +++ b/compose/.run/runVsync.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/runWindowApi.run.xml b/compose/.run/runWindowApi.run.xml new file mode 100644 index 00000000..66270f92 --- /dev/null +++ b/compose/.run/runWindowApi.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/support_compose_desktop_desktop_samples [run1].run.xml b/compose/.run/support_compose_desktop_desktop_samples [run1].run.xml new file mode 100644 index 00000000..51675133 --- /dev/null +++ b/compose/.run/support_compose_desktop_desktop_samples [run1].run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/test (web).run.xml b/compose/.run/test (web).run.xml new file mode 100644 index 00000000..e6221924 --- /dev/null +++ b/compose/.run/test (web).run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/.run/test.run.xml b/compose/.run/test.run.xml new file mode 100644 index 00000000..a56438a8 --- /dev/null +++ b/compose/.run/test.run.xml @@ -0,0 +1,23 @@ + + + + + + + true + true + false + + + \ No newline at end of file diff --git a/compose/README.md b/compose/README.md new file mode 100644 index 00000000..1cabe0cf --- /dev/null +++ b/compose/README.md @@ -0,0 +1,61 @@ +![Project in Android Studio](screenshots/studio.png) + +Composite build of [Compose-jb sources](https://github.com/JetBrains/androidx) + +## Download submodules after downloading the main project: +``` +git submodule update --init +``` +Set this property to always update submodules on git checkout/pull/reset: +``` +git config --global submodule.recurse true +``` + +## General requirements +- Java 11 (should be specified in JAVA_HOME) +- Android SDK (should be specified in ANDROID_SDK_ROOT. Can be downloaded via `./scripts/downloadAndroidSdk` on Linux/macOS) + - Android 11 + - Build-Tools 30.0.2 + - NDK 21.3.6528147 (in folder $androidSdk/ndk, not in $androidSdk/ndk/$version) + - CMake 3.10.2.4988404 (in folder $androidSdk/cmake, not in $androidSdk/cmake/$version) + +## Requirements to develop in IDE +- Android Studio Arctic Fox | 2020.3.1 Canary 15 +- Custom Gradle 7.0 specified in `Settings -> Build, Execution, Deployment -> Build Tools -> Gradle` (because Android Studio will pick the wrong Gradle in the subproject instead of the Gradle in the root project) +- Specified Gradle JDK 11 in `... -> Build Tools -> Gradle` +- Environment variables: +``` +export ALLOW_PUBLIC_REPOS=1 +export JAVA_TOOLS_JAR=$PWD/external/tools.jar +export ANDROIDX_PROJECTS=COMPOSE +export COMPOSE_CUSTOM_GROUP=org.jetbrains.compose +``` +- Gradle properties in ~/.gradle/gradle.properties: +``` +androidx.compose.multiplatformEnabled=true +androidx.compose.jsCompilerTestsEnabled=true +``` + +## Scripts +Publish artifacts to the local directory `out/androidx/build/support_repo/org/jetbrains/compose`: +``` +./scripts/publish +``` +Publish artifacts without Android Layout Inspector (use it on Windows): +``` +./scripts/publishWithoutInspector +``` +Publish extended icons: +``` +./scripts/publishExtendedIcons +``` + +Run tests for Desktop: +``` +./scripts/testDesktop +``` + +Run tests for Web: +``` +./scripts/testWeb +``` \ No newline at end of file diff --git a/compose/build.gradle.kts b/compose/build.gradle.kts new file mode 100644 index 00000000..e7064e8c --- /dev/null +++ b/compose/build.gradle.kts @@ -0,0 +1,83 @@ +val composeBuild = gradle.includedBuild("support") +fun Task.dependsOnComposeTask(name: String) = dependsOn(composeBuild.task(name)) + +gradle.startParameter.excludedTaskNames.add(":support:compose:ui:ui-inspection:assembleInspectorJarRelease") +gradle.startParameter.excludedTaskNames.add(":support:compose:ui:ui-inspection:dexInspectorRelease") + +// To show all projects which use `xxx` task, run: +// ./gradlew -p frameworks/support help --task xxx + +tasks.register("publishComposeJb") { + dependsOnComposeTask(":compose:compiler:compiler:publishMavenPublicationToMavenRepository") + dependsOnComposeTask(":compose:compiler:compiler-hosted:publishMavenPublicationToMavenRepository") + dependsOnComposeTask(":compose:ui:ui-tooling-data:publishMavenPublicationToMavenRepository") + + dependsOnComposeTask(":compose:desktop:desktop:publishKotlinMultiplatformPublicationToMavenRepository") + dependsOnComposeTask(":compose:desktop:desktop:publishJvmPublicationToMavenRepository") + dependsOnComposeTask(":compose:desktop:desktop:publishJvmlinux-x64PublicationToMavenRepository") + dependsOnComposeTask(":compose:desktop:desktop:publishJvmmacos-x64PublicationToMavenRepository") + dependsOnComposeTask(":compose:desktop:desktop:publishJvmmacos-arm64PublicationToMavenRepository") + dependsOnComposeTask(":compose:desktop:desktop:publishJvmwindows-x64PublicationToMavenRepository") + + listOf( + ":compose:animation:animation", + ":compose:animation:animation-core", + ":compose:foundation:foundation", + ":compose:foundation:foundation-layout", + ":compose:material:material", + ":compose:material:material-icons-core", + ":compose:material:material-ripple", + ":compose:runtime:runtime", + ":compose:runtime:runtime-saveable", + ":compose:ui:ui", + ":compose:ui:ui-geometry", + ":compose:ui:ui-graphics", + ":compose:ui:ui-test", + ":compose:ui:ui-test-junit4", + ":compose:ui:ui-text", + ":compose:ui:ui-tooling", + ":compose:ui:ui-unit", + ":compose:ui:ui-util", + ).forEach { + dependsOnComposeTask("$it:publishKotlinMultiplatformPublicationToMavenRepository") + dependsOnComposeTask("$it:publishDesktopPublicationToMavenRepository") + dependsOnComposeTask("$it:publishAndroidDebugPublicationToMavenRepository") + dependsOnComposeTask("$it:publishAndroidReleasePublicationToMavenRepository") + } + + listOf( + ":compose:runtime:runtime", + ).forEach { + dependsOnComposeTask("$it:publishJsPublicationToMavenRepository") + } +} + +// separate task that cannot be built in parallel (because it requires too much RAM). +// should be run with "--max-workers=1" +tasks.register("publishComposeJbExtendedIcons") { + listOf( + ":compose:material:material-icons-extended", + ).forEach { + dependsOnComposeTask("$it:publishKotlinMultiplatformPublicationToMavenRepository") + dependsOnComposeTask("$it:publishDesktopPublicationToMavenRepository") + dependsOnComposeTask("$it:publishAndroidDebugPublicationToMavenRepository") + dependsOnComposeTask("$it:publishAndroidReleasePublicationToMavenRepository") + } +} + +tasks.register("testComposeJbDesktop") { + dependsOnComposeTask(":compose:desktop:desktop:jvmTest") + dependsOnComposeTask(":compose:animation:animation:desktopTest") + dependsOnComposeTask(":compose:animation:animation-core:desktopTest") + dependsOnComposeTask(":compose:foundation:foundation:desktopTest") + dependsOnComposeTask(":compose:foundation:foundation-layout:desktopTest") + dependsOnComposeTask(":compose:material:material:desktopTest") + dependsOnComposeTask(":compose:material:material-ripple:desktopTest") + dependsOnComposeTask(":compose:runtime:runtime:desktopTest") + dependsOnComposeTask(":compose:runtime:runtime-saveable:desktopTest") +} + +tasks.register("testComposeJbWeb") { + dependsOnComposeTask(":compose:runtime:runtime:jsTest") + dependsOnComposeTask(":compose:runtime:runtime:test") +} \ No newline at end of file diff --git a/compose/external/doclava b/compose/external/doclava new file mode 160000 index 00000000..7b46b5a4 --- /dev/null +++ b/compose/external/doclava @@ -0,0 +1 @@ +Subproject commit 7b46b5a466cda32b8fbf0c5015c2b3d8127488c2 diff --git a/compose/frameworks/support b/compose/frameworks/support new file mode 160000 index 00000000..18a95a29 --- /dev/null +++ b/compose/frameworks/support @@ -0,0 +1 @@ +Subproject commit 18a95a299c8641ccb9581c4b32db9609a0cfec2f diff --git a/compose/golden b/compose/golden new file mode 160000 index 00000000..cd6860e3 --- /dev/null +++ b/compose/golden @@ -0,0 +1 @@ +Subproject commit cd6860e33655776f6533790a27cd37eb04b40e40 diff --git a/compose/gradle.properties b/compose/gradle.properties new file mode 100644 index 00000000..77d50db1 --- /dev/null +++ b/compose/gradle.properties @@ -0,0 +1,6 @@ +org.gradle.jvmargs=-Xmx8g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC +org.gradle.daemon=true +org.gradle.configureondemand=true +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.vfs.watch=true \ No newline at end of file diff --git a/compose/gradle/wrapper/gradle-wrapper.jar b/compose/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..62d4c053550b91381bbd28b1afc82d634bf73a8a GIT binary patch literal 58910 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 literal 0 HcmV?d00001 diff --git a/compose/gradle/wrapper/gradle-wrapper.properties b/compose/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3c4101c3 --- /dev/null +++ b/compose/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/compose/gradlew b/compose/gradlew new file mode 100755 index 00000000..2fe81a7d --- /dev/null +++ b/compose/gradlew @@ -0,0 +1,183 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +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='"-Xmx64m" "-Xms64m"' + +# 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. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +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 + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# 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" + +exec "$JAVACMD" "$@" diff --git a/compose/gradlew.bat b/compose/gradlew.bat new file mode 100644 index 00000000..9618d8d9 --- /dev/null +++ b/compose/gradlew.bat @@ -0,0 +1,100 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +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="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/compose/screenshots/studio.png b/compose/screenshots/studio.png new file mode 100644 index 0000000000000000000000000000000000000000..bf542a1b3ff56b98d3b8a1342a4b23c6071e21b0 GIT binary patch literal 59832 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

0zprHiDCriR|Hg*n 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%0DweM zHR_mT9XOPEHSy-cg$uWB-MVM*UPV zl{q++Hl;Kl^M1vhQdwGTH$MBn+uLr~FgHHi7ZM-{-C6nh-o~>)0ss)gU2PqvK4adT zDJS}kw907(N$hB6560zjZUz8;T9S+6L0cD0j0lY`L&tu<+>Xc!2VxxSx~^XE*FsE` zaRrsBqK?}aVWPzQ9Q{I7onB@ai0Qa^Xb6#_>0@LMN4rCcrX_Y)wb8~d-uSXDV^z~H zJwo;3(?FPN`sLN*5GJDsiHV|*-4Bj$9ATO`Wq@cr$rY=*BTMJNq0Fld5JHUULk~X; z0HBn{vu@sV7eXnaij)^(C@EDCLQrtXZNTmLc7T!5U`(uNZnr`SQDQ^;x4)R4wq^a7 ze|#&HcJGNt|FpHcYhd^O);XJI-TURQ9of|qP&JKW2(adIYYK$`Aga3DE|-G45AQuT zZ^N>``}TrB-(ZMQ-GySIuD*deb8h{~xBGj7Ox1LSl2Fg-Q~fKJ&bsyMKII!vhc#W- zT`qiT$8UBO-866Ge=OPrVu9oPo_+pk)KjJDE|*FXfQYJ^%SFhQyJn!8tL~5g^ETF0 zCoRH(0|)Ok$S+)S&4=63ibaT`petR{($bTM+na_WT+1vgPE%QA@a&*0Ey*wkd%Ffl7*g{Ki`_&(ZgzEc22JVmX66^B znLW*I0hpPSlkP=5Ev;esiAdjMj87~pIn{DD5qsjm!Bqp!d0BD6zI|^gisD=ihcZ9i znlL>ME$ z8J7?djHKXPNQ4Q7fO9TnBDh6LfC&bIb20jhM3`c9z6*#50xZ!W0#fkA!9#>GMnDL` zxqyfe6mJ<|@=3`TV2n>FD{eZ|iXF;yaP?8+nCP zxc3E_C_}L0Hlsl<ybZUtV#PDW#NduMij443U6@ zLg82>WSZuOD<^X04JwYRphKBg^aG9waGY)*HETLHx+@Gqh^PUefddB)95`@RnIAW#lyZy{20;iNHV(J(*8R;dc3I=P#xTl~O_gEXz8y zXQzK?5R;1vh{5x=FNPC?)~A zROpv6#spN=kFLJ86TGA`5m`=DITZJPs1DSkgS4&tXHp{h9L zx*a%h@ae;4#J}Djt_txl2w~I7rWrLg6%`f78ybWV?_!}H75_pQ#VJ!tfeY_^m&MUB`ZvUylL}S z+n6Nd}_eOv|5i)9N+zs2Hf<-N(t!g9pE~@1IdHyzvPs9<00000NkvXXu0mjfQg!_> literal 0 HcmV?d00001 diff --git a/compose/scripts/downloadAndroidSdk b/compose/scripts/downloadAndroidSdk new file mode 100755 index 00000000..42ec6735 --- /dev/null +++ b/compose/scripts/downloadAndroidSdk @@ -0,0 +1,48 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +clone() { + mkdir -p $1 + pushd $1 + git init + git config advice.detachedHead false + git fetch --depth=1 $2 $3 + git checkout FETCH_HEAD + popd +} + +downloadLinuxSDK() { + clone ../prebuilts/fullsdk-linux/platforms/android-30 https://android.googlesource.com/platform/prebuilts/fullsdk/platforms/android-30 master + clone ../prebuilts/fullsdk-linux/sources/android-30 https://android.googlesource.com/platform/prebuilts/fullsdk/sources/android-30 master + clone ../prebuilts/fullsdk-linux/ndk https://android.googlesource.com/toolchain/prebuilts/ndk/r21 master + clone ../prebuilts/fullsdk-linux/build-tools/30.0.2 https://android.googlesource.com/platform/prebuilts/fullsdk-linux/build-tools/30.0.2 master + clone ../prebuilts/fullsdk-linux/platform-tools https://android.googlesource.com/platform/prebuilts/fullsdk-linux/platform-tools master + clone ../prebuilts/fullsdk-linux/tools https://android.googlesource.com/platform/prebuilts/fullsdk-linux/tools master + clone ../prebuilts/fullsdk-linux/cmake https://android.googlesource.com/platform/prebuilts/cmake/linux-x86 de5fa1c66d3bdcbf2bbc62d2504ec6b0b0fb74e1 +} + +downloadMacOsSDK() { + clone ../prebuilts/fullsdk-darwin/platforms/android-30 https://android.googlesource.com/platform/prebuilts/fullsdk/platforms/android-30 master + clone ../prebuilts/fullsdk-darwin/sources/android-30 https://android.googlesource.com/platform/prebuilts/fullsdk/sources/android-30 master + clone ../prebuilts/fullsdk-darwin/ndk https://android.googlesource.com/toolchain/prebuilts/ndk-darwin/r21 master + clone ../prebuilts/fullsdk-darwin/build-tools/30.0.2 https://android.googlesource.com/platform/prebuilts/fullsdk-darwin/build-tools/30.0.2 master + clone ../prebuilts/fullsdk-darwin/platform-tools https://android.googlesource.com/platform/prebuilts/fullsdk-darwin/platform-tools master + clone ../prebuilts/fullsdk-darwin/tools https://android.googlesource.com/platform/prebuilts/fullsdk-darwin/tools master + clone ../prebuilts/fullsdk-darwin/cmake https://android.googlesource.com/platform/prebuilts/cmake/darwin-x86 de5fa1c66d3bdcbf2bbc62d2504ec6b0b0fb74e1 +} + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + downloadLinuxSDK +elif [[ "$OSTYPE" == "darwin"* ]]; then + downloadMacOsSDK +elif [[ "$OSTYPE" == "cygwin" ]]; then + echo "Please download Android SDK manually (https://developer.android.com/studio)" +elif [[ "$OSTYPE" == "msys" ]]; then + echo "Please download Android SDK manually (https://developer.android.com/studio)" +elif [[ "$OSTYPE" == "win32" ]]; then + echo "Please download Android SDK manually (https://developer.android.com/studio)" +else + echo "Unknown OS" +fi + diff --git a/compose/scripts/prepare b/compose/scripts/prepare new file mode 100755 index 00000000..63be054c --- /dev/null +++ b/compose/scripts/prepare @@ -0,0 +1,9 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +export ALLOW_PUBLIC_REPOS=1 +export JAVA_TOOLS_JAR=$SCRIPT_DIR/../external/tools.jar +export ANDROIDX_PROJECTS=COMPOSE +export COMPOSE_CUSTOM_GROUP=org.jetbrains.compose +export COMPOSE_DEFAULT_GRADLE_ARGS="-Pandroidx.compose.multiplatformEnabled=true -Pandroidx.versionExtraCheckEnabled=false -Pandroidx.alternativeProjectUrl=https://github.com/JetBrains/compose-jb -Pandroidx.compose.jsCompilerTestsEnabled=true" \ No newline at end of file diff --git a/compose/scripts/publish b/compose/scripts/publish new file mode 100755 index 00000000..adbb4087 --- /dev/null +++ b/compose/scripts/publish @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew publishComposeJb $COMPOSE_DEFAULT_GRADLE_ARGS "$@" || exit 1 +popd \ No newline at end of file diff --git a/compose/scripts/publishExtendedIcons b/compose/scripts/publishExtendedIcons new file mode 100755 index 00000000..54dd4d0b --- /dev/null +++ b/compose/scripts/publishExtendedIcons @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew publishComposeJbExtendedIcons $COMPOSE_DEFAULT_GRADLE_ARGS --max-workers=1 "$@" || exit 1 +popd diff --git a/compose/scripts/publishWithoutInspector b/compose/scripts/publishWithoutInspector new file mode 100755 index 00000000..d1fd6e8f --- /dev/null +++ b/compose/scripts/publishWithoutInspector @@ -0,0 +1,12 @@ +#!/bin/bash + +# Publish artifact without Android Layout Inspector +# Should be used is there are errors building it (on Windows, for example) +# Shouldn't be used for publishing release artifacts + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew publishComposeJb $COMPOSE_DEFAULT_GRADLE_ARGS -x :support:compose:ui:ui-inspection:assembleInspectorJarRelease -x :support:compose:ui:ui-inspection:dexInspectorRelease "$@" || exit 1 +popd \ No newline at end of file diff --git a/compose/scripts/testAll b/compose/scripts/testAll new file mode 100755 index 00000000..a6e9de10 --- /dev/null +++ b/compose/scripts/testAll @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew testComposeJbDesktop testComposeJbWeb $COMPOSE_DEFAULT_GRADLE_ARGS "$@" || exit 1 +popd \ No newline at end of file diff --git a/compose/scripts/testDesktop b/compose/scripts/testDesktop new file mode 100755 index 00000000..948fc2e4 --- /dev/null +++ b/compose/scripts/testDesktop @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew testComposeJbDesktop $COMPOSE_DEFAULT_GRADLE_ARGS "$@" || exit 1 +popd \ No newline at end of file diff --git a/compose/scripts/testWeb b/compose/scripts/testWeb new file mode 100755 index 00000000..958f7a7b --- /dev/null +++ b/compose/scripts/testWeb @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" +. ./prepare + +pushd .. +./gradlew testComposeJbWeb $COMPOSE_DEFAULT_GRADLE_ARGS "$@" || exit 1 +popd \ No newline at end of file diff --git a/compose/settings.gradle.kts b/compose/settings.gradle.kts new file mode 100644 index 00000000..911b4032 --- /dev/null +++ b/compose/settings.gradle.kts @@ -0,0 +1 @@ +includeBuild("frameworks/support") \ No newline at end of file