@@ -2,23 +2,22 @@ name: ci
22
33on :
44 push :
5- branches : [main]
65 pull_request :
76
87env :
98 CARGO_INCREMENTAL : 0
109 RUSTFLAGS : " -C debuginfo=0 --deny warnings"
1110 RUSTDOCFLAGS : -Dwarnings
12-
1311jobs :
1412 build :
1513 runs-on : ubuntu-latest
1614 strategy :
1715 fail-fast : false
1816 matrix :
1917 rust_version : [stable]
18+ cargo_ndk_args : [-t arm64-v8a -t armeabi-v7a -t x86_64 -t x86 -o app/src/main/jniLibs/]
2019 steps :
21- - uses : actions/checkout@v2
20+ - uses : actions/checkout@v3
2221
2322 - uses : hecrj/setup-rust-action@v1
2423 with :
@@ -49,50 +48,110 @@ jobs:
4948 # a shared target to speed up builds of all examples
5049 run : mkdir shared-target
5150
51+ - name : Build na-mainloop example
52+ working-directory : na-mainloop
53+ run : >
54+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
55+ ./gradlew build &&
56+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
57+
5258 - name : Build agdk-mainloop example
5359 working-directory : agdk-mainloop
5460 run : >
55- CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk
56- -t arm64-v8a
57- -t armeabi-v7a
58- -t x86_64
59- -t x86
60- -o app/src/main/jniLibs/ -- build
61+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
62+ ./gradlew build &&
63+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
6164
62- - name : Build na-mainloop example
63- working-directory : na-mainloop
65+ - name : Build na-subclass-jni
66+ working-directory : na-subclass-jni
67+ run : >
68+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
69+ ./gradlew build &&
70+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
71+
72+ - name : Build na-winit-wgpu
73+ working-directory : na-winit-wgpu
74+ run : >
75+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
76+ ./gradlew build &&
77+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
78+
79+ - name : Build na-winit-glutin
80+ working-directory : na-winit-glutin
81+ run : >
82+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
83+ ./gradlew build &&
84+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
85+
86+ - name : Build agdk-winit-glutin
87+ working-directory : na-winit-glutin
88+ run : >
89+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
90+ ./gradlew build &&
91+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
92+
93+ - name : Build agdk-cpal
94+ working-directory : agdk-cpal
6495 run : >
65- CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk
66- -t arm64-v8a
67- -t armeabi-v7a
68- -t x86_64
69- -t x86
70- -o app/src/main/jniLibs/ -- build
96+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
97+ ./gradlew build &&
98+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
99+
100+ - name : Build agdk-oboe
101+ working-directory : agdk-oboe
102+ run : >
103+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
104+ ./gradlew build &&
105+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
106+
107+ - name : Build na-egui example
108+ working-directory : na-egui
109+ run : >
110+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
111+ ./gradlew build &&
112+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
71113
72114 - name : Build agdk-egui example
73115 working-directory : agdk-egui
74116 run : >
75- CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk
76- -t arm64-v8a
77- -t armeabi-v7a
78- -t x86_64
79- -t x86
80- -o app/src/main/jniLibs/ -- build
117+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
118+ ./gradlew build &&
119+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
81120
82121 - name : Build agdk-eframe example
83122 working-directory : agdk-eframe
84123 run : >
85- CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk
86- -t arm64-v8a
87- -t armeabi-v7a
88- -t x86_64
89- -t x86
90- -o app/src/main/jniLibs/ -- build
124+ CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
125+ ./gradlew build &&
126+ find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
127+
128+ # We don't currently build the OpenXR examples on Android because I
129+ # haven't found a nice nice way to pull in libopenxr_loader binaries that
130+ # we can link against. Normally I would use the binaries as part of the
131+ # Oculus SDK
132+ #
133+ # TODO: maybe we can look at using the 'prefab' `.aar`s from Khronos here:
134+ # https://search.maven.org/artifact/org.khronos.openxr/openxr_loader_for_android
135+ #
136+ # - name: Build na-openxr-info example
137+ # working-directory: na-openxr-info
138+ # run: >
139+ # CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build --features=android &&
140+ # ./gradlew build &&
141+ # find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
142+
143+ # - name: Build na-openxr-wgpu
144+ # working-directory: na-openxr-wgpu
145+ # run: >
146+ # CARGO_TARGET_DIR=$GITHUB_WORKSPACE/shared-target cargo ndk ${{ matrix.cargo_ndk_args }} build &&
147+ # ./gradlew build &&
148+ # find $GITHUB_WORKSPACE/shared-target -iname '*.so' -exec rm {} \;
149+
91150
92151 format :
93152 runs-on : ubuntu-latest
94153 steps :
95- - uses : actions/checkout@v2
154+ - uses : actions/checkout@v3
96155
97156 - uses : actions-rs/toolchain@v1
98157 with :
0 commit comments