From 31ad2caa6b098def62505667d2c6ab33ecb13d51 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sat, 30 May 2020 11:49:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=8A=9B=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=9B=BF=E4=BB=A3asset=EF=BC=8C=E6=8F=90=E9=AB=98=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3rdpart/assert.h | 31 +++++++++++++++++++++++++++++++ CMakeLists.txt | 1 + src/Common/config.cpp | 7 +++++++ 3 files changed, 39 insertions(+) create mode 100644 3rdpart/assert.h 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); + } +}