diff --git a/3rdpart/assert.h b/3rdpart/assert.h new file mode 100644 index 00000000..37ba8324 --- /dev/null +++ b/3rdpart/assert.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016 The ZLMediaKit project authors. All Rights Reserved. + * + * This file is part of ZLMediaKit(https://github.com/xiongziliang/ZLMediaKit). + * + * Use of this source code is governed by MIT license that can be found in the + * LICENSE file in the root of the source tree. All contributing project authors + * may be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef ZLMEDIAKIT_ASSERT_H +#define ZLMEDIAKIT_ASSERT_H + +#include +#ifndef NDEBUG + #ifdef assert + #undef assert + #endif//assert + + #ifdef __cplusplus + extern "C" { + #endif + extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line); + #ifdef __cplusplus + } + #endif + + #define assert(exp) Assert_Throw(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__); +#endif//NDEBUG + +#endif //ZLMEDIAKIT_ASSERT_H diff --git a/CMakeLists.txt b/CMakeLists.txt index 05075705..68f3a03f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,7 @@ INCLUDE_DIRECTORIES(${MediaServer_Root}/libmpeg/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/libmov/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/libflv/include) INCLUDE_DIRECTORIES(${MediaServer_Root}/librtp/include) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/3rdpart) set(ENABLE_HLS true) set(ENABLE_OPENSSL true) diff --git a/src/Common/config.cpp b/src/Common/config.cpp index d8f2b933..b2e00ba5 100644 --- a/src/Common/config.cpp +++ b/src/Common/config.cpp @@ -295,3 +295,10 @@ const string kBenchmarkMode = "benchmark_mode"; } // namespace mediakit +void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line){ + if(failed) { + _StrPrinter printer; + printer << "Assertion failed: (" << exp << "), function " << func << ", file " << file << ", line " << line << "."; + throw std::runtime_error(printer); + } +}