From 412e759a19117974cca18e86ea44742ae0dec659 Mon Sep 17 00:00:00 2001 From: Greg Soltis Date: Mon, 1 Jan 2018 17:43:54 -0800 Subject: Expose library version, move it out of options (#588) * slight cleanup * Use -D defines for versions * Undo FIROptionsTest change * Drop failed macro attempt * Add correct version to podspec * Add newline * Shuffle files around * Bring back log change * Fix change * Fix space --- .gitignore | 1 + Firebase/Core/FIRLogger.m | 3 ++- Firebase/Core/FIRVersion.m | 39 ++++++++++++++++++++++++++++++++++++++ Firebase/Core/Private/FIRVersion.h | 23 ++++++++++++++++++++++ FirebaseCore.podspec | 3 +++ 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Firebase/Core/FIRVersion.m create mode 100644 Firebase/Core/Private/FIRVersion.h diff --git a/.gitignore b/.gitignore index 93e3974..61fc41b 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ Podfile.lock # CMake .downloads +.idea/ diff --git a/Firebase/Core/FIRLogger.m b/Firebase/Core/FIRLogger.m index 2b2a0ae..55dfdb9 100644 --- a/Firebase/Core/FIRLogger.m +++ b/Firebase/Core/FIRLogger.m @@ -15,6 +15,7 @@ #import "Private/FIRLogger.h" #import "FIRLoggerLevel.h" +#import "FIRVersion.h" #import "third_party/FIRAppEnvironmentUtil.h" #include @@ -229,7 +230,7 @@ void FIRLogBasic(FIRLoggerLevel level, NSCAssert(numberOfMatches == 1, @"Incorrect message code format."); #endif NSString *logMsg = [[NSString alloc] initWithFormat:message arguments:args_ptr]; - logMsg = [NSString stringWithFormat:@"%@[%@] %@", service, messageCode, logMsg]; + logMsg = [NSString stringWithFormat:@"%s - %@[%@] %@", FirebaseVersionString, service, messageCode, logMsg]; dispatch_async(sFIRClientQueue, ^{ asl_log(sFIRLoggerClient, NULL, level, "%s", logMsg.UTF8String); }); diff --git a/Firebase/Core/FIRVersion.m b/Firebase/Core/FIRVersion.m new file mode 100644 index 0000000..8186683 --- /dev/null +++ b/Firebase/Core/FIRVersion.m @@ -0,0 +1,39 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + +#ifndef Firebase_VERSION +#error "Firebase_VERSION is not defined: add -DFirebase_VERSION=... to the build invocation" +#endif + +#ifndef FIRCore_VERSION +#error "FIRCore_VERSION is not defined: add -DFIRCore_VERSION=... to the build invocation" +#endif + + +// The following two macros supply the incantation so that the C +// preprocessor does not try to parse the version as a floating +// point number. See +// https://www.guyrutenberg.com/2008/12/20/expanding-macros-into-string-constants-in-c/ +#define STR(x) STR_EXPAND(x) +#define STR_EXPAND(x) #x + +const unsigned char *const FirebaseVersionString = + (const unsigned char *const)STR(Firebase_VERSION); + +const unsigned char *const FirebaseCoreVersionString = + (const unsigned char *const)STR(FIRCore_VERSION); diff --git a/Firebase/Core/Private/FIRVersion.h b/Firebase/Core/Private/FIRVersion.h new file mode 100644 index 0000000..f18f61f --- /dev/null +++ b/Firebase/Core/Private/FIRVersion.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/** The version of the Firebase SDK. */ +FOUNDATION_EXPORT const unsigned char *const FirebaseVersionString; + +/** The version of the FirebaseCore Component. */ +FOUNDATION_EXPORT const unsigned char *const FirebaseCoreVersionString; diff --git a/FirebaseCore.podspec b/FirebaseCore.podspec index ac8d5b9..59460ef 100644 --- a/FirebaseCore.podspec +++ b/FirebaseCore.podspec @@ -28,4 +28,7 @@ Firebase Core includes FIRApp and FIROptions which provide central configuration s.private_header_files = 'Firebase/Core/Private/*.h' s.framework = 'SystemConfiguration' s.dependency 'GoogleToolboxForMac/NSData+zlib', '~> 2.1' + s.pod_target_xcconfig = { + 'OTHER_CFLAGS' => '-DFIRCore_VERSION=' + s.version.to_s + ' -DFirebase_VERSION=4.8.0' + } end -- cgit v1.2.3