Composite build of Compose-jb sources
git submodule update --init --recursive
Set this property to always update submodules on git checkout/pull/reset:
git config --global submodule.recurse true
- Java 11 (should be specified in JAVA_HOME)
- [macOs/Linux] Android SDK downloaded via
./scripts/downloadAndroidSdk
- [Windows] Android SDK downloaded from Android Studio and specified in ANDROID_SDK_ROOT. Required components:
- Android 12
- Build-Tools 30.0.3
- 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)
- Download Android Studio from the offcial site (it is mandatory to use the version, written here). As an alternative you can use IDEA, which is compatible with this AGP version, or you can disable Android plugin in IDEA plugins, to develop non-Android targets.
- Set environment variables:
export ALLOW_PUBLIC_REPOS=1
export JAVA_TOOLS_JAR=$PWD/external/tools.jar
export ANDROIDX_PROJECTS=COMPOSE
export JAVA_HOME=<JDK_home> // it should point to Java 11 and contain /include/jvmti.h
- Set gradle properties in ~/.gradle/gradle.properties:
androidx.compose.multiplatformEnabled=true
# note that https://android.googlesource.com/platform/frameworks/support build doesn't work with jetbrains.compose.jsCompilerTestsEnabled)
jetbrains.compose.jsCompilerTestsEnabled=true
androidx.validateProjectStructure=false
- Open
compose
folder in Android Studio (notcompose/frameworks/support
) - Download a custom Gradle 7.2 and specify it 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) - Specify Gradle JDK 11 in
... -> Build Tools -> Gradle
- [macOs/Linux] Specify Android SDK pointed to a folder, downloaded via
./scripts/downloadAndroidSdk
Publish artifacts to the local directory out/androidx/build/support_repo/org/jetbrains/compose
:
export COMPOSE_CUSTOM_VERSION=0.0.0-custom
./scripts/publish
(on Windows it doesn't build at the moment, the issue is in the line packageInspector(project, project(":compose:ui:ui-inspection")
in compose/frameworks/support/compose/ui/ui/build.gradle
)
Publish extended icons:
./scripts/publishExtendedIcons
Run tests for Desktop:
./scripts/testDesktop
Run tests for Web:
./scripts/testWeb
./scripts/downloadAndroidSdk
export COMPOSE_CUSTOM_VERSION=1.1.0-beta04
./scripts/publishToMavenLocal -Pcompose.platforms=all
./scripts/publishGradlePluginToMavenLocal
./scripts/publishWebComponentsToMavenLocal
-Pcompose.platforms=all
could be replace with comma-separated list of platforms, such as js,jvm,androidDebug,androidRelease,macosx64,uikitx64
.