@@ -2,23 +2,22 @@ name: ci
2
2
3
3
on :
4
4
push :
5
- branches : [main]
6
5
pull_request :
7
6
8
7
env :
9
8
CARGO_INCREMENTAL : 0
10
9
RUSTFLAGS : " -C debuginfo=0 --deny warnings"
11
10
RUSTDOCFLAGS : -Dwarnings
12
-
13
11
jobs :
14
12
build :
15
13
runs-on : ubuntu-latest
16
14
strategy :
17
15
fail-fast : false
18
16
matrix :
19
17
rust_version : [stable]
18
+ cargo_ndk_args : [-t arm64-v8a -t armeabi-v7a -t x86_64 -t x86 -o app/src/main/jniLibs/]
20
19
steps :
21
- - uses : actions/checkout@v2
20
+ - uses : actions/checkout@v3
22
21
23
22
- uses : hecrj/setup-rust-action@v1
24
23
with :
@@ -49,50 +48,110 @@ jobs:
49
48
# a shared target to speed up builds of all examples
50
49
run : mkdir shared-target
51
50
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
+
52
58
- name : Build agdk-mainloop example
53
59
working-directory : agdk-mainloop
54
60
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 {} \;
61
64
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
64
95
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 {} \;
71
113
72
114
- name : Build agdk-egui example
73
115
working-directory : agdk-egui
74
116
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 {} \;
81
120
82
121
- name : Build agdk-eframe example
83
122
working-directory : agdk-eframe
84
123
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
+
91
150
92
151
format :
93
152
runs-on : ubuntu-latest
94
153
steps :
95
- - uses : actions/checkout@v2
154
+ - uses : actions/checkout@v3
96
155
97
156
- uses : actions-rs/toolchain@v1
98
157
with :
0 commit comments