diff --git a/docs/build/macos.md b/docs/build/macos.md index db914ad5aa..41a45f7ad2 100644 --- a/docs/build/macos.md +++ b/docs/build/macos.md @@ -34,22 +34,21 @@ Many dependencies are only required for specific projects. The remaining dependencies can be installed via script: `resources/devbox/macos/macos.sh` - + This script will also update your environment to the values in: `resources/devbox/macos/keyman.macos.env.sh` - + It will also add these environment settings to your `~/.bashrc`. These dependencies are also listed below if you'd prefer to install manually. ## Shared Dependencies -* Shared: HomeBrew, Bash 5.0+, jq, Python 3, Meson, Ninja, Rust, coreutils +* Shared: HomeBrew, Bash 5.0+, jq, Python 3, Meson, Ninja, Rust, coreutils, Pandoc ```shell /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - brew install bash jq python3 meson ninja rustup-init coreutils - brew install rustup-init + brew install bash jq python3 meson ninja rustup-init coreutils pandoc rustup-init ``` * Web: node.js, emscripten, wasm-pack, openjdk 8 @@ -60,7 +59,7 @@ These dependencies are also listed below if you'd prefer to install manually. ``` * iOS: swiftlint, carthage - + ```shell brew install swiftlint carthage ``` @@ -71,10 +70,10 @@ These dependencies are also listed below if you'd prefer to install manually. brew install carthage cocoapods ``` -* Android: openjdk 8, Android SDK, Android Studio, Ant, Gradle, Maven, Pandoc +* Android: openjdk 8, Android SDK, Android Studio, Ant, Gradle, Maven ```shell - brew install openjdk@8 android-sdk android-studio ant gradle maven pandoc + brew install openjdk@8 android-sdk android-studio ant gradle maven # update path source ../resources/devbox/macos/keyman.macos.env.sh # optionally install sdk images @@ -99,3 +98,4 @@ These dependencies are also listed below if you'd prefer to install manually. ``` * Run Android Studio once after installation to install additional components + such as emulator images and SDK updates. diff --git a/docs/build/old/android-notes.md b/docs/build/old/android-notes.md index 512044b881..409f0057b2 100644 --- a/docs/build/old/android-notes.md +++ b/docs/build/old/android-notes.md @@ -8,13 +8,13 @@ WARNING: these are old configuration notes. See [index.md](../index.md) for curr * [Pandoc](#Install-Pandoc) for generating offline help ## Install Java -It is recommended to use openJDK because of oracle license issues. +It is recommended to use openJDK because of Oracle license issues. Tested with latest release for openJDK 8 from https://github.com/ojdkbuild/ojdkbuild 1. Download and unpack the zip archive -2. On on windows: use the default java path C:\Program Files\Java to avoid error message "Error 0x80010135 Path Too Long". -3. Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-1.8.0.232-1 +2. On windows: use the default java path C:\Program Files\Java to avoid error message "Error 0x80010135 Path Too Long". +3. Also set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-1.8.0.232-1 ## Setup Android Studio @@ -22,16 +22,19 @@ https://github.com/ojdkbuild/ojdkbuild 2. For Windows users, set environment variable **ANDROID_HOME** to the location of your Android SDK. The default installation location is **C:\Users\\[USER]\AppData\Local\Android\sdk** where [USER] is your username. You may need to log out and log back in to take effect. For MacOS/Linux users, add the following to **~/.bashrc** or **~/.bash_profile** + ```bash export ANDROID_HOME=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_HOME/tools ``` For MacOS users, add the following (adjusted appropriately) to **~/.bashrc** or **~/.bash_profile** if your Java version is too strange for gradlew to understand (e.g., 11.0.2) + ```bash export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) echo $JAVA_HOME #should output: /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home ``` 3. For Windows users, from a Git Bash Prompt window, cd to the **sdk/tools/bin** folder and accept all the SDK license agreements + ``` yes | ./sdkmanager.bat --licenses ``` diff --git a/docs/build/sentry-cli.md b/docs/build/sentry-cli.md index 968c42e3ae..7136bee2c1 100644 --- a/docs/build/sentry-cli.md +++ b/docs/build/sentry-cli.md @@ -1,14 +1,15 @@ # Setting up sentry-cli -Contact the Keyman team if you need access to sentry.keyman.com for development. -You will also need to install [sentry-cli](https://docs.sentry.io/cli/installation/) for uploading Debug symbols. +Contact the Keyman team if you need access to sentry.keyman.com for development. +You will also need to install [sentry-cli](https://docs.sentry.io/cli/installation/) for uploading Debug symbols. After setting up your personal [Auth token](http://sentry.keyman.com/settings/account/api/auth-tokens/), add the following to **~/.bashrc** ```bash export SENTRY_AUTH_TOKEN={your Sentry auth token} export SENTRY_URL=https://sentry.keyman.com export SENTRY_ORG=keyman +# select the appropriate project here: export SENTRY_PROJECT=keyman-android ``` -To validate your configuration, from the `android/` folder run `sentry-cli info`. +To validate your configuration, for example for keyman-android, from the `android/` folder run `sentry-cli info`. diff --git a/resources/devbox/macos/macos.sh b/resources/devbox/macos/macos.sh index 0ddc488443..a5e7232e46 100755 --- a/resources/devbox/macos/macos.sh +++ b/resources/devbox/macos/macos.sh @@ -26,11 +26,24 @@ PARAMFOUND=false function print_help() { echo "Usage: macos.sh targets" - echo " targets: one or more of: " - echo " android ios macos web all" + echo + echo "The targets parameter determines the platforms and components" + echo "that this script will setup your environment to build." + echo + echo " group targets:" + echo " all build all platform targets" + echo " all-optional build all targets, including optional" + echo + echo " platform targets:" + echo " android ios macos web" + echo echo " optional targets:" - echo " kmcomp pandoc sentry-cli" - echo "Targets will automatically include dependency targets." + echo " kmcomp Keyman keyboard compiler" + echo " pandoc Documentation compiler" + echo " sentry-cli sentry.keyman.com debug symbol uploader" + echo + echo "Note: If a target has dependencies, those will automatically" + echo " be included." } while [[ $# -gt 0 ]] ; do @@ -75,6 +88,16 @@ while [[ $# -gt 0 ]] ; do REQUIRE_WEB=true PARAMFOUND=true ;; + all-optional) + REQUIRE_ANDROID=true + REQUIRE_IOS=true + REQUIRE_MACOS=true + REQUIRE_WEB=true + REQUIRE_KMCOMP=true + REQUIRE_PANDOC=true + REQUIRE_SENTRYCLI=true + PARAMFOUND=true + ;; *) echo "Error: unrecognised parameter." echo @@ -86,7 +109,7 @@ while [[ $# -gt 0 ]] ; do done if ! $PARAMFOUND; then - echo "Error: must have a target parameter" + echo "Error: must specify target parameter" echo print_help exit 1 @@ -95,7 +118,7 @@ fi # This script will configure your development environment from a bare metal mac install. It should be idempotent. echo "This script will configure your macOS computer to build Keyman, installing build tools and prerequisites." -echo "You can also do this yourself following the notes in building.md." +echo "You can also do this yourself following the notes in docs/build/macos.md." echo read -p "Press ENTER to start install" @@ -103,7 +126,7 @@ if $REQUIRE_IOS || $REQUIRE_ANDROID; then REQUIRE_WEB=true fi -if $REQUIRE_ANDROID; then +if $REQUIRE_IOS || $REQUIRE_MACOS || $REQUIRE_ANDROID; then REQUIRE_PANDOC=true fi @@ -192,6 +215,7 @@ if $REQUIRE_MACOS || $REQUIRE_IOS || $REQUIRE_ANDROID; then echo "additional components:" if $REQUIRE_MACOS || $REQUIRE_IOS; then echo " * XCode" + echo "You may need to run xcode-select to choose the correct version of XCode command line tools." fi if $REQUIRE_ANDROID; then echo " * Android Studio"