From a2d790b3a464837e3387cd60c056cfde59855015 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 2 Jan 2015 03:06:06 +0100 Subject: player: print config.h contents in verbose mode It was requested that mpv should print what features etc. have been enabled at compile time. It can print the configure command line, but it obviously doesn't include autodetected features. I tried to think of a nicer way than dumping the config.h as text, but this was still the simplest way. --- player/main.c | 20 ++++++++++++++------ waftools/generators/headers.py | 5 +++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/player/main.c b/player/main.c index 2454248f7f..37b1bbdf28 100644 --- a/player/main.c +++ b/player/main.c @@ -78,6 +78,10 @@ #include "osdep/macosx_events.h" #endif +#ifndef FULLCONFIG +#define FULLCONFIG "(missing)\n" +#endif + enum exit_reason { EXIT_NONE, EXIT_NORMAL, @@ -119,6 +123,11 @@ void mp_print_version(struct mp_log *log, int always) mpv_version, mpv_builddate); print_libav_versions(log, v); mp_msg(log, v, "\n"); + // Only in verbose mode. + if (!always) { + mp_msg(log, MSGL_V, "Configuration: " CONFIGURATION "\n"); + mp_msg(log, MSGL_V, "config.h:\n%s\n", FULLCONFIG); + } } static void shutdown_clients(struct MPContext *mpctx) @@ -500,6 +509,11 @@ int mpv_main(int argc, char *argv[]) mp_msg_update_msglevels(mpctx->global); + MP_VERBOSE(mpctx, "Command line:"); + for (int i = 0; i < argc; i++) + MP_VERBOSE(mpctx, " '%s'", argv[i]); + MP_VERBOSE(mpctx, "\n"); + mp_print_version(mpctx->log, false); mp_parse_cfgfiles(mpctx); @@ -519,12 +533,6 @@ int mpv_main(int argc, char *argv[]) if (handle_help_options(mpctx)) exit_player(mpctx, EXIT_NONE); - MP_VERBOSE(mpctx, "Configuration: " CONFIGURATION "\n"); - MP_VERBOSE(mpctx, "Command line:"); - for (int i = 0; i < argc; i++) - MP_VERBOSE(mpctx, " '%s'", argv[i]); - MP_VERBOSE(mpctx, "\n"); - if (!mpctx->playlist->first && !opts->player_idle_mode) { mp_print_version(mpctx->log, true); MP_INFO(mpctx, "%s", mp_help_text); diff --git a/waftools/generators/headers.py b/waftools/generators/headers.py index 79bd71d0f0..30a4e365e4 100644 --- a/waftools/generators/headers.py +++ b/waftools/generators/headers.py @@ -35,10 +35,15 @@ def __write_version_h__(ctx): __cp_to_variant__(ctx, ctx.options.variant, 'version.h') ctx.end_msg("version.h", "PINK") +# Approximately escape the string as C string literal +def __escape_c_string(s): + return s.replace("\"", "\\\"").replace("\n", "\\n") + def __add_mplayer_defines__(ctx): from sys import argv ctx.define("CONFIGURATION", " ".join(argv)) ctx.define("MPLAYER_CONFDIR", ctx.env.CONFDIR) + ctx.define("FULLCONFIG", "\\n" + __escape_c_string(ctx.get_config_header()) + "\\n") def configure(ctx): __add_mplayer_defines__(ctx) -- cgit v1.2.3