From: Milian Wolff Date: Tue, 2 Dec 2014 14:11:48 +0000 (+0100) Subject: Add some platform checks to give better error messages at cmake time. X-Git-Tag: submit/tizen/20180620.112952^2~392 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0572faf909675220730731de7e4898dc73e728ab;p=sdk%2Ftools%2Fheaptrack.git Add some platform checks to give better error messages at cmake time. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 199321b..42260b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,36 @@ find_package(Boost 1.45.0 COMPONENTS iostreams program_options) find_package(Threads) add_subdirectory(3rdparty) + +check_library_exists (${LIBUNWIND_LIBRARY} unw_backtrace "" HAVE_UNW_BACKTRACE) +if (NOT HAVE_UNW_BACKTRACE) + message(FATAL_ERROR "Your libunwind version is apparently too old and does not have the unw_backtrace function.") +endif() + +include (CheckCXXSourceCompiles) +check_cxx_source_compiles( + "#include + #include + thread_local int tls; + int main() { return 0; }" + HAVE_CXX11_SUPPORT) + +if (NOT HAVE_CXX11_SUPPORT) + message(FATAL_ERROR "Your compiler is too old and does not support the required C++11 features.") +endif() + +check_cxx_source_compiles( + "#include + #include + #include + #include + int main() { return 0; }" + HAVE_LINUX_HEADERS) + +if (NOT HAVE_LINUX_HEADERS) + message(FATAL_ERROR "You are missing some Linux headers required to compile heaptrack.") +endif() + add_subdirectory(tests) include_directories( diff --git a/libheaptrack.cpp b/libheaptrack.cpp index bbd2c2d..5068539 100644 --- a/libheaptrack.cpp +++ b/libheaptrack.cpp @@ -24,23 +24,20 @@ */ #include -#include #include +#include #include +#include +#include #include -#include #include -#include #include #include #include #include -#include -#include - #include "tracetree.h" #include "timer.h"