1
1
add_definitions (-DMBGL_USE_GLES2=1)
2
2
3
+ include (cmake/test -files .cmake)
4
+
3
5
#Include to use build specific variables
4
6
include (${CMAKE_CURRENT_BINARY_DIR} /toolchain.cmake)
5
7
@@ -15,6 +17,9 @@ mason_use(libpng VERSION 1.6.25)
15
17
mason_use(libzip VERSION 1.1.3)
16
18
mason_use(nunicode VERSION 1.7.1)
17
19
mason_use(sqlite VERSION 3.14.2)
20
+ mason_use(gtest VERSION 1.7.0)
21
+
22
+ ## mbgl core ##
18
23
19
24
macro (mbgl_platform_core)
20
25
@@ -52,12 +57,72 @@ macro(mbgl_platform_core)
52
57
PRIVATE platform/default/png_reader.cpp
53
58
PRIVATE platform/default/jpeg_reader.cpp
54
59
55
- # Headless view
56
- # TODO
57
-
58
60
# Thread pool
59
61
PRIVATE platform/default/mbgl/util/default_thread_pool.cpp
60
- PRIVATE platform/default/mbgl/util/default_thread_pool.cpp
62
+ PRIVATE platform/default/mbgl/util/default_thread_pool.hpp
63
+
64
+ # Conversion C++ -> Java
65
+ platform/android/src/conversion/constant.hpp
66
+ platform/android/src/conversion/conversion.hpp
67
+ platform/android/src/style/conversion/function.hpp
68
+ platform/android/src/style/conversion/property_value.hpp
69
+ platform/android/src/style/conversion/types.hpp
70
+ platform/android/src/style/conversion/types_string_values.hpp
71
+
72
+ # Style conversion Java -> C++
73
+ platform/android/src/style/android_conversion.hpp
74
+ platform/android/src/style/conversion/geojson.hpp
75
+ platform/android/src/style/value .cpp
76
+ platform/android/src/style/value .hpp
77
+ platform/android/src/style/conversion/url_or_tileset.hpp
78
+
79
+ # Style
80
+ platform/android/src/style/layers/background_layer.cpp
81
+ platform/android/src/style/layers/background_layer.hpp
82
+ platform/android/src/style/layers/circle_layer.cpp
83
+ platform/android/src/style/layers/circle_layer.hpp
84
+ platform/android/src/style/layers/custom_layer.cpp
85
+ platform/android/src/style/layers/custom_layer.hpp
86
+ platform/android/src/style/layers/fill_layer.cpp
87
+ platform/android/src/style/layers/fill_layer.hpp
88
+ platform/android/src/style/layers/layer.cpp
89
+ platform/android/src/style/layers/layer.hpp
90
+ platform/android/src/style/layers/layers.cpp
91
+ platform/android/src/style/layers/layers.hpp
92
+ platform/android/src/style/layers/line_layer.cpp
93
+ platform/android/src/style/layers/line_layer.hpp
94
+ platform/android/src/style/layers/raster_layer.cpp
95
+ platform/android/src/style/layers/raster_layer.hpp
96
+ platform/android/src/style/layers/symbol_layer.cpp
97
+ platform/android/src/style/layers/symbol_layer.hpp
98
+ platform/android/src/style/sources /geojson_source.cpp
99
+ platform/android/src/style/sources /geojson_source.hpp
100
+ platform/android/src/style/sources /source .cpp
101
+ platform/android/src/style/sources /source .hpp
102
+ platform/android/src/style/sources /sources .cpp
103
+ platform/android/src/style/sources /sources .hpp
104
+ platform/android/src/style/sources /raster_source.cpp
105
+ platform/android/src/style/sources /raster_source.hpp
106
+ platform/android/src/style/sources /vector_source.cpp
107
+ platform/android/src/style/sources /vector_source.hpp
108
+
109
+ # Connectivity
110
+ platform/android/src/connectivity_listener.cpp
111
+ platform/android/src/connectivity_listener.hpp
112
+
113
+ # Native map
114
+ platform/android/src/native_map_view.cpp
115
+ platform/android/src/native_map_view.hpp
116
+
117
+ # Main jni bindings
118
+ platform/android/src/attach_env.cpp
119
+ platform/android/src/attach_env.hpp
120
+ platform/android/src/java_types.cpp
121
+ platform/android/src/java_types.hpp
122
+
123
+ # Main entry point
124
+ platform/android/src/jni.hpp
125
+ platform/android/src/jni.cpp
61
126
)
62
127
63
128
target_include_directories (mbgl-core
@@ -71,6 +136,7 @@ macro(mbgl_platform_core)
71
136
target_add_mason_package(mbgl-core PUBLIC libzip)
72
137
target_add_mason_package(mbgl-core PUBLIC geojson)
73
138
target_add_mason_package(mbgl-core PUBLIC jni.hpp)
139
+ target_add_mason_package(mbgl-core PUBLIC rapidjson)
74
140
75
141
target_compile_options (mbgl-core
76
142
PRIVATE -fvisibility=hidden
@@ -91,71 +157,12 @@ macro(mbgl_platform_core)
91
157
)
92
158
endmacro ()
93
159
160
+ ## Main library ##
161
+
94
162
add_library (mapbox-gl SHARED
95
- # Conversion C++ -> Java
96
- platform/android/src/conversion/constant.hpp
97
- platform/android/src/conversion/conversion.hpp
98
- platform/android/src/style/conversion/function.hpp
99
- platform/android/src/style/conversion/property_value.hpp
100
- platform/android/src/style/conversion/types.hpp
101
- platform/android/src/style/conversion/types_string_values.hpp
102
-
103
- # Style conversion Java -> C++
104
- platform/android/src/style/android_conversion.hpp
105
- platform/android/src/style/conversion/geojson.hpp
106
- platform/android/src/style/value .cpp
107
- platform/android/src/style/value .hpp
108
- platform/android/src/style/conversion/url_or_tileset.hpp
109
-
110
- # Style
111
- platform/android/src/style/layers/background_layer.cpp
112
- platform/android/src/style/layers/background_layer.hpp
113
- platform/android/src/style/layers/circle_layer.cpp
114
- platform/android/src/style/layers/circle_layer.hpp
115
- platform/android/src/style/layers/custom_layer.cpp
116
- platform/android/src/style/layers/custom_layer.hpp
117
- platform/android/src/style/layers/fill_layer.cpp
118
- platform/android/src/style/layers/fill_layer.hpp
119
- platform/android/src/style/layers/layer.cpp
120
- platform/android/src/style/layers/layer.hpp
121
- platform/android/src/style/layers/layers.cpp
122
- platform/android/src/style/layers/layers.hpp
123
- platform/android/src/style/layers/line_layer.cpp
124
- platform/android/src/style/layers/line_layer.hpp
125
- platform/android/src/style/layers/raster_layer.cpp
126
- platform/android/src/style/layers/raster_layer.hpp
127
- platform/android/src/style/layers/symbol_layer.cpp
128
- platform/android/src/style/layers/symbol_layer.hpp
129
- platform/android/src/style/sources /geojson_source.cpp
130
- platform/android/src/style/sources /geojson_source.hpp
131
- platform/android/src/style/sources /source .cpp
132
- platform/android/src/style/sources /source .hpp
133
- platform/android/src/style/sources /sources .cpp
134
- platform/android/src/style/sources /sources .hpp
135
- platform/android/src/style/sources /raster_source.cpp
136
- platform/android/src/style/sources /raster_source.hpp
137
- platform/android/src/style/sources /vector_source.cpp
138
- platform/android/src/style/sources /vector_source.hpp
139
-
140
- # Native map
141
- platform/android/src/native_map_view.cpp
142
- platform/android/src/native_map_view.hpp
143
-
144
- # Connectivity
145
- platform/android/src/connectivity_listener.cpp
146
- platform/android/src/connectivity_listener.hpp
147
-
148
- # Main jni bindings
149
- platform/android/src/jni.cpp
150
- platform/android/src/jni.hpp
151
- platform/android/src/attach_env.cpp
152
- platform/android/src/attach_env.hpp
153
- platform/android/src/java_types.cpp
154
- platform/android/src/java_types.hpp
163
+ platform/android/src/main.cpp
155
164
)
156
165
157
- target_add_mason_package(mapbox-gl PUBLIC rapidjson)
158
-
159
166
target_compile_options (mapbox-gl
160
167
PRIVATE -fvisibility=hidden
161
168
PRIVATE -ffunction-sections
@@ -168,6 +175,62 @@ target_link_libraries(mapbox-gl
168
175
PUBLIC -Wl,--gc-sections
169
176
)
170
177
178
+ ## Test library ##
179
+
180
+ add_library (mbgl-test SHARED
181
+ # Actual tests
182
+ ${MBGL_TEST_FILES}
183
+
184
+ # Main test entry point
185
+ platform/android/src/test /main.jni.cpp
186
+
187
+ )
188
+
189
+ target_sources (mbgl-test
190
+ # Headless view
191
+ PRIVATE platform/default/mbgl/gl/headless_backend.cpp
192
+ PRIVATE platform/default/mbgl/gl/headless_backend.hpp
193
+ PRIVATE platform/default/mbgl/gl/offscreen_view.cpp
194
+ PRIVATE platform/default/mbgl/gl/offscreen_view.hpp
195
+
196
+ PRIVATE platform/linux/src/headless_backend_egl.cpp
197
+ PRIVATE platform/linux/src/headless_display_egl.cpp
198
+ )
199
+
200
+ target_compile_options (mbgl-test
201
+ PRIVATE -fvisibility=hidden
202
+ PRIVATE -Os
203
+ )
204
+
205
+ target_compile_definitions (mbgl-test
206
+ PRIVATE MBGL_ASSET_ZIP=1
207
+ )
208
+
209
+ target_include_directories (mbgl-test
210
+ PRIVATE include
211
+ PRIVATE src # TODO: eliminate
212
+ PRIVATE test /include
213
+ PRIVATE test /src
214
+ PRIVATE platform/default
215
+ PRIVATE ${MBGL_GENERATED} /include
216
+ )
217
+
218
+ target_link_libraries (mbgl-test
219
+ PRIVATE mbgl-core
220
+ )
221
+
222
+ target_add_mason_package(mbgl-test PRIVATE geometry)
223
+ target_add_mason_package(mbgl-test PRIVATE variant)
224
+ target_add_mason_package(mbgl-test PRIVATE unique_resource)
225
+ target_add_mason_package(mbgl-test PRIVATE rapidjson)
226
+ target_add_mason_package(mbgl-test PRIVATE gtest)
227
+ target_add_mason_package(mbgl-test PRIVATE pixelmatch)
228
+ target_add_mason_package(mbgl-test PRIVATE boost)
229
+ target_add_mason_package(mbgl-test PRIVATE geojson)
230
+ target_add_mason_package(mbgl-test PRIVATE geojsonvt)
231
+
232
+ ## Custom layer example ##
233
+
171
234
add_library (example-custom-layer SHARED
172
235
platform/android/src/example_custom_layer.cpp
173
236
)
@@ -184,6 +247,8 @@ target_link_libraries(example-custom-layer
184
247
PUBLIC -Wl,--gc-sections
185
248
)
186
249
250
+ ## Strip and copy ##
251
+
187
252
set (ANDROID_SDK_PROJECT_DIR ${CMAKE_SOURCE_DIR} /platform/android/MapboxGLAndroidSDK)
188
253
set (ANDROID_JNI_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR} /src/main/jniLibs/${ANDROID_JNIDIR} /)
189
254
set (ANDROID_ASSETS_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR} /src/main/assets/)
@@ -203,8 +268,17 @@ add_custom_target(copy-files
203
268
COMMAND ${STRIP_COMMAND} $<TARGET_FILE:example-custom-layer> -o ${ANDROID_TEST_APP_JNI_TARGET_DIR} $<TARGET_FILE_NAME:example-custom-layer>
204
269
)
205
270
271
+ add_custom_target (mbgl-test -stripped
272
+ DEPENDS mapbox-gl
273
+ DEPENDS mbgl-test
274
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} /stripped
275
+ COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mapbox-gl> -o ${CMAKE_CURRENT_BINARY_DIR} /stripped/$<TARGET_FILE_NAME:mapbox-gl>
276
+ COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mbgl-test > -o ${CMAKE_CURRENT_BINARY_DIR} /stripped/$<TARGET_FILE_NAME:mbgl-test >
277
+ )
278
+
206
279
add_custom_target (_all ALL
207
280
DEPENDS mapbox-gl
281
+ DEPENDS mbgl-test
208
282
DEPENDS example-custom-layer
209
283
DEPENDS copy-files
210
284
)
0 commit comments