1*6777b538SAndroid Build Coastguard Worker // Copyright 2011 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_FILE_VERSION_INFO_APPLE_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_FILE_VERSION_INFO_APPLE_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/file_version_info.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <CoreFoundation/CoreFoundation.h> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include <string> 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker @class NSBundle; 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker class FileVersionInfoApple : public FileVersionInfo { 17*6777b538SAndroid Build Coastguard Worker public: 18*6777b538SAndroid Build Coastguard Worker explicit FileVersionInfoApple(NSBundle* bundle); 19*6777b538SAndroid Build Coastguard Worker FileVersionInfoApple(const FileVersionInfoApple&) = delete; 20*6777b538SAndroid Build Coastguard Worker FileVersionInfoApple& operator=(const FileVersionInfoApple&) = delete; 21*6777b538SAndroid Build Coastguard Worker ~FileVersionInfoApple() override; 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker // Accessors to the different version properties. 24*6777b538SAndroid Build Coastguard Worker // Returns an empty string if the property is not found. 25*6777b538SAndroid Build Coastguard Worker std::u16string company_name() override; 26*6777b538SAndroid Build Coastguard Worker std::u16string company_short_name() override; 27*6777b538SAndroid Build Coastguard Worker std::u16string product_name() override; 28*6777b538SAndroid Build Coastguard Worker std::u16string product_short_name() override; 29*6777b538SAndroid Build Coastguard Worker std::u16string internal_name() override; 30*6777b538SAndroid Build Coastguard Worker std::u16string product_version() override; 31*6777b538SAndroid Build Coastguard Worker std::u16string special_build() override; 32*6777b538SAndroid Build Coastguard Worker std::u16string original_filename() override; 33*6777b538SAndroid Build Coastguard Worker std::u16string file_description() override; 34*6777b538SAndroid Build Coastguard Worker std::u16string file_version() override; 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker private: 37*6777b538SAndroid Build Coastguard Worker // Returns a std::u16string value for a property name. 38*6777b538SAndroid Build Coastguard Worker // Returns the empty string if the property does not exist. 39*6777b538SAndroid Build Coastguard Worker std::u16string GetString16Value(CFStringRef name); 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker NSBundle* __strong bundle_; 42*6777b538SAndroid Build Coastguard Worker }; 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Worker #endif // BASE_FILE_VERSION_INFO_APPLE_H_ 45