Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Resort and extend startup log information #1556

merged 5 commits into from

5 participants

  • Resort XBMC information (from "XBMC ... . Platform... build..." to "XBMC ... build... Platform... " )
  • Add compiler information to log
  • Add debug/release information to log

this seems like a good idea.give a better idea where the build comes from. opinions?


Fine by me if the VERSION define is there for all gcc platforms for sure...


@Karlson2k can you rebase.
@Memphiz how can we find out? Do a build run and just test them?


If it Builds it is fine


@MartijnKaijser I'll update it a little and rebase.


Now not using __VERSION__ macro


Jenkins Build this please


Pr is to old and jenkins didn't scan it - manual testbuild triggered...

@Memphiz Memphiz merged commit 0512600 into xbmc:master

August starts early this year...


It's no feature - it's for helping us supporting people - no reason to suspend this until the merge window.


and if i build xbmc with clang ? :)


@Fneufneu Is it possible on some platform?


clang can be used on Linux / OSX / FreeBSD.
it will be the default compiler on (the futur) FreeBSD 10 it's why i make all my test with clang.


@Fneufneu OK, I'll extend compiler detection.

@Memphiz Does it make sense to see if we also add test compiling with clang on Jenkins (if that's possible)?


I would say no - the platforms jenkins compiles for now are compiled the way the readme suggests. I guess usage of clang would be introduced automagically when ubuntu for example switches over from gcc. In that case we would need to add buildslaves for each platform using the specific os/buildtools.

On OSX depending on the used Xcode version clang is already used IIRC. We don't add a buildslave for all Xcode versions though (as it would be a pita to compile for them). We just ensure it works whenever a new Xcode comes out and normally once it compiled this doesn't change during XBMC development.

So if fneufneu wants to have a freebsd slave and freebsd uses clang - this would be different. We could add a freebsd slave of course - that is up to fneufneu. (someone would need to setup a vm for this of course...)


clang define GCC version macros too, but 'GCC' identification in log will be wrong.
I'll correct it.


@Fneufneu Clang support #3012
Tested on Ubuntu


i'm not seeing the "Using foo XBMC build" in the log when using a nightly build.
@Memphiz what are our default value is when doing a build?


@MartijnKaijser It's on LOGINFO level. Only visible on debug logging or debug build.

@Karlson2k Karlson2k deleted the Karlson2k:Startup_log_01 branch

And thats what I run and it's not there. It doesn't show anything and since we either do a debug release build it should be there.


looking at 3fae98a, it seems that NDEBUG isn't defined on windows release build


@MartijnKaijser @garbear Loglevel setting is initialized later, so on startup only default level is logged.
It's corrected in PR #3012

@LongChair LongChair referenced this pull request from a commit in plexinc/plex-home-theater-public
@LongChair LongChair Clear any pending fetch job upon MediaWindow update, should fix #1556 7f7a4cb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 18 additions and 7 deletions.
  1. +18 −7 xbmc/Application.cpp
25 xbmc/Application.cpp
@@ -643,17 +643,28 @@ bool CApplication::Create()
CLog::Log(LOGNOTICE, "-----------------------------------------------------------------------");
#if defined(TARGET_DARWIN_OSX)
- CLog::Log(LOGNOTICE, "Starting XBMC (%s), Platform: Darwin OSX (%s). Built on %s", g_infoManager.GetVersion().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__);
+ CLog::Log(LOGNOTICE, "Starting XBMC (%s), Built on " __DATE__ " (GCC version %i.%i.%i). Platform: Darwin OSX (%s)",
+ g_infoManager.GetVersion().c_str(), __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, g_sysinfo.GetUnameVersion().c_str());
#elif defined(TARGET_DARWIN_IOS)
- CLog::Log(LOGNOTICE, "Starting XBMC (%s), Platform: Darwin iOS (%s). Built on %s", g_infoManager.GetVersion().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__);
+ CLog::Log(LOGNOTICE, "Starting XBMC (%s), Built on " __DATE__ " (GCC version %i.%i.%i). Platform: Darwin iOS (%s)",
+ g_infoManager.GetVersion().c_str(), __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, g_sysinfo.GetUnameVersion().c_str());
#elif defined(TARGET_FREEBSD)
- CLog::Log(LOGNOTICE, "Starting XBMC (%s), Platform: FreeBSD (%s). Built on %s", g_infoManager.GetVersion().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__);
+ CLog::Log(LOGNOTICE, "Starting XBMC (%s), Built on " __DATE__ " (GCC version %i.%i.%i). Platform: FreeBSD (%s)",
+ g_infoManager.GetVersion().c_str(), __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, g_sysinfo.GetUnameVersion().c_str());
#elif defined(TARGET_POSIX)
- CLog::Log(LOGNOTICE, "Starting XBMC (%s), Platform: Linux (%s, %s). Built on %s", g_infoManager.GetVersion().c_str(), g_sysinfo.GetLinuxDistro().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__);
+ CLog::Log(LOGNOTICE, "Starting XBMC (%s), Built on " __DATE__ " (GCC version %i.%i.%i). Platform: Linux (%s, %s)",
+ g_infoManager.GetVersion().c_str(), __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, g_sysinfo.GetLinuxDistro().c_str(), g_sysinfo.GetUnameVersion().c_str());
#elif defined(TARGET_WINDOWS)
- CLog::Log(LOGNOTICE, "Starting XBMC (%s), Platform: %s. Built on %s (compiler %i)", g_infoManager.GetVersion().c_str(), g_sysinfo.GetKernelVersion().c_str(), __DATE__, _MSC_VER);
- CLog::Log(LOGNOTICE, g_cpuInfo.getCPUModel().c_str());
- CLog::Log(LOGNOTICE, CWIN32Util::GetResInfoString());
+ CLog::Log(LOGNOTICE, "Starting XBMC (%s), Built on " __DATE__ " (MSVC version %i). Platform: %s", g_infoManager.GetVersion().c_str(), _MSC_VER, g_sysinfo.GetKernelVersion().c_str());
+#if defined(_DEBUG)
+ CLog::Log(LOGINFO, "Using Debug XBMC build");
+#elif defined(NDEBUG)
+ CLog::Log(LOGINFO, "Using Release XBMC build");
+#if defined(TARGET_WINDOWS)
+ CLog::Log(LOGNOTICE, "%s", g_cpuInfo.getCPUModel().c_str());
+ CLog::Log(LOGNOTICE, "%s", CWIN32Util::GetResInfoString().c_str());
CLog::Log(LOGNOTICE, "Running with %s rights", (CWIN32Util::IsCurrentUserLocalAdministrator() == TRUE) ? "administrator" : "restricted");
CLog::Log(LOGNOTICE, "Aero is %s", (g_sysinfo.IsAeroDisabled() == true) ? "disabled" : "enabled");
Something went wrong with that request. Please try again.