From 2e062552eb38c1a84a76164809a37d578fd7159c Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 31 Aug 2016 16:42:32 +0200 Subject: [PATCH] Clang: Report an error if the unit test are linked with LLVM without RTTI We don't want to disable RTTI in unittest so we require to compile them with RTTI. You can disable yourself RTTI if you don't want them for some reasons. Change-Id: I76d05a36442305f379ce3d88b3f6ed4372127002 Reviewed-by: Nikolai Kosjar --- src/shared/clang/clang_installation.pri | 2 ++ tests/unit/unittest/clang_dependency.pri | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index f34bf3fcf8c..7a77f9d7ce4 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -100,3 +100,5 @@ isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_D } unix:LLVM_CXXFLAGS = -fno-rtti -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS + +LLVM_IS_COMPILED_WITH_RTTI = $$system($$llvm_config --has-rtti, lines) diff --git a/tests/unit/unittest/clang_dependency.pri b/tests/unit/unittest/clang_dependency.pri index 1fe12e81bf8..3f24a4d0239 100644 --- a/tests/unit/unittest/clang_dependency.pri +++ b/tests/unit/unittest/clang_dependency.pri @@ -3,6 +3,9 @@ isEmpty(LLVM_INSTALL_DIR):LLVM_INSTALL_DIR=$$(LLVM_INSTALL_DIR) include(../../../src/shared/clang/clang_installation.pri) requires(!isEmpty(LIBCLANG_LIBS)) +equals(LLVM_IS_COMPILED_WITH_RTTI, "NO") : message("LLVM needs to be compiled with RTTI!") +requires(equals(LLVM_IS_COMPILED_WITH_RTTI, "YES")) + DEFINES += CLANG_UNIT_TESTS INCLUDEPATH += $$LLVM_INCLUDEPATH LIBS += $$LIBTOOLING_LIBS $$LIBCLANG_LIBS