@@ -8,7 +8,7 @@ include(CheckCXXSymbolExists)
8
8
# Paths
9
9
10
10
set (BIONIC_SOURCES_DIR "${REPO_ROOT_DIR} /src-ThirdParty/bionic" )
11
- set (ROBIN_MAP_DIR " ${EXTERNAL_DIR} /robin-map" )
11
+ set (BUILD_STATIC_LIBRARY OFF )
12
12
13
13
if (DEBUG_BUILD )
14
14
# Convince NDK to really optimize our Debug builds. Without this, NDK's cmake toolchain definition
@@ -17,6 +17,8 @@ if(DEBUG_BUILD)
17
17
set (XA_COMPILER_FLAGS_DEBUG "-fno-limit-debug-info -O2" )
18
18
set (CMAKE_C_FLAGS_DEBUG ${XA_COMPILER_FLAGS_DEBUG} )
19
19
set (CMAKE_CXX_FLAGS_DEBUG ${XA_COMPILER_FLAGS_DEBUG} )
20
+ elseif (NOT ANALYZERS_ENABLED )
21
+ set (BUILD_STATIC_LIBRARY ON )
20
22
endif ()
21
23
22
24
# Library directories
@@ -42,13 +44,15 @@ endif()
42
44
# Sources
43
45
string (TOLOWER ${CMAKE_BUILD_TYPE} XAMARIN_MONO_ANDROID_SUFFIX )
44
46
set (XAMARIN_MONO_ANDROID_LIB "mono-android${CHECKED_BUILD_INFIX} .${XAMARIN_MONO_ANDROID_SUFFIX} " )
47
+ set (XAMARIN_MONO_ANDROID_STATIC_LIB "${XAMARIN_MONO_ANDROID_LIB} -static" )
45
48
46
49
set (XAMARIN_MONODROID_SOURCES
47
50
debug-constants.cc
48
51
debug.cc
49
52
embedded-assemblies-zip.cc
50
53
embedded-assemblies.cc
51
54
globals.cc
55
+ internal -pinvokes.cc
52
56
jni-remapping.cc
53
57
mono-log-adapter.cc
54
58
monodroid-glue.cc
@@ -58,9 +62,7 @@ set(XAMARIN_MONODROID_SOURCES
58
62
osbridge.cc
59
63
pinvoke-override-api.cc
60
64
runtime-util.cc
61
- timing.cc
62
65
timezones.cc
63
- timing-internal.cc
64
66
xamarin_getifaddrs.cc
65
67
)
66
68
@@ -93,90 +95,107 @@ add_library(
93
95
SHARED ${XAMARIN_MONODROID_SOURCES}
94
96
)
95
97
96
- target_compile_definitions (
97
- ${XAMARIN_MONO_ANDROID_LIB}
98
- PRIVATE
99
- HAVE_CONFIG_H
100
- HAVE_LZ4
101
- JI_DLL_EXPORT
102
- JI_NO_VISIBILITY
103
- MONO_DLL_EXPORT
104
- NET
105
- TSL_NO_EXCEPTIONS
106
- )
107
-
108
- if (DONT_INLINE )
109
- target_compile_definitions (
110
- ${XAMARIN_MONO_ANDROID_LIB}
111
- PRIVATE
112
- NO_INLINE
98
+ if (BUILD_STATIC_LIBRARY )
99
+ add_library (
100
+ ${XAMARIN_MONO_ANDROID_STATIC_LIB}
101
+ STATIC
102
+ ${XAMARIN_MONODROID_SOURCES}
113
103
)
114
104
endif ()
115
105
116
- if ( DEBUG_BUILD AND NOT DISABLE_DEBUG )
106
+ macro ( lib_target_options TARGET_NAME )
117
107
target_compile_definitions (
118
- ${XAMARIN_MONO_ANDROID_LIB }
108
+ ${TARGET_NAME }
119
109
PRIVATE
120
- DEBUG
110
+ HAVE_CONFIG_H
111
+ HAVE_LZ4
112
+ JI_DLL_EXPORT
113
+ JI_NO_VISIBILITY
114
+ MONO_DLL_EXPORT
115
+ NET
116
+ TSL_NO_EXCEPTIONS
121
117
)
122
- endif ()
123
118
124
- if (ENABLE_TIMING )
125
- target_compile_definitions (
126
- ${XAMARIN_MONO_ANDROID_LIB}
119
+ if (DONT_INLINE )
120
+ target_compile_definitions (
121
+ ${TARGET_NAME}
122
+ PRIVATE
123
+ NO_INLINE
124
+ )
125
+ endif ()
126
+
127
+ if (DEBUG_BUILD AND NOT DISABLE_DEBUG )
128
+ target_compile_definitions (
129
+ ${TARGET_NAME}
130
+ PRIVATE
131
+ DEBUG
132
+ )
133
+ endif ()
134
+
135
+ if (ENABLE_TIMING )
136
+ target_compile_definitions (
137
+ ${TARGET_NAME}
138
+ PRIVATE
139
+ MONODROID_TIMING
140
+ )
141
+ endif ()
142
+
143
+ target_compile_options (
144
+ ${TARGET_NAME}
127
145
PRIVATE
128
- MONODROID_TIMING
146
+ ${XA_DEFAULT_SYMBOL_VISIBILITY}
147
+ ${XA_COMMON_CXX_ARGS}
129
148
)
130
- endif ()
131
149
132
- target_compile_options (
133
- ${XAMARIN_MONO_ANDROID_LIB}
134
- PRIVATE
135
- ${XA_DEFAULT_SYMBOL_VISIBILITY}
136
- ${XA_COMMON_CXX_ARGS}
137
- )
138
-
139
- target_include_directories (
140
- ${XAMARIN_MONO_ANDROID_LIB} BEFORE
141
- PRIVATE
142
- ${CMAKE_CURRENT_BINARY_DIR} /include
143
- ${EXTERNAL_DIR}
144
- ${ROBIN_MAP_DIR} /include
145
- )
150
+ target_include_directories (
151
+ ${TARGET_NAME} BEFORE
152
+ PRIVATE
153
+ ${CMAKE_CURRENT_BINARY_DIR} /include
154
+ ${EXTERNAL_DIR}
155
+ ${ROBIN_MAP_DIR} /include
156
+ )
146
157
147
- target_include_directories (
148
- ${XAMARIN_MONO_ANDROID_LIB }
149
- SYSTEM PRIVATE
150
- ${SYSROOT_CXX_INCLUDE_DIR}
151
- ${MONO_RUNTIME_INCLUDE_DIR}
152
- ${NATIVE_TRACING_INCLUDE_DIRS}
153
- ${LIBUNWIND_INCLUDE_DIRS}
154
- )
158
+ target_include_directories (
159
+ ${TARGET_NAME }
160
+ SYSTEM PRIVATE
161
+ ${SYSROOT_CXX_INCLUDE_DIR}
162
+ ${MONO_RUNTIME_INCLUDE_DIR}
163
+ ${NATIVE_TRACING_INCLUDE_DIRS}
164
+ ${LIBUNWIND_INCLUDE_DIRS}
165
+ )
155
166
156
- target_link_directories (
157
- ${XAMARIN_MONO_ANDROID_LIB }
158
- PRIVATE
159
- ${NET_RUNTIME_DIR} /native
160
- )
167
+ target_link_directories (
168
+ ${TARGET_NAME }
169
+ PRIVATE
170
+ ${NET_RUNTIME_DIR} /native
171
+ )
161
172
162
- target_link_options (
163
- ${XAMARIN_MONO_ANDROID_LIB }
164
- PRIVATE
165
- ${XA_DEFAULT_SYMBOL_VISIBILITY}
166
- ${XA_COMMON_CXX_LINKER_ARGS}
167
- ${XA_CXX_DSO_LINKER_ARGS}
168
- )
173
+ target_link_options (
174
+ ${TARGET_NAME }
175
+ PRIVATE
176
+ ${XA_DEFAULT_SYMBOL_VISIBILITY}
177
+ ${XA_COMMON_CXX_LINKER_ARGS}
178
+ ${XA_CXX_DSO_LINKER_ARGS}
179
+ )
169
180
170
- target_link_libraries (
171
- ${XAMARIN_MONO_ANDROID_LIB}
172
- ${LINK_LIBS}
173
- xa::xamarin-app
174
- ${SHARED_LIB_NAME}
175
- xa::runtime-base
176
- xa::java-interop
177
- xa::lz4
178
- -lmonosgen-2.0
179
- -llog
180
- )
181
+ target_link_libraries (
182
+ ${TARGET_NAME}
183
+ ${LINK_LIBS}
184
+ xa::xamarin-app
185
+ ${SHARED_LIB_NAME}
186
+ xa::runtime-base
187
+ xa::java-interop
188
+ xa::pinvoke-override-precompiled
189
+ xa::lz4
190
+ -lmonosgen-2.0
191
+ -llog
192
+ )
193
+ endmacro ()
181
194
195
+ lib_target_options (${XAMARIN_MONO_ANDROID_LIB} )
182
196
xa_add_compile_definitions (${XAMARIN_MONO_ANDROID_LIB} )
197
+
198
+ if (BUILD_STATIC_LIBRARY )
199
+ lib_target_options (${XAMARIN_MONO_ANDROID_STATIC_LIB} )
200
+ xa_add_compile_definitions (${XAMARIN_MONO_ANDROID_STATIC_LIB} )
201
+ endif ()
0 commit comments