mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:57:45 +00:00
CI+Lagom: Add Lagom Android CI for arm64-v8a on NDK 24 with API level 30
This will let us validate that we aren't breaking any library compile steps for arm64.
This commit is contained in:
parent
f4e30d6b17
commit
2aaaee6744
5 changed files with 62 additions and 5 deletions
|
@ -9,6 +9,8 @@ parameters:
|
||||||
toolchain_ccache_path: ''
|
toolchain_ccache_path: ''
|
||||||
toolchain_ccache_size: $(CCACHE_MAXSIZE)
|
toolchain_ccache_size: $(CCACHE_MAXSIZE)
|
||||||
with_remote_data_caches: true
|
with_remote_data_caches: true
|
||||||
|
ndk_version: ''
|
||||||
|
with_ndk_cache: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- script: |
|
- script: |
|
||||||
|
@ -75,3 +77,13 @@ steps:
|
||||||
key: '"unicode_locale" | Meta/CMake/unicode_data.cmake'
|
key: '"unicode_locale" | Meta/CMake/unicode_data.cmake'
|
||||||
path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/CLDR
|
path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/CLDR
|
||||||
displayName: 'UnicodeLocale Cache'
|
displayName: 'UnicodeLocale Cache'
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.with_ndk_cache, true) }}:
|
||||||
|
- bash: |
|
||||||
|
echo "##vso[task.setvariable variable=ANDROID_SDK_ROOT;]$ANDROID_SDK_ROOT"
|
||||||
|
displayName: 'Set ANDROID_SDK_ROOT'
|
||||||
|
- task: Cache@2
|
||||||
|
inputs:
|
||||||
|
key: '"ndk" | "$(Agent.OS)" | "${{ parameters.ndk_version }}" '
|
||||||
|
path: $(ANDROID_SDK_ROOT)/ndk
|
||||||
|
displayName: 'Android NDK Cache'
|
||||||
|
|
|
@ -12,7 +12,7 @@ jobs:
|
||||||
value: $(Build.SourcesDirectory)/.ccache
|
value: $(Build.SourcesDirectory)/.ccache
|
||||||
|
|
||||||
- name: job_pool
|
- name: job_pool
|
||||||
${{ if eq(parameters.os, 'Linux') }}:
|
${{ if or(eq(parameters.os, 'Linux'), eq(parameters.os, 'Android')) }}:
|
||||||
value: ubuntu-22.04
|
value: ubuntu-22.04
|
||||||
${{ if eq(parameters.os, 'macOS') }}:
|
${{ if eq(parameters.os, 'macOS') }}:
|
||||||
value: macos-11
|
value: macos-11
|
||||||
|
@ -23,6 +23,9 @@ jobs:
|
||||||
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
||||||
value: gcc
|
value: gcc
|
||||||
|
|
||||||
|
- name: ndk_version # only relevant for Android
|
||||||
|
value: '24.0.8215888'
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(job_pool)
|
vmImage: $(job_pool)
|
||||||
|
|
||||||
|
@ -42,8 +45,38 @@ jobs:
|
||||||
with_remote_data_caches: false
|
with_remote_data_caches: false
|
||||||
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
||||||
with_remote_data_caches: true
|
with_remote_data_caches: true
|
||||||
|
${{ if eq(parameters.os, 'Android') }}:
|
||||||
|
with_ndk_cache: true
|
||||||
|
ndk_version: '$(ndk_version)'
|
||||||
|
|
||||||
- ${{ if eq(parameters.fuzzer, 'Fuzz') }}:
|
- ${{ if eq(parameters.os, 'Android') }}:
|
||||||
|
- script: |
|
||||||
|
yes | $ANDROID_SDK_ROOT/tools/bin/sdkmanager "ndk;$(ndk_version)"
|
||||||
|
displayName: "Install NDK $(ndk_version)"
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
cmake -GNinja -B tools-build \
|
||||||
|
-DBUILD_LAGOM=OFF \
|
||||||
|
-DENABLE_LAGOM_CCACHE=ON \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=tool-install \
|
||||||
|
-Dpackage=LagomTools
|
||||||
|
ninja -C tools-build install
|
||||||
|
cmake -GNinja -B Build \
|
||||||
|
-DBUILD_LAGOM=ON \
|
||||||
|
-DENABLE_LAGOM_CCACHE=ON \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DANDROID_ABI=arm64-v8a \
|
||||||
|
-DANDROID_NATIVE_API_LEVEL=30 \
|
||||||
|
-DANDROID_NDK=$ANDROID_SDK_ROOT/ndk/$(ndk_version) \
|
||||||
|
-DANDROID_STL=c++_shared \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_SDK_ROOT/ndk/$(ndk_version)/build/cmake/android.toolchain.cmake \
|
||||||
|
-DLagomTools_DIR=$(Build.SourcesDirectory)/Meta/Lagom/tool-install/share/LagomTools
|
||||||
|
displayName: 'Create Build Environment'
|
||||||
|
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
|
||||||
|
env:
|
||||||
|
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
|
||||||
|
|
||||||
|
- ${{ elseif eq(parameters.fuzzer, 'Fuzz') }}:
|
||||||
- script: |
|
- script: |
|
||||||
cmake -GNinja -B tools-build \
|
cmake -GNinja -B tools-build \
|
||||||
-DBUILD_LAGOM=OFF \
|
-DBUILD_LAGOM=OFF \
|
||||||
|
@ -63,7 +96,7 @@ jobs:
|
||||||
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
|
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
|
||||||
env:
|
env:
|
||||||
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
|
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
|
||||||
- ${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
- ${{ elseif eq(parameters.fuzzer, 'NoFuzz') }}:
|
||||||
- script: |
|
- script: |
|
||||||
cmake -GNinja -B Build \
|
cmake -GNinja -B Build \
|
||||||
-DBUILD_LAGOM=ON \
|
-DBUILD_LAGOM=ON \
|
||||||
|
@ -87,7 +120,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
|
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
|
||||||
|
|
||||||
- ${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
- ${{ if and(eq(parameters.fuzzer, 'NoFuzz'), not(eq(parameters.os, 'Android')) ) }}:
|
||||||
- script: |
|
- script: |
|
||||||
ninja test
|
ninja test
|
||||||
displayName: 'Test'
|
displayName: 'Test'
|
||||||
|
|
|
@ -35,3 +35,8 @@ steps:
|
||||||
- script: |
|
- script: |
|
||||||
brew install ninja wabt ccache unzip
|
brew install ninja wabt ccache unzip
|
||||||
displayName: 'Install Dependencies'
|
displayName: 'Install Dependencies'
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.os, 'Android') }}:
|
||||||
|
- script: |
|
||||||
|
sudo apt-get install ccache ninja-build unzip
|
||||||
|
displayName: 'Install Dependencies'
|
||||||
|
|
|
@ -24,3 +24,10 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
arch: 'x86_64'
|
arch: 'x86_64'
|
||||||
coverage: 'ON'
|
coverage: 'ON'
|
||||||
|
|
||||||
|
- stage: Lagom_Android
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: Lagom.yml
|
||||||
|
parameters:
|
||||||
|
os: 'Android'
|
||||||
|
|
|
@ -564,7 +564,7 @@ if (BUILD_LAGOM)
|
||||||
lagom_lib(XML xml
|
lagom_lib(XML xml
|
||||||
SOURCES ${LIBXML_SOURCES})
|
SOURCES ${LIBXML_SOURCES})
|
||||||
|
|
||||||
if (NOT ENABLE_FUZZERS AND NOT ENABLE_COMPILER_EXPLORER_BUILD)
|
if (NOT ENABLE_FUZZERS AND NOT ENABLE_COMPILER_EXPLORER_BUILD AND NOT ANDROID)
|
||||||
# Lagom Services
|
# Lagom Services
|
||||||
add_subdirectory("${SERENITY_PROJECT_ROOT}/Userland/Services" "${CMAKE_CURRENT_BINARY_DIR}/Services")
|
add_subdirectory("${SERENITY_PROJECT_ROOT}/Userland/Services" "${CMAKE_CURRENT_BINARY_DIR}/Services")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue