Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/setup/linux_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ git lfs install

Download and install Android Studio by following [Google's directions](https://developer.android.com/studio).

Open any project, navigate to `Tools` -> `SDK Manager`
Open the Android SDK Manager. You can find it on the main screen of Android Studio under `More Actions` -> `SDK Manager`. When a project is open, you can also find it under `Tools` -> `SDK Manager`.

Under **SDK Platforms**, install **API level 35**.

Expand All @@ -52,6 +52,8 @@ Install build tools **version 34.0.0**.

Install ndk version **25.2.9519653**

Install the latest version of **Android SDK Command-line Tools**
Copy link

Choose a reason for hiding this comment

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

Beat me to it!


Add the following to your `.bashrc`

```
Expand Down
4 changes: 3 additions & 1 deletion docs/setup/macos_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ git lfs install

Download and install Android Studio by following [Google's directions](https://developer.android.com/studio).

Open any project, navigate to `Tools` -> `SDK Manager`
Open the Android SDK Manager. You can find it on the main screen of Android Studio under `More Actions` -> `SDK Manager`. When a project is open, you can also find it under `Tools` -> `SDK Manager`.

Under **SDK Platforms**, install **API level 35**.

Expand All @@ -77,6 +77,8 @@ Install build tools **version 34.0.0**.

Install ndk version **25.2.9519653**

Install the latest version of **Android SDK Command-line Tools**

Update `.zshrc` with the following:

```
Expand Down
26 changes: 10 additions & 16 deletions npm_modules/cli/src/setup/DevSetupHelper.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import fs from 'fs';
import path from 'path';
import { ANSI_COLORS } from '../core/constants';
import { CliError } from '../core/errors';
import { LoadingIndicator } from '../utils/LoadingIndicator';
import { spawnCliCommand } from '../utils/cliUtils';
import { wrapInColor } from '../utils/logUtils';
import { withTempDir } from '../utils/tempDir';
import { decompressTo } from '../utils/zipUtils';
import { ANDROID_BUILD_TOOLS_VERSION, ANDROID_NDK_VERSION, ANDROID_PLATFORM_VERSION } from './versions';

export const HOME_DIR = process.env['HOME'] ?? '';
const ANDROID_HOME_DIR_SUFFIX = '.valdi/android_home';
const ANDROID_HOME_TARET_DIR = path.join(HOME_DIR, ANDROID_HOME_DIR_SUFFIX);

export interface EnvVariable {
name: string;
Expand Down Expand Up @@ -120,28 +118,24 @@ export class DevSetupHelper {
console.log(`${wrapInColor('Dev setup completed!', ANSI_COLORS.GREEN_COLOR)}.${suffix}`);
}

async setupAndroidSDK(commandLineToolsURL: string, javaHomeOverride?: string | undefined): Promise<void> {
async setupAndroidSDK(javaHomeOverride?: string | undefined): Promise<void> {
console.log(wrapInColor('Setting up Android SDK...', ANSI_COLORS.YELLOW_COLOR));
if (!process.env['ANDROID_HOME']) {
await withTempDir(async tempDir => {
const filename = path.join(tempDir, path.basename(commandLineToolsURL));
await this.downloadToPath(commandLineToolsURL, filename);
const targetDir = path.join(ANDROID_HOME_TARET_DIR, 'cmdline-tools');
await decompressTo(filename, targetDir);

const target = path.join(targetDir, 'latest');
if (fs.existsSync(target)) {
await fs.promises.rm(target, { recursive: true, force: true });
}
fs.renameSync(path.join(targetDir, 'cmdline-tools'), target);
});
process.env['ANDROID_HOME'] = path.join(HOME_DIR, ANDROID_HOME_DIR_SUFFIX);
await this.writeEnvVariablesToRcFile([{ name: 'ANDROID_HOME', value: `"$HOME/${ANDROID_HOME_DIR_SUFFIX}"` }]);
}

const androidHome = process.env['ANDROID_HOME'] ?? '';
const sdkManagerBin = path.join(androidHome, 'cmdline-tools/latest/bin/sdkmanager');

// Verify Android SDK Command-line Tools is installed
if (!fs.existsSync(sdkManagerBin)) {
throw new CliError(
'Android SDK Command-line Tools is not installed. Follow the developer setup guide to install it.',
ANSI_COLORS.RED_COLOR,
);
}

const sdkManagerEnvVariables: { [key: string]: string } = {};
if (javaHomeOverride) {
sdkManagerEnvVariables['JAVA_HOME'] = javaHomeOverride;
Expand Down
3 changes: 1 addition & 2 deletions npm_modules/cli/src/setup/linuxSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import fs from 'fs';
import path from 'path';
import { checkCommandExists } from '../utils/cliUtils';
import { DevSetupHelper, HOME_DIR } from './DevSetupHelper';
import { ANDROID_LINUX_COMMANDLINE_TOOLS } from './versions';

const BAZELISK_URL = 'https://github.com/bazelbuild/bazelisk/releases/download/v1.26.0/bazelisk-linux-amd64';

Expand Down Expand Up @@ -32,7 +31,7 @@ export async function linuxSetup(): Promise<void> {

await devSetup.writeEnvVariablesToRcFile([{ name: 'PATH', value: `"$HOME/.valdi/bin:$PATH"` }]);

await devSetup.setupAndroidSDK(ANDROID_LINUX_COMMANDLINE_TOOLS);
await devSetup.setupAndroidSDK();

devSetup.onComplete();
}
3 changes: 1 addition & 2 deletions npm_modules/cli/src/setup/macOSSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import fs from 'fs';
import { CliError } from '../core/errors';
import { checkCommandExists, runCliCommand } from '../utils/cliUtils';
import { DevSetupHelper } from './DevSetupHelper';
import { ANDROID_MACOS_COMMANDLINE_TOOLS } from './versions';

export async function macOSSetup(): Promise<void> {
const devSetup = new DevSetupHelper();
Expand Down Expand Up @@ -36,7 +35,7 @@ export async function macOSSetup(): Promise<void> {

const javaHome = await runCliCommand('/usr/libexec/java_home');

await devSetup.setupAndroidSDK(ANDROID_MACOS_COMMANDLINE_TOOLS, javaHome.stdout.trim());
await devSetup.setupAndroidSDK(javaHome.stdout.trim());

devSetup.onComplete();
}
5 changes: 0 additions & 5 deletions npm_modules/cli/src/setup/versions.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
export const ANDROID_BUILD_TOOLS_VERSION = '34.0.0';
export const ANDROID_NDK_VERSION = '25.2.9519653';
export const ANDROID_PLATFORM_VERSION = 'android-35';

export const ANDROID_MACOS_COMMANDLINE_TOOLS =
'https://dl.google.com/android/repository/commandlinetools-mac-13114758_latest.zip';
export const ANDROID_LINUX_COMMANDLINE_TOOLS =
'https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip';