From 2f29ed003c182c7ecc72c6182fc5267558918ef7 Mon Sep 17 00:00:00 2001 From: Tsuda Kageyu Date: Sun, 9 Jun 2013 23:52:05 +0900 Subject: [PATCH] Added a CMake option that allows to show debug messages in release mode --- CMakeLists.txt | 5 +++++ taglib/taglib_config.h.cmake | 1 + taglib/toolkit/tdebug.cpp | 9 +++++++++ taglib/toolkit/tdebuglistener.cpp | 20 ++++++++------------ 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bbcf8d89..80bc2dd3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,6 +90,11 @@ if(WITH_MP4) set(TAGLIB_WITH_MP4 TRUE) endif() +option(TRACE_IN_RELEASE "Output debug messages even in release mode" OFF) +if(TRACE_IN_RELEASE) + set(TAGLIB_TRACE_IN_RELEASE TRUE) +endif() + configure_file(taglib/taglib_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib_config.h) add_subdirectory(taglib) diff --git a/taglib/taglib_config.h.cmake b/taglib/taglib_config.h.cmake index 1560c247..4ccb0158 100644 --- a/taglib/taglib_config.h.cmake +++ b/taglib/taglib_config.h.cmake @@ -3,3 +3,4 @@ #define TAGLIB_WITH_ASF 1 #define TAGLIB_WITH_MP4 1 +#cmakedefine TAGLIB_TRACE_IN_RELEASE 1 diff --git a/taglib/toolkit/tdebug.cpp b/taglib/toolkit/tdebug.cpp index 133aad39..f4025e9b 100644 --- a/taglib/toolkit/tdebug.cpp +++ b/taglib/toolkit/tdebug.cpp @@ -24,6 +24,7 @@ ***************************************************************************/ #include "config.h" +#include "taglib_config.h" #include "tdebug.h" #include "tstring.h" @@ -67,11 +68,17 @@ namespace void TagLib::debug(const String &s) { +#if !defined(NDEBUG) || defined(TAGLIB_TRACE_IN_RELEASE) + getDebugListener()->printMessage("TagLib: " + s + "\n"); + +#endif } void TagLib::debugData(const ByteVector &v) { +#if !defined(NDEBUG) || defined(TAGLIB_TRACE_IN_RELEASE) + for(size_t i = 0; i < v.size(); ++i) { String msg @@ -85,4 +92,6 @@ void TagLib::debugData(const ByteVector &v) getDebugListener()->printMessage(msg); } + +#endif } diff --git a/taglib/toolkit/tdebuglistener.cpp b/taglib/toolkit/tdebuglistener.cpp index 3b138e51..b472dee9 100644 --- a/taglib/toolkit/tdebuglistener.cpp +++ b/taglib/toolkit/tdebuglistener.cpp @@ -25,12 +25,11 @@ #include "tdebuglistener.h" -#ifndef NDEBUG -# include -# include -# ifdef _WIN32 -# include -# endif +#include +#include + +#ifdef _WIN32 +# include #endif using namespace TagLib; @@ -42,8 +41,7 @@ namespace public: virtual void printMessage(const String &msg) { -#ifndef NDEBUG -# ifdef _WIN32 +#ifdef _WIN32 const wstring wstr = msg.toWString(); const int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), -1, NULL, 0, NULL, NULL); @@ -54,13 +52,11 @@ namespace std::cerr << std::string(&buf[0]); } - -# else +#else std::cerr << msg; -# endif -#endif +#endif } }; -- 2.40.0