Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CMake to 3.9 #837

Merged
merged 26 commits into from
Oct 23, 2024
Merged

Update CMake to 3.9 #837

merged 26 commits into from
Oct 23, 2024

Conversation

waahm7
Copy link
Contributor

@waahm7 waahm7 commented Oct 16, 2024

Issue #, if available:
See: awslabs/aws-c-common#1159

Description of changes:

  • Update minimum CMake version to 3.9.
  • Fix Android build since previous version was using CMake 3.10.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@@ -53,7 +52,8 @@ android {

defaultConfig {
minSdkVersion 24 // TODO - dictated by CompletableFuture which is API 24+
targetSdkVersion 30
targetSdkVersion 33
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was complaining that targetSDK 30 is not supported, and the minimum version should be 33 if you want to submit apps to Google Play. While we don't need to submit it to Google Play, 33 seems to work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are not updating the minSdkVersion, so we should be fine.

@@ -43,8 +43,7 @@ ext {
}

android {
compileSdkVersion 30
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compileSdkVersion is deprecated and replaced by compileSdk

@@ -43,8 +43,7 @@ ext {
}

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

buildToolsVersion is deprecated and we don't need to specify it.

@@ -4,7 +4,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.0'
classpath 'com.android.tools.build:gradle:7.4.2'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gradle 7.0 had a bug with multiple object files which we were running into. Updating to 7.4 seems to work. 7.4 was chosen randomly.

@@ -1,5 +1,6 @@
#Wed Oct 16 16:47:56 PDT 2024
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was automatically updated by Android Studio after updating Gradle to 7.4

@@ -103,7 +103,6 @@ android {
cmake {
path "../../CMakeLists.txt"
buildStagingDirectory "../../target/cmake-build"
version "3.10.2"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to work without an explicit version. If we face any issues, we can revert back to an explicit version.

@waahm7 waahm7 changed the title WIP | Update Cmake Update CMake to 3.9 Oct 18, 2024
@waahm7 waahm7 marked this pull request as ready for review October 18, 2024 19:07
Copy link
Contributor

@graebm graebm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great job chasing down all those gradle issues

@waahm7 waahm7 merged commit 69d43f3 into main Oct 23, 2024
50 checks passed
@waahm7 waahm7 deleted the update-cmake branch October 23, 2024 18:51
@graebm graebm mentioned this pull request Oct 31, 2024
graebm added a commit that referenced this pull request Nov 1, 2024
**Issue:**
The Android CI started failing due to:
```
Daemon will be stopped at the end of the build after running out of JVM memory
> Task :android:crt:lintAnalyzeDebug FAILED
```

This has been a recurring issue since we updated a bunch of build stuff as part of updating CMake #837.

**Description of changes:**

Manually set -Xmx (max heap size) to something huge (tested 2g and that works, but why not go bigger) via the cmdline when invoking gradle in CI. Only in CI, gradle daemon runs out of memory during "lintAnalyzeDebug" task, unless you specify it this way. You'd think that Java's default of 25% RAM (ubuntu24 runner has 12g, so max 4g) would be sufficient, but no. You'd think setting -Xmx via gradle.properties would help, but no.

Also, make it so a new commit cancels any old in-progress builds. It's a waste of energy to continue these builds, some of which take a looooooong time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants