@@ -35,13 +35,25 @@ function(build_firebase_shared LIBRARY_NAME ARTIFACT_NAME OUTPUT_NAME)
3535
3636 set (shared_target "firebase_${LIBRARY_NAME} _shared" )
3737
38- add_library (${shared_target} SHARED
39- ${FIREBASE_SOURCE_DIR} /empty.cc
40- $<TARGET_OBJECTS:firebase_${LIBRARY_NAME} >
41- $<TARGET_OBJECTS:firebase_${LIBRARY_NAME} _swig>
42- )
43-
44- set (SHARED_TARGET_LINK_LIB_NAMES "firebase_${LIBRARY_NAME} " "firebase_${LIBRARY_NAME} _swig" )
38+ if (FIREBASE_IOS_BUILD OR NOT FIREBASE_UNI_LIBRARY)
39+ # On iOS, we want to include all the symbols in the library
40+ add_library (${shared_target} SHARED
41+ ${FIREBASE_SOURCE_DIR} /empty.cc
42+ $<TARGET_OBJECTS:firebase_${LIBRARY_NAME} >
43+ $<TARGET_OBJECTS:firebase_${LIBRARY_NAME} _swig>
44+ )
45+
46+ set (SHARED_TARGET_LINK_LIB_NAMES "firebase_${LIBRARY_NAME} " "firebase_${LIBRARY_NAME} _swig" )
47+ else ()
48+ # On other platforms, we only want the symbols from the
49+ # generated swig C++ file, and then linked against the
50+ # universal library, which has the symbols we need
51+ add_library (${shared_target} SHARED
52+ ${firebase_${LIBRARY_NAME} _swig_gen_cpp_src}
53+ )
54+
55+ set (SHARED_TARGET_LINK_LIB_NAMES "firebase_app_uni" )
56+ endif ()
4557
4658 target_link_libraries (${shared_target}
4759 ${SHARED_TARGET_LINK_LIB_NAMES}
0 commit comments