]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
- allow to compile without blocxx
authorArvin Schnell <aschnell@suse.de>
Fri, 24 Feb 2012 18:23:58 +0000 (19:23 +0100)
committerArvin Schnell <aschnell@suse.de>
Fri, 24 Feb 2012 18:23:58 +0000 (19:23 +0100)
configure.in
package/snapper.changes
snapper/Log.cc
snapper/Makefile.am
snapper/Snapper.cc

index 0852183818eb70e736d86acea820250e15754960..44c4d77268c14f50abde9ac37e63fe8a8e24e2a2 100644 (file)
@@ -25,6 +25,12 @@ AM_PATH_PYTHON
 
 AC_PREFIX_DEFAULT(/usr)
 
+dnl Check for blocxx
+AC_CHECK_LIB(blocxx, main,
+  AC_SUBST([LIBBLOCXX], ["-lblocxx"])
+    AC_DEFINE([HAVE_LIBBLOCXX], [1],
+      [Define if you have libblocxx]))
+
 dnl Automake 1.11 enables silent compilation
 dnl Disable it by "configure --disable-silent-rules" or "make V=1"
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
index 96460b740ed46f581f81f5305a8e92cc38e3ea0a..7d18d705106b38b2e8c10ad71bd162e4065534ad 100644 (file)
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Fri Feb 24 19:21:15 CET 2012 - aschnell@suse.de
+
+- allow to compile without blocxx
+
 -------------------------------------------------------------------
 Fri Dec 23 15:33:12 CET 2011 - aschnell@suse.de
 
index ee514819f03db066b110fc22d2cd0d2678e27954..fdb4bc72c56879a8e1f109cd37b42a6bfa3a5756 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) [2004-2011] Novell, Inc.
+ * Copyright (c) [2004-2012] Novell, Inc.
  *
  * All Rights Reserved.
  *
 #include <string>
 #include <libxml/tree.h>
 
+#include "config.h"
+
+#ifdef HAVE_LIBBLOCXX
 #include <blocxx/AppenderLogger.hpp>
 #include <blocxx/FileAppender.hpp>
 #include <blocxx/Logger.hpp>
 #include <blocxx/LogMessage.hpp>
+#endif
 
 #include "snapper/Log.h"
+#include "snapper/AppUtil.h"
 
 
 namespace snapper
 {
     using namespace std;
-    using namespace blocxx;
 
+#ifdef HAVE_LIBBLOCXX
+
+    using namespace blocxx;
 
     static const String component = "libsnapper";
 
+#else
+
+    string filename;
+
+#endif
+
 
     void createLogger(const string& name, const string& logpath, const string& logfile)
     {
+#ifdef HAVE_LIBBLOCXX
+
        if (logpath != "NULL" && logfile != "NULL")
        {
            String nm = name.c_str();
@@ -84,12 +99,20 @@ namespace snapper
 
            LogAppender::setDefaultLogAppender(logApp);
        }
+
+#else
+
+       filename = logpath + "/" + logfile;
+
+#endif
     }
 
 
     bool
     testLogLevel(LogLevel level)
     {
+#ifdef HAVE_LIBBLOCXX
+
        ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel();
 
        switch (level)
@@ -105,6 +128,12 @@ namespace snapper
            default:
                return curLevel >= E_FATAL_ERROR_LEVEL;
        }
+
+#else
+
+       return level != DEBUG;
+
+#endif
     }
 
 
@@ -130,6 +159,8 @@ namespace snapper
     logStreamClose(LogLevel level, const char* file, unsigned line, const char* func,
                   ostringstream* stream)
     {
+#ifdef HAVE_LIBBLOCXX
+
        ELogLevel curLevel = LogAppender::getCurrentLogAppender()->getLogLevel();
        String category;
 
@@ -179,6 +210,36 @@ namespace snapper
            }
        }
 
+#else
+
+       static const char* ln[4] = { "DEB", "MIL", "WAR", "ERR" };
+
+       string prefix = sformat("%s %s libsnapper(%d) %s(%s):%d", datetime(time(0), false, true).c_str(),
+                               ln[level], getpid(), file, func, line);
+
+       FILE* f = fopen(filename.c_str(), "a");
+
+       string tmp = stream->str();
+
+       string::size_type pos1 = 0;
+
+       while (true)
+       {
+           string::size_type pos2 = tmp.find('\n', pos1);
+
+           if (pos2 != string::npos || pos1 != tmp.length())
+               fprintf(f, "%s - %s\n", prefix.c_str(), tmp.substr(pos1, pos2 - pos1).c_str());
+
+           if (pos2 == string::npos)
+               break;
+
+           pos1 = pos2 + 1;
+       }
+
+       fclose(f);
+
+#endif
+
        delete stream;
     }
 
index cf6cf39aacf0836702601a7caff2deda68f883ba..a894966784549564206385618c6f6a55e125ff32 100644 (file)
@@ -27,7 +27,7 @@ libsnapper_la_SOURCES =                                       \
        SnapperDefines.h
 
 libsnapper_la_LDFLAGS = -version-info @LIBVERSION_INFO@
-libsnapper_la_LIBADD = -lblocxx -lxml2
+libsnapper_la_LIBADD = @LIBBLOCXX@ -lxml2
 
 pkgincludedir = $(includedir)/snapper
 
index a009324e43b13cdcbe7f5ce6c11f39010bbd81a8..6bf086f8556fda519c44c5c6b84cc07c70d4193e 100644 (file)
@@ -28,6 +28,7 @@
 #include <boost/algorithm/string.hpp>
 
 #include "config.h"
+
 #include "snapper/Snapper.h"
 #include "snapper/Comparison.h"
 #include "snapper/AppUtil.h"