diff --git a/.github/workflows/build-presets.yml b/.github/workflows/build-presets.yml index 1cf1f165ca9..2c82184b25f 100644 --- a/.github/workflows/build-presets.yml +++ b/.github/workflows/build-presets.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - preset: [macos, ios, ios-simulator, pybind, llm] + preset: [android-arm64-v8a, android-x86_64, macos, ios, ios-simulator, pybind, llm] with: job-name: build ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} @@ -39,7 +39,7 @@ jobs: strategy: fail-fast: false matrix: - preset: [pybind, llm] + preset: [android-arm64-v8a, android-x86_64, pybind, llm] runner: [linux.2xlarge, linux.arm64.2xlarge] docker-image: [executorch-ubuntu-22.04-clang12, executorch-ubuntu-22.04-gcc11-aarch64] # Excluding specific runner + docker image combinations that don't make sense: diff --git a/CMakePresets.json b/CMakePresets.json index 85452d18822..7971691081d 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -6,6 +6,34 @@ "hidden": true, "binaryDir": "${sourceDir}/cmake-out" }, + { + "name": "android-arm64-v8a", + "displayName": "Build everything buildable on android arm64-v8a", + "inherits": ["common"], + "cacheVariables": { + "EXECUTORCH_BUILD_PRESET_FILE": "${sourceDir}/tools/cmake/preset/android.cmake", + "ANDROID_ABI": "arm64-v8a" + }, + "condition": { + "type": "inList", + "string": "${hostSystemName}", + "list": ["Darwin", "Linux", "Windows"] + } + }, + { + "name": "android-x86_64", + "displayName": "Build everything buildable on android x86_64", + "inherits": ["common"], + "cacheVariables": { + "EXECUTORCH_BUILD_PRESET_FILE": "${sourceDir}/tools/cmake/preset/android.cmake", + "ANDROID_ABI": "x86_64" + }, + "condition": { + "type": "inList", + "string": "${hostSystemName}", + "list": ["Darwin", "Linux", "Windows"] + } + }, { "name": "macos", "displayName": "Build everything buildable on macOS", diff --git a/tools/cmake/preset/android.cmake b/tools/cmake/preset/android.cmake new file mode 100644 index 00000000000..4c5e79ed0a9 --- /dev/null +++ b/tools/cmake/preset/android.cmake @@ -0,0 +1,20 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +set_overridable_option(EXECUTORCH_ENABLE_LOGGING ON) +set_overridable_option(EXECUTORCH_LOG_LEVEL Info) +set_overridable_option(EXECUTORCH_BUILD_TESTING OFF) + +set_overridable_option(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER ON) +set_overridable_option(EXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR ON) +set_overridable_option(EXECUTORCH_BUILD_EXTENSION_MODULE ON) +set_overridable_option(EXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL ON) +set_overridable_option(EXECUTORCH_BUILD_EXTENSION_TENSOR ON) +set_overridable_option(EXECUTORCH_BUILD_KERNELS_CUSTOM ON) +set_overridable_option(EXECUTORCH_BUILD_KERNELS_OPTIMIZED ON) +set_overridable_option(EXECUTORCH_BUILD_KERNELS_QUANTIZED ON) +set_overridable_option(EXECUTORCH_BUILD_XNNPACK ON) +set_overridable_option(EXECUTORCH_XNNPACK_SHARED_WORKSPACE ON)