@@ -75,6 +75,9 @@ option(FIREBASE_UNITY_BUILD_TESTS
7575option (FIREBASE_GITHUB_ACTION_BUILD
7676 "Indicates that this build was created from a GitHub Action" OFF )
7777
78+ option (FIREBASE_GENERATE_SWIG_ONLY
79+ "Indicates that this build is only intending to generate the swig files" OFF )
80+
7881# These options allow selecting what built outputs go into the CPack zip file
7982# as we merge the different platform zip's together for unity package
8083# For example: only packing dotnet libraries on linux builds
@@ -242,11 +245,12 @@ endif()
242245# Includes platform which needs to be invoked first
243246add_subdirectory (app)
244247set (TARGET_LINK_LIB_NAMES "firebase_app" "firebase_app_swig" )
248+ set (DOCUMENTATION_ONLY_LIB_NAMES "firebase_app_swig" )
245249set (PROJECT_LIST_HEADER "#define PROJECT_LIST(X)" )
246250list (APPEND PROJECT_LIST_HEADER " X(App)" )
247251
248252# Include Firebase editor tools.
249- if (DESKTOP AND APPLE AND FIREBASE_INCLUDE_EDITOR_TOOL)
253+ if (DESKTOP AND APPLE AND FIREBASE_INCLUDE_EDITOR_TOOL AND NOT FIREBASE_GENERATE_SWIG_ONLY )
250254 add_subdirectory (editor)
251255endif ()
252256
@@ -258,56 +262,67 @@ endif()
258262if (FIREBASE_INCLUDE_ANALYTICS)
259263 add_subdirectory (analytics)
260264 list (APPEND TARGET_LINK_LIB_NAMES "firebase_analytics" "firebase_analytics_swig" )
265+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_analytics_swig" )
261266 list (APPEND PROJECT_LIST_HEADER " X(Analytics)" )
262267endif ()
263268if (FIREBASE_INCLUDE_AUTH)
264269 add_subdirectory (auth)
265270 list (APPEND TARGET_LINK_LIB_NAMES "firebase_auth" "firebase_auth_swig" )
271+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_auth_swig" )
266272 list (APPEND PROJECT_LIST_HEADER " X(Auth)" )
267273endif ()
268274if (FIREBASE_INCLUDE_CRASHLYTICS AND FIREBASE_INCLUDE_UNITY)
269275 add_subdirectory (crashlytics)
270276 list (APPEND TARGET_LINK_LIB_NAMES "firebase_crashlytics" "firebase_crashlytics_swig" )
277+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_crashlytics_swig" )
271278 list (APPEND PROJECT_LIST_HEADER " X(Crashlytics)" )
272279endif ()
273280if (FIREBASE_INCLUDE_DATABASE)
274281 add_subdirectory (database)
275282 list (APPEND TARGET_LINK_LIB_NAMES "firebase_database" "firebase_database_swig" )
283+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_database_swig" )
276284 list (APPEND PROJECT_LIST_HEADER " X(Database)" )
277285endif ()
278286if (FIREBASE_INCLUDE_DYNAMIC_LINKS)
279287 add_subdirectory (dynamic_links)
280288 list (APPEND TARGET_LINK_LIB_NAMES "firebase_dynamic_links" "firebase_dynamic_links_swig" )
289+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_dynamic_links_swig" )
281290 list (APPEND PROJECT_LIST_HEADER " X(DynamicLinks)" )
282291endif ()
283292if (FIREBASE_INCLUDE_INSTALLATIONS)
284293 add_subdirectory (installations)
285294 list (APPEND TARGET_LINK_LIB_NAMES "firebase_installations" "firebase_installations_swig" )
295+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_installations_swig" )
286296 list (APPEND PROJECT_LIST_HEADER " X(Installations)" )
287297endif ()
288298if (FIREBASE_INCLUDE_FIRESTORE)
289299 add_subdirectory (firestore)
290300 list (APPEND TARGET_LINK_LIB_NAMES "firebase_firestore" "firebase_firestore_swig" )
301+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_firestore_swig" )
291302 list (APPEND PROJECT_LIST_HEADER " X(Firestore)" )
292303endif ()
293304if (FIREBASE_INCLUDE_FUNCTIONS)
294305 add_subdirectory (functions)
295306 list (APPEND TARGET_LINK_LIB_NAMES "firebase_functions" "firebase_functions_swig" )
307+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_functions_swig" )
296308 list (APPEND PROJECT_LIST_HEADER " X(Functions)" )
297309endif ()
298310if (FIREBASE_INCLUDE_MESSAGING)
299311 add_subdirectory (messaging)
300312 list (APPEND TARGET_LINK_LIB_NAMES "firebase_messaging" "firebase_messaging_swig" )
313+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_messaging_swig" )
301314 list (APPEND PROJECT_LIST_HEADER " X(Messaging)" )
302315endif ()
303316if (FIREBASE_INCLUDE_REMOTE_CONFIG)
304317 add_subdirectory (remote_config)
305318 list (APPEND TARGET_LINK_LIB_NAMES "firebase_remote_config" "firebase_remote_config_swig" )
319+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_remote_config_swig" )
306320 list (APPEND PROJECT_LIST_HEADER " X(RemoteConfig)" )
307321endif ()
308322if (FIREBASE_INCLUDE_STORAGE)
309323 add_subdirectory (storage)
310324 list (APPEND TARGET_LINK_LIB_NAMES "firebase_storage" "firebase_storage_swig" )
325+ list (APPEND DOCUMENTATION_ONLY_LIB_NAMES "firebase_storage_swig" )
311326 list (APPEND PROJECT_LIST_HEADER " X(Storage)" )
312327endif ()
313328
@@ -322,6 +337,11 @@ if(FIREBASE_UNI_LIBRARY)
322337 endif ()
323338endif ()
324339
340+ add_custom_target (firebase_swig_targets
341+ DEPENDS
342+ ${DOCUMENTATION_ONLY_LIB_NAMES}
343+ )
344+
325345if (FIREBASE_INCLUDE_MONO)
326346 add_subdirectory (samples/mono_app)
327347endif ()
0 commit comments