Skip to content

Commit 0f066aa

Browse files
Merge branch 'dev' into feature/aks-flaky-android-builds
2 parents e1bd5f8 + 3103434 commit 0f066aa

File tree

195 files changed

+4986
-2542
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+4986
-2542
lines changed

.github/workflows/cpp-packaging.yml

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ jobs:
220220
path: firebase-cpp-sdk-android-${{ matrix.stl }}-package.tgz
221221

222222
build_desktop:
223-
name: build-${{ matrix.sdk_platform }}-${{ matrix.architecture }}-${{ matrix.build_type }}-${{ matrix.msvc_runtime }}
223+
name: build-${{ matrix.sdk_platform }}-${{ matrix.architecture }}-${{ matrix.build_type }}-${{ matrix.msvc_runtime }}-${{ matrix.linux_abi }}
224224
runs-on: ${{ matrix.os }}
225225
if: ${{ github.event.inputs.downloadPublicVersion == '' && github.event.inputs.downloadPreviousRun == '' }}
226226
strategy:
@@ -230,6 +230,7 @@ jobs:
230230
build_type: ["Release", "Debug"]
231231
architecture: ["x64", "x86"]
232232
msvc_runtime: ["static", "dynamic"]
233+
linux_abi: ["legacy", "c++11"]
233234
python_version: [3.7]
234235
include:
235236
- os: windows-latest
@@ -251,10 +252,14 @@ jobs:
251252
sdk_platform: "darwin"
252253

253254
exclude:
255+
- os: windows-latest
256+
linux_abi: "c++11"
254257
- os: macos-latest
255258
architecture: "x86"
256259
- os: macos-latest
257260
msvc_runtime: "dynamic"
261+
- os: macos-latest
262+
linux_abi: "c++11"
258263
- os: macos-latest
259264
build_type: "Debug"
260265
- os: ubuntu-latest
@@ -276,8 +281,8 @@ jobs:
276281
shell: bash
277282
run: |
278283
echo "VCPKG_RESPONSE_FILE=external/vcpkg_${{ matrix.vcpkg_triplet }}_response_file.txt" >> $GITHUB_ENV
279-
echo "MATRIX_UNIQUE_NAME=${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}" >> $GITHUB_ENV
280-
echo "SDK_NAME=${{ matrix.sdk_platform }}-${{ matrix.architecture }}-${{ matrix.build_type }}-${{ matrix.msvc_runtime }}" >> $GITHUB_ENV
284+
echo "MATRIX_UNIQUE_NAME=${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}-${{ matrix.msvc_runtime }}-${{ matrix.linux_abi }}" >> $GITHUB_ENV
285+
echo "SDK_NAME=${{ matrix.sdk_platform }}-${{ matrix.architecture }}-${{ matrix.build_type }}-${{ matrix.msvc_runtime }}-${{ matrix.linux_abi }}" >> $GITHUB_ENV
281286
282287
- name: Add msbuild to PATH (windows)
283288
if: startsWith(matrix.os, 'windows')
@@ -288,7 +293,7 @@ jobs:
288293
uses: actions/cache@v2
289294
with:
290295
path: external/vcpkg/installed
291-
key: dev-vcpkg-${{ matrix.architecture }}-${{ matrix.vcpkg_triplet_suffix }}-${{ matrix.msvc_runtime }}-${{ hashFiles(format('{0}', env.VCPKG_RESPONSE_FILE)) }}-${{ hashFiles('.git/modules/external/vcpkg/HEAD') }}
296+
key: dev-vcpkg-${{ matrix.architecture }}-${{ matrix.vcpkg_triplet_suffix }}-${{ matrix.msvc_runtime }}-${{ matrix.linux_abi }}-${{ hashFiles(format('{0}', env.VCPKG_RESPONSE_FILE)) }}-${{ hashFiles('.git/modules/external/vcpkg/HEAD') }}
292297

293298
- name: Cache ccache files
294299
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
@@ -310,7 +315,7 @@ jobs:
310315
- name: Build desktop SDK
311316
shell: bash
312317
run: |
313-
python scripts/gha/build_desktop.py --arch "${{ matrix.architecture }}" --config "${{ matrix.build_type }}" --msvc_runtime_library "${{ matrix.msvc_runtime }}" --build_dir out-${{ env.SDK_NAME }} ${{ matrix.additional_build_flags }}
318+
python scripts/gha/build_desktop.py --arch "${{ matrix.architecture }}" --config "${{ matrix.build_type }}" --msvc_runtime_library "${{ matrix.msvc_runtime }}" --linux_abi "${{ matrix.linux_abi }}" --build_dir out-${{ env.SDK_NAME }} ${{ matrix.additional_build_flags }}
314319
# Make a list of all the source files, for debugging purposes.
315320
cd out-${{ env.SDK_NAME }}
316321
find .. -type f -print > src_file_list.txt
@@ -428,7 +433,7 @@ jobs:
428433
for pkg in artifacts/firebase-cpp-sdk-${{ matrix.sdk_platform }}${{ matrix.suffix }}*-build/*.tgz; do
429434
# determine the build variant based on the artifact filename
430435
variant=$(sdk-src/build_scripts/desktop/get_variant.sh "${pkg}")
431-
sdk-src/build_scripts/desktop/package.sh -b ${pkg} -o firebase-cpp-sdk-${{ matrix.sdk_platform }}${{ matrix.suffix }}-package -p ${{ matrix.sdk_platform }} -t bin -d ${variant} -P python3
436+
sdk-src/build_scripts/desktop/package.sh -b ${pkg} -o firebase-cpp-sdk-${{ matrix.sdk_platform }}${{ matrix.suffix }}-package -p ${{ matrix.sdk_platform }} -t bin -d ${variant} -P python3 -j
432437
done
433438
if [[ "${{ matrix.sdk_platform }}" == "darwin" ]]; then
434439
# Darwin has a final step after all the variants are done,
@@ -579,17 +584,19 @@ jobs:
579584
name: |
580585
packaging-tools-darwin
581586
packaging-tools-linux
582-
firebase-cpp-sdk-windows-x86-Release-dynamic-build
583-
firebase-cpp-sdk-windows-x64-Release-dynamic-build
584-
firebase-cpp-sdk-windows-x86-Debug-dynamic-build
585-
firebase-cpp-sdk-windows-x64-Debug-dynamic-build
586-
firebase-cpp-sdk-windows-x86-Release-static-build
587-
firebase-cpp-sdk-windows-x64-Release-static-build
588-
firebase-cpp-sdk-windows-x86-Debug-static-build
589-
firebase-cpp-sdk-windows-x64-Debug-static-build
590-
firebase-cpp-sdk-linux-x86-Release-static-build
591-
firebase-cpp-sdk-linux-x64-Release-static-build
592-
firebase-cpp-sdk-darwin-x64-Release-static-build
587+
firebase-cpp-sdk-windows-x86-Release-dynamic-legacy-build
588+
firebase-cpp-sdk-windows-x64-Release-dynamic-legacy-build
589+
firebase-cpp-sdk-windows-x86-Debug-dynamic-legacy-build
590+
firebase-cpp-sdk-windows-x64-Debug-dynamic-legacy-build
591+
firebase-cpp-sdk-windows-x86-Release-static-legacy-build
592+
firebase-cpp-sdk-windows-x64-Release-static-legacy-build
593+
firebase-cpp-sdk-windows-x86-Debug-static-legacy-build
594+
firebase-cpp-sdk-windows-x64-Debug-static-legacy-build
595+
firebase-cpp-sdk-linux-x86-Release-static-legacy-build
596+
firebase-cpp-sdk-linux-x64-Release-static-legacy-build
597+
firebase-cpp-sdk-linux-x86-Release-static-c++11-build
598+
firebase-cpp-sdk-linux-x64-Release-static-c++11-build
599+
firebase-cpp-sdk-darwin-x64-Release-static-legacy-build
593600
firebase-cpp-sdk-windows-x86-Release-dynamic-package
594601
firebase-cpp-sdk-windows-x64-Release-dynamic-package
595602
firebase-cpp-sdk-windows-x86-Debug-dynamic-package

Android/firebase_dependencies.gradle

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,28 @@ import org.gradle.util.ConfigureUtil;
1616

1717
// A map of library to the dependencies that need to be added for it.
1818
def firebaseDependenciesMap = [
19-
'app' : ['com.google.firebase:firebase-analytics:17.5.0'],
20-
'admob' : ['com.google.firebase:firebase-ads:19.3.0',
21-
'com.google.android.gms:play-services-measurement-sdk-api:17.5.0',
22-
'com.google.android.gms:play-services-base:17.4.0'],
23-
'analytics' : ['com.google.firebase:firebase-analytics:17.5.0',
24-
'com.google.android.gms:play-services-base:17.4.0'],
25-
'auth' : ['com.google.firebase:firebase-auth:19.3.2'],
26-
'database' : ['com.google.firebase:firebase-database:19.4.0'],
27-
'dynamic_links' : ['com.google.firebase:firebase-dynamic-links:19.1.0'],
28-
'firestore' : ['com.google.firebase:firebase-firestore:21.6.0'],
19+
'app' : ['com.google.firebase:firebase-analytics:18.0.0'],
20+
'admob' : ['com.google.firebase:firebase-ads:19.5.0',
21+
'com.google.android.gms:play-services-measurement-sdk-api:18.0.0',
22+
'com.google.android.gms:play-services-base:17.5.0'],
23+
'analytics' : ['com.google.firebase:firebase-analytics:18.0.0',
24+
'com.google.android.gms:play-services-base:17.5.0'],
25+
'auth' : ['com.google.firebase:firebase-auth:20.0.0'],
26+
'database' : ['com.google.firebase:firebase-database:19.5.1'],
27+
'dynamic_links' : ['com.google.firebase:firebase-dynamic-links:19.1.1'],
28+
'firestore' : ['com.google.firebase:firebase-firestore:22.0.0'],
2929
'functions' : ['com.google.firebase:firebase-functions:19.1.0'],
30-
'instance_id' : ['com.google.firebase:firebase-iid:20.2.4'],
30+
'installations' : ['com.google.firebase:firebase-installations:16.3.3',
31+
'com.google.android.gms:play-services-base:17.4.0'],
32+
'instance_id' : ['com.google.firebase:firebase-iid:21.0.0'],
3133
'invites' : ['com.google.firebase:firebase-invites:17.0.0'],
3234
// Messaging has an additional local dependency to include.
33-
'messaging' : ['com.google.firebase:firebase-messaging:20.2.4',
35+
'messaging' : ['com.google.firebase:firebase-messaging:21.0.0',
3436
'firebase_cpp_sdk.messaging:messaging_java',
3537
'androidx.core:core:1.0.1'],
36-
'performance' : ['com.google.firebase:firebase-perf:19.0.8'],
37-
'remote_config' : ['com.google.firebase:firebase-config:19.2.0',
38-
'com.google.android.gms:play-services-base:17.4.0'],
38+
'performance' : ['com.google.firebase:firebase-perf:19.0.9'],
39+
'remote_config' : ['com.google.firebase:firebase-config:20.0.0',
40+
'com.google.android.gms:play-services-base:17.5.0'],
3941
'storage' : ['com.google.firebase:firebase-storage:19.2.0']
4042
]
4143

CMakeLists.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ option(FIREBASE_CPP_USE_PRIOR_GRADLE_BUILD
6868
"When building with Gradle, use the previously built libraries." OFF)
6969
option(FIREBASE_USE_BORINGSSL
7070
"Build against BoringSSL instead of using your system's OpenSSL." OFF)
71+
option(FIREBASE_USE_LINUX_CXX11_ABI
72+
"Build Linux SDK using the C++11 ABI instead of the legacy ABI." OFF)
7173

7274
set(FIREBASE_ANDROID_STL "" CACHE STRING "STL implementation to use.")
7375
if (NOT FIREBASE_ANDROID_STL STREQUAL "")
@@ -119,9 +121,15 @@ endif()
119121

120122
if(DESKTOP AND NOT MSVC AND NOT APPLE)
121123
# Linux-specific option.
122-
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
123-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
124-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
124+
if (FIREBASE_LINUX_USE_CXX11_ABI)
125+
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
126+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=1")
127+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=1")
128+
else()
129+
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
130+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
131+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
132+
endif()
125133
endif()
126134

127135
# Set directories needed by the Firebase subprojects

admob/admob_resources/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ android {
4545
}
4646

4747
dependencies {
48-
implementation 'com.google.firebase:firebase-analytics:17.5.0'
49-
implementation 'com.google.firebase:firebase-ads:19.3.0'
48+
implementation 'com.google.firebase:firebase-analytics:18.0.0'
49+
implementation 'com.google.firebase:firebase-ads:19.5.0'
5050
}
5151

5252
afterEvaluate {
5353
generateReleaseBuildConfig.enabled = false
5454
}
5555

5656
apply from: "$rootDir/android_build_files/extract_and_dex.gradle"
57-
extractAndDexAarFile('admob_resources')
57+
extractAndDexAarFile('admob_resources')

admob/src/android/admob_android.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ InitResult Initialize(JNIEnv* env, jobject activity) {
143143
}
144144

145145
InitResult Initialize(JNIEnv* env, jobject activity, const char* admob_app_id) {
146+
if (g_java_vm == nullptr) {
147+
env->GetJavaVM(&g_java_vm);
148+
}
149+
146150
// AdMob requires Google Play services if the class
147151
// "com.google.android.gms.ads.internal.ClientApi" does not exist.
148152
if (!util::FindClass(env, "com/google/android/gms/ads/internal/ClientApi") &&
@@ -192,7 +196,6 @@ InitResult Initialize(JNIEnv* env, jobject activity, const char* admob_app_id) {
192196

193197
g_initialized = true;
194198
g_activity = env->NewGlobalRef(activity);
195-
env->GetJavaVM(&g_java_vm);
196199

197200
InitializeGoogleMobileAds(env, admob_app_id);
198201
RegisterTerminateOnDefaultAppDestroy();

admob/tools/ios/testapp/testapp.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@
410410
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
411411
GCC_WARN_UNUSED_FUNCTION = YES;
412412
GCC_WARN_UNUSED_VARIABLE = YES;
413-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
413+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
414414
MTL_ENABLE_DEBUG_INFO = YES;
415415
ONLY_ACTIVE_ARCH = YES;
416416
OTHER_CFLAGS = (
@@ -456,7 +456,7 @@
456456
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
457457
GCC_WARN_UNUSED_FUNCTION = YES;
458458
GCC_WARN_UNUSED_VARIABLE = YES;
459-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
459+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
460460
MTL_ENABLE_DEBUG_INFO = NO;
461461
OTHER_CFLAGS = (
462462
"$(inherited)",
@@ -476,7 +476,7 @@
476476
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImages;
477477
DEVELOPMENT_TEAM = "";
478478
INFOPLIST_FILE = testapp/Info.plist;
479-
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
479+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
480480
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
481481
PRODUCT_BUNDLE_IDENTIFIER = com.google.ios.admob.testapp;
482482
PRODUCT_NAME = testapp;

analytics/src/analytics_android.cc

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -298,12 +298,6 @@ void SetUserId(const char* user_id) {
298298
if (user_id_value) env->DeleteLocalRef(user_id_value);
299299
}
300300

301-
// Sets the minimum engagement time required before starting a session.
302-
void SetMinimumSessionDuration(int64_t milliseconds) {
303-
LogWarning(
304-
"SetMinimumSessionDuration is deprecated and no longer functional.");
305-
}
306-
307301
// Sets the duration of inactivity that terminates the current session.
308302
void SetSessionTimeoutDuration(int64_t milliseconds) {
309303
FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized());

analytics/src/analytics_ios.mm

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,6 @@ void SetUserId(const char* user_id) {
236236
[FIRAnalytics setUserID:(user_id ? @(user_id) : nil)];
237237
}
238238

239-
// Sets the minimum engagement time required before starting a session.
240-
// (No longer functional.)
241-
void SetMinimumSessionDuration(int64_t milliseconds) {
242-
LogWarning("SetMinimumSessionDuration is deprecated and no longer functional.");
243-
}
244-
245239
// Sets the duration of inactivity that terminates the current session.
246240
void SetSessionTimeoutDuration(int64_t milliseconds) {
247241
FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized());

analytics/src/analytics_stub.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,6 @@ void SetUserId(const char* /*user_id*/) {
105105
FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized());
106106
}
107107

108-
// Sets the minimum engagement time required before starting a session.
109-
void SetMinimumSessionDuration(int64_t /*milliseconds*/) {
110-
FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized());
111-
}
112-
113108
// Sets the duration of inactivity that terminates the current session.
114109
void SetSessionTimeoutDuration(int64_t /*milliseconds*/) {
115110
FIREBASE_ASSERT_RETURN_VOID(internal::IsInitialized());

analytics/src/include/firebase/analytics.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -489,17 +489,6 @@ void SetUserProperty(const char* name, const char* property);
489489
/// Setting user_id to NULL or nullptr removes the user ID.
490490
void SetUserId(const char* user_id);
491491

492-
/// @brief Sets the minimum engagement time required before starting a session.
493-
///
494-
/// @note The default value is 10000 (10 seconds).
495-
///
496-
/// @param milliseconds The minimum engagement time required to start a new
497-
/// session.
498-
///
499-
/// @deprecated SetMinimumSessionDuration is deprecated and no longer
500-
/// functional.
501-
FIREBASE_DEPRECATED void SetMinimumSessionDuration(int64_t milliseconds);
502-
503492
/// @brief Sets the duration of inactivity that terminates the current session.
504493
///
505494
/// @note The default value is 1800000 (30 minutes).

0 commit comments

Comments
 (0)