log OS X version properly - take 2
There was code in place to log the OS X kernel version (14.1.0, for example) to log, but it stopped working some time ago. "Mac OS X unknown." has been logged for the last several releases. This commit swaps out that C++ code for a some Obj-C which logs the OS X release version (10.10.2, for example) correctly. In order to mix Obj-C with an otherwise C++ file, I changed the file extension from .cpp to .mm to make it Objective-C++. At the suggestion of wolfman2000, I have updated src/CMakeData-arch.cmake to reflect the changes in this commit; that will follow in the next commit from me.
This commit is contained in:
@@ -21,6 +21,8 @@ extern "C" {
|
|||||||
#include <IOKit/network/IONetworkInterface.h>
|
#include <IOKit/network/IONetworkInterface.h>
|
||||||
#include <IOKit/network/IOEthernetController.h>
|
#include <IOKit/network/IOEthernetController.h>
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
static bool IsFatalSignal( int signal )
|
static bool IsFatalSignal( int signal )
|
||||||
{
|
{
|
||||||
switch( signal )
|
switch( signal )
|
||||||
@@ -140,16 +142,13 @@ RString ArchHooks_MacOSX::GetArchName() const
|
|||||||
|
|
||||||
void ArchHooks_MacOSX::DumpDebugInfo()
|
void ArchHooks_MacOSX::DumpDebugInfo()
|
||||||
{
|
{
|
||||||
// Get system version
|
// Get system version (like 10.x.x)
|
||||||
RString sSystemVersion;
|
RString SystemVersion;
|
||||||
{
|
{
|
||||||
char osrelease[256];
|
// http://stackoverflow.com/a/891336
|
||||||
size_t size = sizeof(osrelease);
|
NSDictionary *version = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"];
|
||||||
|
NSString *productVersion = [version objectForKey:@"ProductVersion"];
|
||||||
if( sysctlbyname( "kern.osrelease", osrelease, &size, NULL, 0 ) )
|
SystemVersion = ssprintf("Mac OS X %s", [productVersion cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
||||||
sSystemVersion = ssprintf( "Mac OS X %s", osrelease );
|
|
||||||
else
|
|
||||||
sSystemVersion = ssprintf( "Mac OS X Unknown" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t size;
|
size_t size;
|
||||||
@@ -235,7 +234,7 @@ void ArchHooks_MacOSX::DumpDebugInfo()
|
|||||||
// Send all of the information to the log
|
// Send all of the information to the log
|
||||||
LOG->Info( "Model: %s (%d/%d)", sModel.c_str(), iCPUs, iMaxCPUs );
|
LOG->Info( "Model: %s (%d/%d)", sModel.c_str(), iCPUs, iMaxCPUs );
|
||||||
LOG->Info( "Clock speed %.2f %cHz", fFreq, freqPower );
|
LOG->Info( "Clock speed %.2f %cHz", fFreq, freqPower );
|
||||||
LOG->Info( "%s", sSystemVersion.c_str());
|
LOG->Info( "%s", SystemVersion.c_str());
|
||||||
LOG->Info( "Memory: %.2f %cB", fRam, ramPower );
|
LOG->Info( "Memory: %.2f %cB", fRam, ramPower );
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user